В настоящее время я пишу скрипт php, который проверяет имя пользователя и пароль.Я работаю, проверяя вещи понемногу, и сейчас у меня есть файл паролей только с одной строкой:
user:0011
Я использую preg_split
для анализа строк в этом файле и имею следующеекод в моем PHP-скрипте:
<html>
<body>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$usr = $_POST['username'];
$pass = $_POST["pword"];
$f = fopen('passwords.txt','r');
$auth = false;
while(!feof($f))
{
$login = preg_split("/:/",fgets($f));
echo $login[0]."<br/>";
echo $login[1]."<br/>";
print_r($login);
if($usr == $login[0] && $pass == $login[1])
{
echo "in if<br/>";
$auth = true;
break;
}
}
if($auth)
echo "success";
else
echo "fail!";
/*$test = preg_split("/:/","me:you");
echo $test[0];*/
fclose($f);
?>
</body>
</html>
Проблема в том, что это вывод, который он мне дает:
user
0011
Array ( [0] => user [1] => 0011 )
Notice: Undefined offset: 1 in /srv/www/htdocs/PHP/val.php on line 20
Array ( [0] => ) fail!
Эта ошибка не имеет смысла для меня, потому что она подразумеваетчто массив недостаточно длинный, чтобы иметь значение по индексу 1, но я просто напечатал это значение, и даже в результате из print_r
он показывает, что в этом индексе есть значение.У кого-нибудь есть идеи, что вызывает эту ошибку?