Я пытаюсь использовать php для проверки моей html-формы file.txt в witch, у меня есть логин, пароль. проблема в моем php-коде, что даже когда переменные равны, я получаю false, когда сравниваю их. Единственное исключение - когда я сравниваю первый логин и пароль, я верю для обоих.Как я могу исправить ошибку php var_dump
Вот мой код, чтобы прояснить мою проблему. , поэтому моя html-форма вызывает этот код php-страницы.
<?php
echo " begin <br/>";
$name=$_GET['username'];
$password=$_GET['password'];
echo "$name <br/>";
echo "$password <br/>";
$f = fopen("file.txt", "r");
$res="0";
while(!feof($f))
{ echo "begin while <br/> ";
$p3=fgetc($f);
while($p3!="|" && !feof($f))
{
$user1=$user1.$p3;
$p3=fgetc($f);
}
$p1=fgetc($f);
while($p1!="|" && !feof($f))
{ $pass=$pass.$p1;
$p1=fgetc($f);
}
$p2=fgetc($f);
while($p2!="|" && !feof($f))
{
$q=$q.$p2;
$p2=fgetc($f);
}
var_dump($user1 == $name);
var_dump($password == $pass);
echo "<br/> $user1 <br/>";
echo "$pass <br/>";
echo "compare <br/>";
echo "$name <br/>";
echo "$password <br/>";
if($name == $user1 && $password == $pass)
{ echo "succeeded <br/>";
echo "droit: $q <br/>";
echo "$res <br/>";
$res="1";
echo "$res <br/>";
break 2;
}
unset($p3);
unset($p1);
unset($p2);
unset($user1);
unset($pass);
unset($q);
}
fclose($f);
if($res == "1")
{ echo "ok <br/>";}
else
{ echo " error <br/>";}
echo " fin <br/>"
?>
моего file.txt
abc|abc|87|
aaa|ccc|45|
ghi|ghi|67
теперь, если я введите логин пароль а а, ПОЛУЧИТЬ этот результат на моей странице
begin
abc
abc
begin while
bool(true) bool(true)
abc
abc
compare
abc
abc
succeeded
droit: 87
0
1
теперь, если я ввести логин и пароль ааа ЦКК я получаю
begin
aaa
ccc
begin while
bool(false) bool(false)
abc
abc
compare
aaa
ccc
begin while
bool(false) bool(true)
aaa
ccc
compare
aaa
ccc
begin while
bool(false) bool(false)
ghi
ghi
compare
aaa
ccc
error
fin
и даже для t hird user line Я получаю ошибку, даже если переменная равна.
Я ценю это, если кто-нибудь может мне помочь. и спасибо заранее
Код выглядит так, как будто он был перенесен с (или, по крайней мере, на мысль) C. PHP предоставляет несколько очень удобных функций для работы с файлами и строками. Читайте об ['file()'] (http://php.net/manual/en/function.file.php) и ['explode()'] (http://php.net/manual/en/function .explode.php), они могут помочь вам прочитать файл и разделить строки на части в нескольких строках кода. – axiac
Если честно - ваш код грязный, и трудно понять, что происходит. Если вы хотите, чтобы кто-то помог вам, по крайней мере, убедитесь, что ваш код организован. –