php - 不使用 PHP 和 Ajax 使用 session 登录另一个页面

标签 php mysql ajax mysqli

我正在使用 PHPAjax 使用 session 变量登录另一个页面。当我点击提交按钮时,没有任何反应。

HTML 代码如下,命名为 login.php:

<?php 

require_once "dbconnection.php";
// Initialize the session
session_start();  

// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location: index.php");
    exit;
}
?>

     <div id='info'>  </div>
<form  method="POST" class="form-signin" name="mylogin" id="mylogin">
                        <div class="account-logo">
                         <img src="assets/img/logo-dark.png" alt="">
                        </div>
                        <div class="form-group">
                            <label>Email</label>
                            <input type="email" id="email" name="email"  autofocus="" class="form-control">
                        </div>
                        <div class="form-group">
                            <label>Password</label>
                            <input type="password" name="password" id="password" class="form-control">
                        </div>
                        <div class="form-group text-right">
                            <a href="forgot-password.php">Forgot your password?</a>
                        </div>
                        <div class="form-group text-center">
                        <input type="button" value="login" id="login" name="login"
                        class="btn btn-primary account-btn" >
 </div>
                        <div class="text-center register-link">
                            Don’t have an account? <a href="register.php">Register Now</a>
                        </div>
                    </form>

在同一页面中Ajax查询是:

<script>

$(document).ready(function (){
    $('#mylogin').validate({
rules: {
password:{
    required:true;

},
email:{
    required:true;
email:true
}
},
messages: {
    password:{
    required:"Requered"

},  
email:"Requered"
},

submitHandler : subform
    })

    function subform() {

    var email = $('#email').val();
    var password = $('#password').val();

    var data = {

        "email": email,
        "password": password

$.ajax({
    type: "POST",  
    url: "auth/logging.php", // Url to which the request is send
    data: data,

                           // Type of request to be send, called as method
beforeSend:function () {
$('#info').fadeOut();
$('#login').html('Sending ....');
},

  success: function(resp){
if(resp=="ok"){
    $('#login').html('Login');
setTimeout('window.location.href="index.php";',4000);

}else{

    $('#info').fadeIn(1000,function(){
        $('#info').html("<div class='alert alert-danger'>" +resp+ "</div>");
        $('#login').html('Login');


    })
}

     }
                })
    }
})

</script>

我的logging.php将是:

    <?php



session_start();  
require_once "dbconnection.php";

if (isset($_POST['email'])) {

    $email = trim($_POST["email"]);
    $pass = trim($_POST["password"]);
    $password = md5($pass);

    $query = $mysqli->prepare("SELECT * FROM users WHERE email=?");
    $query->bind_param("d",$email);
    $query->execute();
    $query->bind_result($id,$user,$myemail,$mypass);
    $query->fetch();
if($mypass==$password){
echo 'ok';
$_SESSION['id'] = $id;
$_SESSION['user']  = $user;


}else{


    echo 'emai & pass wrog';
}

    ?>

如有任何帮助,我们将不胜感激。

最佳答案

应该是s而不是d。它代表字符串。

$query->bind_param("s",$email);

此外,您永远不应该使用 MD5 作为密码。使用password_hash()

关于php - 不使用 PHP 和 Ajax 使用 session 登录另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109492/

相关文章:

php - 外键、连接和返回索引

java - 如何使用数据库实现memcached?

mysql - 按 order_id 分组并在 mysql 中将 id 分配给 offer_id

javascript - 打开网站的另一个页面后保持 jquery 下拉菜单打开

javascript - 成功和 .then 之间的 jQuery AJAX 关系

PHP socket_connect() 权限被拒绝

php - 只有 html 表的最后一行被插入到数据库中

php - 从 mysql 数据库输出中排除一行

php - 使用 PHP 将 XML 转换为 HTML 表格

php - 数据库中插入了乱码而不是希伯来语