您好,我正在尝试建立登录页面。 有两个页面login.php和login2.php login.php具有一种形式,该形式接受来自用户的电子邮件和密码,该电子邮件和密码使用$ .post()发送到login2.php。 login2.php检查数据库中的电子邮件和密码,然后将一条消息发送到login.php,该消息应该以id =“ msg”显示。 问题是消息已打印,但刷新页面后消息消失了
login.php
<form>
<input type="radio" name="role" value="tbl_staff_details" checked>Institute/Branch
<input type="radio" name="role" value="tbl_student_details">Student/Parent
</br></br>
<div id="msg" style="color: red"></div>
<div class="form-group has-feedback">
<input type="email" class="form-control" placeholder="Email" id="mail">
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="Password" id="pwd">
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label>
<input type="checkbox"> Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat" id="signin">Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
<script>
$(function(){
$("#signin").click(function(){
var mail = $("#mail").val();
var pwd = $("#pwd").val();
var role = $("input[name='role']:checked").val();
$.post("login2.php",
{
mail: mail,
pwd: pwd,
role: role
},
function(data,status){
$("#msg").text(data);
});
});
});
</script>
login2.php
<?php
$email=$_POST['mail'];
$pwd=$_POST['pwd'];
$table=$_POST['role'];
include_once 'conf.php';
if ($table=="tbl_staff_details") {
$q="select * from ".$table." where email=".$email." and pwd=".$pwd;
}
else{
$q="select * from ".$table." where stud_email='".$email."' and stud_pwd='".$pwd."' or stud_email='".$email."' and parent_pwd='".$pwd."'";
}
$r=mysqli_query($con,$q);
$ro=mysqli_num_rows($r);
if ($ro>0) {
echo "Success";
//header('location:test.php');
}
else{
echo "Email or password is wrong";
}
?>
答案 0 :(得分:0)
请务必考虑注释对诸如纯文本密码和sql注入之类的漏洞的评论。但是您遇到的问题似乎与您单击以提交表单的按钮为type ='submit'
有关因此,当您单击按钮时,浏览器将尝试向表单中指定的页面(如果未指定,则为当前正在提交请求的页面)发出新请求。
有两种方法可以解决此问题: