使用php,ajax,jquery的登录页面

时间:2018-07-27 16:27:00

标签: php jquery ajax

您好,我正在尝试建立登录页面。 有两个页面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";
}

?>

1 个答案:

答案 0 :(得分:0)

请务必考虑注释对诸如纯文本密码和sql注入之类的漏洞的评论。但是您遇到的问题似乎与您单击以提交表单的按钮为type ='submit'

有关

因此,当您单击按钮时,浏览器将尝试向表单中指定的页面(如果未指定,则为当前正在提交请求的页面)发出新请求。

有两种方法可以解决此问题:

  1. 将按钮更改为type ='button',因为您已经使用不需要提交的jquery处理onclick事件
  2. 使用preventDefault();阻止提交事件的发生