2015-05-27 185 views
0

我有一臺在我的電腦上工作正常的登錄系統,但在使用服務器上的HTML用戶界面登錄時,查詢似乎不起作用。我已經複製並直接在服務器上運行查詢,並正常工作。我得到的錯誤是:查詢在本地機器上正常工作,但在服務器上失敗

mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given

的代碼如下:

<?php 
    include_once 'header.php'; 

    $error = ""; 
    $userID = ""; 
    $username = ""; 

    $userName = isset($_POST["userName"]) ? sanitizeString($_POST["userName"]) : ""; 
    $pass = isset($_POST["pass"]) ? sanitizeString($_POST["pass"]) : ""; 


if (isset($_POST["login"])) 
{ 
    if (empty($userName) || empty($pass)) 
     $error = "<span class='error'>Not all fields were entered</span><br />"; 
    else 
    { 
     $login_query = "SELECT 
        * 
       FROM users 
       WHERE username = ? 
       AND pass = ?"; 
     $login_result = queryMysqli($login_query,array(
         array("s",$userName), 
         array("s",md5($salt.$pass.$pepper))) 
         ); 

     if (mysqli_num_rows($login_result) == 0) 
      $error = "<span class='error'>Username/Password invalid</span>"; 
     else 
     { 
      $row = mysqli_fetch_array($login_result); 
      $userID = $row["ID"]; 
      $username = $row["username"]; 

      //Add to session 
      $_SESSION['userID'] = $userID; 
      $_SESSION['username'] = $userName; 

      header("location:manageAdverts.php"); 
      EXIT; 
     } 
    } 
} 
?> 

<div class="container"> 
    <div class="col-sm-10"> 
     <div class="row"> 
      <div id="main_body"> 
       <div style="padding:55px;"> 
        <div class="white_background " style="max-width:450px;margin-top:40px;"> 
         <span style="color:red;"><?php echo $error; ?></span> 
          <p style="font-family: 'Oswald', sans-serif;font-size:26px;margin-bottom:20px;">Login</p> 
          <div style="border-right:1px solid blue;float:left;"> 
           <form class="form-horizontal" method="post" > 
            <div class="form-group"> 
             <div class="col-xs-10"> 
              <input type="text" class="form-control" placeholder="Username" name="userName" autofocus value="<?php echo $userName; ?>"> 
             </div> 
            </div> 
            <div class="form-group"> 
             <div class="col-xs-10"> 
              <input type="password" class="form-control" placeholder="Password" name="pass" value="<?php echo $pass; ?>"> 
             </div> 
            </div> 
            <div class="form-group"> 
             <div class="col-xs-offset-2 col-xs-10"> 
              <div class="checkbox"> 
               <label><input type="checkbox"> Remember me</label> 
              </div> 
             </div> 
            </div> 
            <p></p> 
            <button style="background:#0B0B61;" type="submit" class="btn btn-primary" name="login">Login</button> 
           </form> 
          </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

<?php include_once "footer.php"; ?> 
+2

你的'queryMysqli'函數是怎麼樣的?閱讀錯誤消息,它表示你試圖將一個布爾值放入'mysqli_num_rows',所以檢查'$ login_result'中存儲的'queryMysqli'的結果。 –

回答

0

嘗試改變這一行

if (mysqli_num_rows($login_result) == 0) 

if (mysqli_num_rows($login_result) === FALSE) 

,如果告訴我它解決了錯誤!

+0

它現在在sql語句中引發錯誤 – user3034845

+0

@ user3034845錯誤說的是什麼? –

+0

它指向一個使用查詢語句的函數。換句話說,它指向查詢本身。 – user3034845

0

正在恢復false

變化

if (mysqli_num_rows($login_result) == 0) 

if (!$login_result || mysqli_num_rows($login_result) == 0) 
+0

還是同樣的錯誤信息 - mysqli_fetch_array()期望參數1是mysqli_result – user3034845

+0

這是不一樣的。現在你得到'mysqli_fetch_array()' – sqluser

0

嘗試

$login_query = "SELECT * " 
$login_query .= "FROM users " 
$login_query .= "WHERE username = ? " 
$login_query .= "AND pass = ?"; 

if (mysqli_num_rows($login_result) === FALSE) 
      $error = "<span class='error'>Username/Password invalid</span>"; 
+0

C:仍然給出錯誤:「mysqli_num_rows()期望參數1爲mysqli_result,布爾給出」 – user3034845

+0

嘗試if(!$ login_result || mysqli_num_rows($ login_result)=== 0) –

+0

指向再次回到查詢 – user3034845

相關問題