Код прилагается:
1. login.php
<html>
<head>
<title>Вход</title>
</head>
<body>
<?php
include "getip.php";
if (isset($_POST['login']) && is_string($_POST['login']))
$login=$_POST['login'];
$passcode_entered = "";
if (isset($_POST['pass']) && is_string($_POST['pass']))
$passcode_entered=$_POST['pass'];
function WriteIp()
{
$save=fopen("data/users/$login/ip.txt","x");
flock($save,LOCK_EX);
$count=$user_ip;
fwrite($save,$count);
flock($save,LOCK_UN);
fclose($save);
$login = "";
}
if(file_exists("data/users/$login/pass.txt"))
{
$include=include "index.php";
$write_ip=WriteIp();
$use=fopen("data/users/$login/pass.txt","r");
$passcode=fread($use,100);
fclose($use);
if(file_exists("data/users/$login/pass.txt"))
{
$include=include "index.php";
$write_ip=WriteIp();
$use=fopen("data/users/$login/pass.txt","r");
$passcode=fread($use,100);
fclose($use);
if(empty($login)||empty($passcode)) echo ("Логин или пароль не введены, $include") ;
elseif($passcode_entered==$passcode)
echo ("Bы ycпeшнo вoшли нa caйт. Дoбpo пoжaлoвaть, $login. <p>Пepeйти нa глaвнyю: <a href=mainpage.php>Haжмитe cюдa</a>, $write_ip");
else echo ("Oшибкa, пapoль нeвepeн. <a href=index.php>Bвeдитe зaнoвo</a>");
}
else echo "Ошибка! Пользователя $login не существует! <a href=index.php>Попробуйте войти снова</a>";
?>
</body>
</html>
2. getip.php
<html>
<head>
<title>getrealip</title>
<meta charset=utf-8>
</head>
<body>
<?php
function GetRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
<?php
$user_ip=GetRealIp()
?>
</body>
</html>
На всякий случай приложил архив со всеми файлами
Спустя 3 минуты, 21 секунда (2.03.2011 - 06:17) Андрей2405 написал(а):
Да, еще на всякий случай объясню свой замысел) При входе в текстовый файл записывается ip пользователя. Потом при переходе на любую страницу ip из текстового файла сверяется с реальным ip и выясняется, может ли пользователя зайти на страницу
Спустя 10 минут, 18 секунд (2.03.2011 - 06:27) inpost написал(а):
Где-то забыл скобки или кавычки. echo 'TEXT'; - не надо скобок.
Спустя 4 минуты, 20 секунд (2.03.2011 - 06:31) Андрей2405 написал(а):
Хм, скобки я вроде в таких случаях не ставил... Поищу, спасибо)
Спустя 5 минут, 34 секунды (2.03.2011 - 06:37) inpost написал(а):
if(file_exists("data/users/$login/pass.txt")){
- дублируется!
- дублируется!
Спустя (2.03.2011 - 06:37) Андрей2405 написал(а):
Нашел, спасибо)
e c h o ( " B ы y c п e ш н o в o ш л и н a c a й т . Д o б p o п o ж a л o в a т ь , $ l o g i n . < p > П e p e й т и н a г л a в н y ю : < a h r e f = m a i n p a g e . p h p > H a ж м и т e c ю д a < / a > , $ w r i t e _ i p " ) ;
Спустя 33 секунды (2.03.2011 - 06:38) inpost написал(а):
Андрей2405
убирай скобки при ECHO
убирай скобки при ECHO
Спустя 3 минуты, 3 секунды (2.03.2011 - 06:41) Андрей2405 написал(а):
Убрал, не помогло( Ищу дальше...
Спустя 2 минуты, 44 секунды (2.03.2011 - 06:43) inpost написал(а):
я показал, что дублируется дважды! Убрал - код сюда.
Спустя 5 минут, 8 секунд (2.03.2011 - 06:48) Андрей2405 написал(а):
<html>
<head>
<title>Вход</title>
</head>
<body>
<?php
include "getip.php";
if (isset($_POST['login']) && is_string($_POST['login']))
$login=$_POST['login'];
$passcode_entered = "";
if (isset($_POST['pass']) && is_string($_POST['pass']))
$passcode_entered=$_POST['pass'];
function WriteIp()
{
$save=fopen("data/users/$login/ip.txt","x");
flock($save,LOCK_EX);
$count=$user_ip;
fwrite($save,$count);
flock($save,LOCK_UN);
fclose($save);
$login = "";
}
if(file_exists("data/users/$login/pass.txt"))
{
$include=include "index.php";
$write_ip=WriteIp();
$use=fopen("data/users/$login/pass.txt","r");
$passcode=fread($use,100);
fclose($use);
if(file_exists("data/users/$login/pass.txt"))
{
$include=include "index.php";
$write_ip=WriteIp();
$use=fopen("data/users/$login/pass.txt","r");
$passcode=fread($use,100);
fclose($use);
if(empty($login)||empty($passcode)) echo "Логин или пароль не введены, $include" ;
elseif($passcode_entered==$passcode)
echo "Bы ycпeшнo вoшли нa caйт. Дoбpo пoжaлoвaть, $login. <p>Пepeйти нa глaвнyю: <a href=mainpage.php>Haжмитe cюдa</a>, $write_ip";
else echo "Oшибкa, пapoль нeвepeн. <a href=index.php>Bвeдитe зaнoвo</a>";
}
else echo "Ошибка! Пользователя $login не существует! <a href=index.php>Попробуйте войти снова</a>";
?>
</body>
</html>
Спустя 13 минут, 17 секунд (2.03.2011 - 07:02) Андрей2405 написал(а):
Спасибо, все убрал, все работает))