Looks like your $user1 is corrupted... are you sure there are no char after 'aaa' ? like 'aaa ' ? try to trim it : trim($name) == trim($user1)
... otherwise, try to compare "$name" == "$user1"
?
我怎么能修复php var_dump错误
I am trying to use php to verify my html form a file.txt in witch i have a login , password. the problem in my php code that even when the variables are equal i get false when i compare them.The only exception is when i compare the first login and pasword i get true for both.
Here is my code to clarify my problem. so my html form calls this php page code.
<?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/>"
?>
my file.txt
abc|abc|87|
aaa|ccc|45|
ghi|ghi|67
now if i enter login abc password abc , iget this result in my page
begin
abc
abc
begin while
bool(true) bool(true)
abc
abc
compare
abc
abc
succeeded
droit: 87
0
1
now if i enter login aaa and password ccc , i get
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
and even for the third user line i get an error even though the variable are equal.
I appreciate it, if any one could help me . and thanks in advance
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
2条回答
为你推荐
- strtotime()的bug
- php
- 1个回答
- 如何修复php变量中的错误? 服务器出错500
- php
- laravel
- 1个回答
- 如何修复oci_execute():ORA-00957:重复列名...? [关闭]
- sql
- php
- database
- oracle
- 1个回答
- 我怎么能修复php var_dump错误
- html
- var-dump
- php
- 2个回答
- PHP如何修复这个奇怪的UNDEFINED OFFSET错误?
- codeigniter
- php
- 2个回答
- 如何修复'未捕获错误:调用整数'上的成员函数fetch_assoc()
- prepared-statement
- php
- mysql
- 1个回答