2015-05-05 183 views
0

沒有人理解這個代碼的問題!它確實有效,但現在不行。我無法登錄到'個人資料頁'任何人都可以看到和發佈?連接登錄失敗PHP

<?php 
session_start(); 

$error=''; 
if (isset($_POST['submit'])) 
{ 
    if (empty($_POST['username']) || empty($_POST['password'])) 
    { 
     $error = "Enter username & password"; 
    } 
else { 
    // Define $username and $password 
    $username=$_POST['username']; 
    $password=$_POST['password']; 

    $connection = mysql_connect("localhost", "root", ""); 
    echo($connection); 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password); 

    $db = mysql_select_db("Windsor", $connection); 
     echo($db);  
     $sql = "SELECT * FROM PHP_Customer WHERE Email='$username' and Password='$password'"; 
     echo($sql); 
     $result = mysql_query($sql); 

      $count=mysql_num_rows($result); 

      if ($count < 1) 
      { 
       $error = "Username or Password is incorrect"; 
      } 
      else 
      { 
       $_SESSION['user_login'] = $username; 
       header('location: profile.php'); 
       echo "hello world!"; // This is just for testing purposes 

      } 
     } 
mysql_close($connection); 
} 

?> 

正如我所說,它確實工作,無論出於何種原因它似乎不再。

+0

你在這裏發現任何錯誤? –

+0

請使用mysli_ *或PDO。因爲mysql_ *現在已被棄用。並嘗試寫入mysql錯誤代碼,以便您知道實際發生了什麼錯誤 –

+0

無論如何,純粹是爲了調試目的,我嘗試了'\t \t \t echo($ sql);'如果我輸入了正確的值登錄細節,沒有顯示。然而,如果我輸入了不正確的詳細信息,則會打印查詢,如'SELECT * FROM PHP_Customer WHERE Email ='wrong'and Password ='wrong password'' –

回答

0

好的發現了幾個問題。

1)您在聲明中使用小寫「AND」。它應該閱讀:

$sql = "SELECT * FROM PHP_Customer WHERE Email='$username' AND Password='$password'"; 

2)不要設置mysql_select_db作爲一個變量和回聲它。該行應爲:

mysql_select_db("Windsor", $connection); 

3)不要回顯連接詳細信息。

4)添加一些錯誤檢查到您的mysql語句。

腳本現在應該如下:

<?php 
session_start(); 

$error=''; 
if (isset($_POST['submit'])) 
{ 
    if (empty($_POST['username']) || empty($_POST['password'])) 
    { 
     $error = "Enter username & password"; 
    } 
else { 
    // Define $username and $password 
    $username=$_POST['username']; 
    $password=$_POST['password']; 

    $connection = mysql_connect("localhost", "root", "") or die(mysql_error()); 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password); 

    mysql_select_db("Windsor", $connection) or die(mysql_error());  
     $sql = "SELECT * FROM PHP_Customer WHERE Email='$username' AND Password='$password'"; 
     $result = mysql_query($sql) or die(mysql_error()); 

      $count=mysql_num_rows($result); 

      if ($count < 1) 
      { 
       $error = "Username or Password is incorrect"; 
      } 
      else 
      { 
       $_SESSION['user_login'] = $username; 
       header('location: profile.php'); 
       echo "hello world!"; // This is just for testing purposes 

      } 
     } 
mysql_close($connection); 
} 

?>