php登录系统问题

时间:2011-05-26 09:41:37

标签: mysql

  $con = mysql_connect("xx","xx","xx");
  if (!$con)
    {
   die('Could not connect: ' . mysql_error());
   }
  mysql_select_db("ban", $con);
 $pass=$_POST["password"];-------------> line 10
 $mail=$_POST["email"];----------------->line 11

 $result31 = mysql_query
 ("SELECT * FROM `users` WHERE email = '$mail'AND password='$pass'");

  $login_check = mysql_num_rows($result31);
  echo $login_check; 

   mysql_close($con)

这是登录系统的一部分,但它无法正常工作

我得到的错误是: -

Notice: Use of undefined constant password - assumed 'password' in D:\wamp\www\phpadder.php on line 10

Notice: Use of undefined constant email - assumed 'email' in D:\wamp\www\phpadder.php on line 11

 Warning: mysql_num_rows() expects parameter 1 to be resource, string given in       D:\wamp\www\phpadder.php on line 17

它出了什么问题?

2 个答案:

答案 0 :(得分:1)

在您的错误上,它表示您在密码变量之前忘记了$ symbole,

但也

您的查询应该是

("SELECT * FROM `users` WHERE email = '$mail' AND password='$pass'");

您忘记在邮件和AND之间添加空格

在使用查询

之前,还要考虑首先转义您的值
$sql = "SELECT * FROM `users` WHERE email = '%s' AND password='%s'";
$sql = sprintf($sql,mysql_real_escape_string($mail),mysql_real_escape_string($pass));

现在你可以查询

$result = mysql_query($sql);

答案 1 :(得分:1)

您看到的错误是因为您可能在某处使用$_POST[password]$_POST[email] 但是,这些只是注意事项,如果你读得很好,你会发现它们与使用它们周围的引号具有相同的效果(你真的应该这样做!)

但是您的查询也不正确,这将创建一个有效的查询:

$result31 = mysql_query ("SELECT * FROM {用户{1}}

请注意WHERE email = '$mail' AND password='$pass'");'$mail'之间的额外空格。