dongsui0929 2015-04-21 12:22
浏览 36
已采纳

我怎么能修复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条回答 默认 最新

  • douli4337 2015-04-21 12:32
    关注

    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" ?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站