php - Jquery & PHP 不指向标头函数
问题描述
当登录成功时,我有这个带有 Jquery、ajax 和 PHP 的简单登录表单,主页显示在 div 部分而不是转到下一个网页。有什么建议么?
HTML 表单:
<script>
$(document).ready(function(){
$('form').submit(function(){
var userid = $('#userid').val();
var password = $('#password').val();
if (userid == '' || password == '') {
$("#msg").html("All Fields Required");
return false;
}
$.ajax({
data: {"userid":userid, "password":password},
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(data){
$("#msg").html(data);
}});
return false;
});
});
</script>
<form method="post" class="form-horizontal" action="login.php">
<input id="userid" name="userid" type="text" class="form-control" placeholder="User ID">
<input id="password" name="password" type="password" class="form-control" placeholder="Password">
<button type="submit" name="submit" id="submit" class="btn btn-primary"><b>Login</b></button>
<h4 align="center" id="msg" style="background-color: red; color: white;"></h4>
</form>
PHP代码:
<?php
include 'db.php';
$user = $_POST['userid'];
$pass = $_POST['password'];
$query = mysqli_query($con, "SELECT * FROM login WHERE userid='$user' AND password='$pass'") or die (mysqli_error($con));
$result = mysqli_num_rows($query);
while($row = mysqli_fetch_array($query)){
$_SESSION['user'] = $row['userid'];
}
if(!$result){
echo "Username or Password is incorrect!";
}else{
header("Location: claims.php?id='".$_SESSION['id']."'");
}
mysqli_close($con);
?>
解决方案
我发现答案是使用 Javascript 重定向
echo '<script>window.location.href = "claims.php?id='.$_SESSION['id'].'";</script>';
推荐阅读
- javascript - 反应原生 unfocus TextInput
- javascript - 尝试通过firebase删除Web应用程序的键值
- security - 密码哈希查询
- flutter - Flutter - 调整网络图像大小
- html - 下拉列表依赖于 IE 中的其他下拉列表并且不更新 vba
- android - 来自服务内部 startForeground 的通知有时不显示
- python - While 循环计数器混淆
- r - 如何在 R 中使用 which.max 来计算组来估算缺失值?
- gitlab - 获取两个分支之间更改的文件列表
- certificate - 从 pem 格式的证书中解析 DN(正确的顺序)