我正在使用以下内容:
Firefox 31.0(禁用Cookies)WAMP Server 2.
问题是,即使我使用正确的登录帐户,浏览器也只会将我重定向回登录页面.
问题(我认为)如果没有在查询上是在If Else.它跳过IF下的语句,然后直接跳转到ELSE语句,再次将我重定向回登录页面.
代码没有错误,但可能在逻辑错误,或者它是浏览器.感谢您的帮助.
$username = isset($_POST['username']); $password = isset($_POST['password']);
这会将用户名和密码设置为仅指示是否存在已发布值的布尔值.由于您在查询中使用这些变量,查询将失败(除非您的用户'1'的密码为'1').
一种可能但不是很好的解决方法是:
$username = $_POST['username']; $password = $_POST['password'];
但是你对SQL注入是开放的,因为任何人都可以发布任何字符来打破你的查询.如果密码包含;
或更糟:部分SQL语句怎么办?所以更好的是:
$username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']);
mysql_real_escape_string将转义无效字符,因此可以在查询中非常安全地使用它们.但是,您仍然使用过时的,已弃用的函数集来连接和使用MySQL.因此,请阅读MySQL介绍页面上的警告(几乎每个与此库相关的其他页面也会重复此警告).
此扩展自PHP 5.5.0起不推荐使用,不建议用于编写新代码,因为将来会删除它.相反,应该使用mysqli或PDO_MySQL扩展.另请参阅 MySQL API概述,以便在选择MySQL API时获得进一步的帮助.
到目前为止,MySQL.下一章是发送和存储密码.你应该优先通过HTTPS(也许你已经这样做了,我希望如此).通常,您不应将密码作为纯文本存储在数据库中.实际上你也不应该加密它们.你应该哈希他们.即便如此,添加一些盐.具体细节在这里需要解释,但对此有很好的解释.这是一个随机的:严重的安全性:如何安全地存储用户的密码