2014-04-12 180 views
0

我的代码:PHP登录页面错误

<html> 
    <head> 
     <title>Logging in......</title> 
     <?php 

      function decryptString($q){ 
       $cryptKey = 'jamie20020410'; 
       $qDecoded = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,md5($cryptKey),base64_decode($q),MCRYPT_MODE_CBC,md5(md5($cryptKey))),"\0"); 
       return($qDecoded); 
      } 

      #login verify 
      $user_name = $_GET['name']; 
      $user_pwd = $_GET['pwd']; 

      $db=mysqli_connect("mysql17.000webhost.com","xxx","xxx","xxx"); 
      if (mysqli_connect_errno()){ 
       echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
      } 
      $result = mysqli_query($db,"SELECT * FROM LoginInfo"); 

      while($info = mysqli_fetch_array($result)){ 
       $dbu_name = decryptString($result['LoginName']); 
       if ($user_name == $dbu_name){ 
        $dbu_pwd = decryptString($result['LoginPwd']); 
        if ($user_pwd == $dbu_pwd){ 
         $loggedin = 1; 
        } 
       } 
      } 

      if ($loggedin != 1){ 
       print("<script>alert('Wrong username or password!');</script>"); 
      }else{ 
       print("<script>alert('Correct login!');</script>"); 
      } 

     ?> 
    </head> 
</html> 

它不工作。没有问题登录到db

显示的消息:

Fatal error: Cannot use object of type mysqli_result as array in /home/a7593238/public_html/login/login.php on line 23 

在数据库:

LoginName | LoginPwd 
test  | test 

这就是全部。
任何帮助?

+0

问题出在哪里? – Jamie

回答

1

你想在while循环中使用info,那就是包含数据的数组。

更改$result['LoginName']$info['LoginName']等等。

1

对于GET欲望的结果,你将不得不在获取行查询$info不超过$result

应的

$info['LoginName'] 

代替

$result['LoginName'] 
+0

我没有接受你的回答,因为你回答迟于sachleen。 – Jamie