2015-05-05 185 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); 
} 

?>