2012-02-15 146 views
1

我正在構建一個簡單的登錄php頁面。 的問題是,無論我把爲用戶名或密碼,我回來這個語法錯誤:login.php文件中的MySQL語法錯誤

「您的SQL語法錯誤;檢查對應於您的MySQL服務器版本正確的語法手冊使用附近'ANDuser.password ='''在第4行「

我似乎不明白什麼是錯的,即使我在谷歌搜索類似的問題。我使用MAMP(如果有幫助)。 有人可以幫我嗎?

我check.php文件是這樣的:

<?php 
session_start(); 

$hostname = "localhost"; 
$database = "mydb"; 
$username = "myuser"; 
$password = "mypsw"; 

$link = mysql_connect($hostname , $username , $password) or 
     die("Attention! Connection problem with server : " . mysql_error()); 

mysql_select_db($database,$link); 

$Qcheck_user = "SELECT user.* 
       FROM `user` 
       WHERE user.username = '$user' 
    AND user.password = '$psw' "; 

$check_user = mysql_query($Qcheck_user , $link) or 
       die("Attention!Problem in selection of table user : " . mysql_error()); 

$number = mysql_num_rows($check_user); 

if ($number == 0) 
{ 
    echo "Connection problem. Please try again. <br>"; 

    echo "<a href=\"login.php\">Πίσω</a>"; 

    exit; 
} 
else 
{ 
    $user = mysql_fetch_array($check_user); 

    $Username = $user[0]; 
    $Name = $user["name"]; 
    $Surname = $user[3]; 
    $Email = $user["email"]; 


    session_register("Username" , "Name" , "Surname" , "Email"); 

    header("Location: home.php"); 
} 

?> 
+1

請不要使用register_globals的 – 2012-02-15 16:54:46

+0

不一定能看到的register_globals的任何保證指示在這裏,但也有一些SQL漏洞。 – cmbuckley 2012-02-15 17:06:05

+0

這個問題在使用Firefox或Opera時自動回答:-) – cmbuckley 2012-02-15 17:09:49

回答

2

刪除這些akward的字符,只是這樣做

差異:

    AND user.password = '$psw' "; 

    AND user.password = '$psw' "; 
+0

我沒有看到任何區別。 – 2012-02-15 16:56:22

+1

@Martin文件包含U + FFFC對象替換字符。他們可以在Firefox中看到,但不能在Chrome中看到。 – cmbuckley 2012-02-15 17:02:21

+0

@cbukley啊!在歌劇,太:) – 2012-02-15 17:03:25

1

你有一些奇怪的字符在開頭:

    AND user.password = '$psw' ";