如何解决php登录系统问题
| $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
它出什么问题了?
解决方法
发生错误时,提示您忘记了$密码变量前的$符号,
但是也
您的查询应为
(\"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);
,您看到的错误是因为您可能在某处使用$_POST[password]
和$_POST[email]
。
但是,这些只是注意事项,如果您读懂它们,将会发现它们与在它们周围使用引号具有相同的效果(您确实应该这样做!)
但是您的查询也不正确,这将创建一个有效的查询:
$result31 = mysql_query
(\"SELECT * FROM
用户WHERE email = \'$mail\' AND password=\'$pass\'\");
注意\'$mail\'
和AND
之间的多余空间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。