我在这个问题上纠结了一段时间,似乎搞不清楚问题出在哪里。我正在为我的项目制作一个非常简单、基本的登录页面,但是我似乎无法让我的“else”语句正常工作。
当用户名和密码输入正确,我可以成功地得到登录消息显示,但如果我输入用户名和密码不正确,我想没有结果,仍然显示'不正确的用户名或密码'的消息,但它总是显示为空白。
ps:我知道会话和其他的,我只是想在我尝试之前把它整理好。
在过去的几个小时里,我找了其他地方,但找不到任何可以帮助我解决问题的帮助。
$user_name = $_POST['username'];
$user_password = $_POST['password'];
if (isset($_POST["username"], $_POST["password"])) {
$results = $pdo->query("SELECT user_name, user_password FROM users WHERE user_name = '" . $user_name . "' AND user_password = '" . $user_password . "'");
foreach ($results as $result) {
$result = $pdo->query("SELECT COUNT(*) FROM users WHERE user_name = '" . $user_name . "' AND user_password = '" . $user_password . "'")->fetchColumn();
//var_dump($result);
if ($result > 0){
echo "Signed In";
} else {
echo "Incorrect Username or Password!";
}
}
}
1条答案
按热度按时间mqkwyuun1#
你的第一个pdo不正确。
密码应该总是散列的。去做吧。
您需要更改为:
请阅读本文和本文,以改进php中的sql处理。
同时阅读本文(尤其是这个答案),并阅读有关探索php错误日志的内容。
由于你使用流浪者和错误地提到,流浪者不给错误日志,请谷歌这个信息,以发现流浪者确实给php错误日志。你需要使用它们。
几乎代码的每一部分都不是最佳实践,需要大量改进。
完全修复你的代码
假设用户名是唯一值