2013-09-26 30 views
-2

如何解決此問題?如何解決警告:mysql_num_rows():提供的參數不是有效的MySQL結果資源

警告:mysql_num_rows():提供的參數不是在/home/u940004575/public_html/index.php一個有效的MySQL 結果資源上線114

我已經改變,並與該代碼撥弄太長有人幫

<? 
    mysql_connect("XXXXX","XXXXX","XXXXX") or die(mysql_error()); 
    mysql_select_db("u940004575_chat"); 

    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $sha1mypassword = sha1($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $sha1mypassword = mysql_real_escape_string($sha1mypassword); 
    $sql=mysql_query("SELECT id FROM users WHERE username='$myusername' and password='$sha1mypassword'")or die(mysql_error()); 
    $result=mysql_query($sql); 

    $count=mysql_num_rows($result); 
    if($count==1){ 
    session_register("myusername"); 
    session_register("mypassword"); 
    header("location:home.php"); 
    } 
    else { 
    echo "Wrong Username or Password"; 
    } 

    ?> 
+0

大量過時的功能.... – itachi

+1

看到這樣的代碼真的很痛苦。首先不要使用短打開的標籤,當移動到另一個環境''時,它會爲您節省一些麻煩。其次使用PDO或mysqli與預先準備的語句,這將防止大多數SQL注入攻擊媒介。最後,請不要使用'sha1',它非常快,你應該使用'bcrypt'之類的東西。 – HamZa

+0

在檢查mysql_num_rows()之前,你必須做一個'if($ result)'。無論如何,您正在使用不推薦使用的數據庫函數,並且必須使用諸如'mysqli'或PDO之類的東西。 – MahanGM

回答

1

使用if條件來避免這個錯誤

試試這個

<?php 
    mysql_connect("XXXXX","XXXXX","XXXXX") or die(mysql_error()); 
    mysql_select_db("u940004575_chat"); 

    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $sha1mypassword = sha1($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $sha1mypassword = mysql_real_escape_string($sha1mypassword); 
    $sql=mysql_query("SELECT id FROM users WHERE username='".$myusername."' and password='".$sha1mypassword."'")or die(mysql_error()); 


    if($sql){ 
$count=mysql_num_rows($sql); 
} 
    if($count==1){ 
    session_register("myusername"); 
    session_register("mypassword"); 
    header("location:home.php"); 
    } 
    else { 
    echo "Wrong Username or Password"; 
    } 

    ?> 

使用<?php,而不是<?

+0

如果聲明工作,但$計數不= = 1 –

+0

看到我的更新答案。使用'username ='「。$ myusername。」''而不是'username ='$ myusername''和'password ='「。$ sha1mypassword。」'''而不是'password ='$ sha1mypassword'' –

1

改變這在你的代碼:

$sql="SELECT id FROM users WHERE username='$myusername' and password='$sha1mypassword'"; 
$result=mysql_query($sql); 

你在這兩個地方使用mysql_query

供參考mysql_已棄用。

相關問題