【发布时间】:2015-01-06 11:41:00
【问题描述】:
我正在为我的乐队网页构建我的第一个登录。经过三周的辛勤工作,我觉得它是正确的,但显然不是。我学习的每个教程都从许多用户中选择一个用户。我的网站只有一个用户,所以我想出了我认为直截了当的代码。
当我运行它时,它给了我“你搞砸了”的错误信息。我尝试将用户名直接传递给变量而不使用 mysql 语句,但我仍然得到相同的错误。
运行时它应该设置一个会话,然后重定向到我的 GUI 页面。 GUI 页面工作正常,但由于未设置会话,它会立即重定向回登录页面。
我没有收到任何数据库连接错误。
这是我的登录脚本。我现在不担心安全问题。我只是想让它工作。帮我stackOverflow,你是我唯一的希望。! (蹩脚的星球大战参考)
if (isset($_POST ['submit'])){
$username = $_POST ['name'];
$password = $_POST ['password'];
if(!empty($username) && !empty($password)){
$UserQuery = ("SELECT `username` FROM `logindeets` WHERE 1");
$PassQuery = ("SELECT `password` FROM `logindeets` WHERE 1");
$dbUser = mysql_query($UserQuery);
$dbPass = mysql_query($PassQuery);
if($username == $dbUser && $password == $dbPass){
$_SESSION['loggedin'] = true;
header("location:gui.php");
}
else{
echo '<script language="javascript">';
echo 'alert("You screwed up")';
echo '</script>';
}
}
else{
echo '<script language="javascript">';
echo 'alert("Please fill in all of the required fields")';
echo '</script>';
}
}
?>
【问题讨论】:
-
mysql_query 不会返回您的想法。
-
你为什么还要执行两个查询?
SELECT `username`,`password` FROM `logindeets` WHERE 1您确实意识到这将获取您的 logindeets 表中的每个条目?不仅仅是尝试登录的用户 -
但是请开始学习使用准备好的语句/绑定变量与 MySQLi 或 PDO,而不是旧的不推荐使用的 MySQL 扩展
-
我从未听说过 PDO..
-
那么有一种正确的方法可以将来自 mySQL 的数据片段放入两个单独的变量中吗?学过的教程有点老了。