2015-12-30 257 views
-3

,我發現了以下錯誤警告:mysql_fetch_array()預計參數1是資源,布爾在C中給出: XAMPP htdocs中 login.php中

警告:mysql_fetch_array()預計參數1是資源,在C:\ xampp \ htdocs \ login.php中給出的布爾值

其他所有工作都正常......除此之外!

這裏是我的查詢:

<?php 

$inputuser = $_POST["user"]; 
$inputpass = $_POST["pass"]; 

$user = "root"; 
$password = ""; 
$database = "share"; 

$connect = mysql_connect("localhost:3306",$user,$password); 
@mysql_select_db($database) or ("Database not found"); 

$query = "SELECT * FROM 'users' WHERE 'username'= '$inputuser'"; 
$querypass = "SELECT * FROM 'users' WHERE 'password'= '$inputpass'"; 

$result = mysql_query($query); 
$resultpass = mysql_query($querypass); 

$row = mysql_fetch_array($result); 
$rowpass = mysql_fetch_array($resultpass); 

$serveruser = $row['user']; 
$serverpass = $row['password']; 

if ($serveruser && $serverpass) { 
    if (!$result) { 
     die ("Invalid Username/Password"); 

} 
     header('Location: Fail.php'); 
     mysql_close(); 


if ($inputpass == $serverpass) { 

     header('Location: Home.php'); 

} else { 


} 
} 

?> 
+0

請不要使用'mysql_ *'功能,因爲它們已被棄用。 –

+0

@Kamal重複不起作用。 –

+0

在列和表名中使用反引號,並在引號內使用整個查詢'$ query =「SELECT * FROM'users' WHERE'username' ='$ inputuser'」; ' – Saty

回答

0

Do not use mysql_* functions. They are deprecated.

您的SQL語法錯誤。更改您的查詢,以這樣的:

必須使用反引號,`而不是'報價。

並請儘量給他們這樣的組合:

SELECT * FROM `users` WHERE `username`= '$inputuser' AND `password`= '$inputpass'; 

如果有兩個用戶使用相同的密碼?你不能指望所有的用戶使用不同的密碼嗎?

其他東西。您正在將用戶輸入直接傳遞給SQL。這是很差並導致SQL注入。所以,你需要消毒的投入,然後才能將其發送到數據庫服務器:

$inputuser = mysql_real_escape_string($_POST["user"]); 
$inputpass = mysql_real_escape_string($_POST["pass"]); 

Again, do not use mysql_* functions.

更新代碼

使用下面的代碼。

// single query 
$query = "SELECT * FROM `users` WHERE `username`='$inputuser' AND `password`='$inputpass'"; 
// your original query 
$query = "SELECT * FROM `users` WHERE `username`= '$inputuser'"; 

終極密碼

<?php 
    $inputuser = mysql_real_escape_string($_POST["user"]); 
    $inputpass = mysql_real_escape_string($_POST["password"]); 

    $user = "root"; 
    $password = ""; 
    $database = "share"; 

    $connect = mysql_connect("localhost", $user, $password); 
    @mysql_select_db($database) or ("Database not found"); 

    $query = "SELECT * FROM `users` WHERE `username`= '$inputuser' AND `password`= '$inputpass'"; 

    $result = mysql_query($query); 

    if (mysql_num_rows($result) == 1) { 
     header('Location: Home.php'); 
     die(); 
    } 
    else { 
     header('Location: Fail.php'); 
     die ("Invalid Username/Password"); 
    } 
?> 
+0

知道它給了我這個錯誤解析錯誤:語法錯誤,在第13行的C:\ xampp \ htdocs \ login.php中意外的''' –

+0

@ChristepherArakelian您能否將完整的代碼放在評論中?只是代碼會做。 –

+0

解析錯誤:語法錯誤,在第13行的C:\ xampp \ htdocs \ login.php中出現意外的''' –

相關問題