好的,所以这是我的代码
<?php
$cn = new mysqli ("localhost", "root", "root", "dbsam");
$username = isset ($_POST['username']) ? $_POST['username']:"";
$password = isset ($_POST['password']) ? $_POST['password']:"";
$sql = "SELECT * FROM tbluser WHERE username=? AND password=?";
$upass = hash("SHA256", $password);
$qry = $cn->prepare($sql);
$qry->bind_param("ss", $username, $upass);
$qry->execute();
$qry->fetch();
if ($qry->num_rows()==1) {
echo "Logged in!";
}
else {
echo "<script>alert('Account did not match the database records!')</script>>";
header ("location: login.php");
}
?>
如果用户名和密码不匹配,则会出现一个警告框。所以问题是它不再出现它只执行我放在它下面的标题但如果我删除标题,将出现警告对话框。我想要出现警告框,然后用户将被重定向到登录页面。我怎样才能做到这一点?非常感谢!
答案 0 :(得分:2)
您可以在脚本代码中设置document.location。 像
这样的东西<script> document.location = 'login.php'; </script>
除了直接问题的答案之外,我觉得您需要超时或更复杂的事情来处理阅读警报所花费的时间。
答案 1 :(得分:1)
以这种方式不可能,PHP会重定向,永远不会让浏览器执行JS。
您可以在网址中添加变量,然后在login.php中进行测试,然后显示提醒
.....
else {
header ("location: login.php?mode=login_failed");
}
//login.php
$mode = filter_input(INPUT_GET, 'mode');
if ($mode === 'login_failed') {
echo '<script>.......';
}