jQuery中的页面重定向

时间:2019-01-22 07:48:32

标签: php jquery mysqli

成功登录后,我想重定向页面。但是此代码中的问题是,如果我输入错误,它也会转到主页。所以我删除了这个语句“ window.location = home.php”。我现在该怎么办?有人帮我吗?

<script>
                $(document).ready(function(){
                    $('#reg_form').parsley();
                    $('#reg_form').on('submit',function(event){
                        event.preventDefault();

                        if($('#reg_form').parsley().isValid())
                        {
                            $.ajax({
                                url:"db.php",
                                method:"POST",
                                data:$(this).serialize(),

                                beforeSend:function(){
                                $('#submit').attr('disabled','disabled');
                                $('#submit').val('submitting the value');
                                },
                                    success:function(data){
                                        $('#reg_form')[0].reset();
                                        $('#reg_form').parsley().reset();
                                        $('#submit').attr('disabled',false);
                                        $('#submit').val('submit');
                                        $('#message').html(data);

                                    }

                            });
                        }
                    });
                });
            </script>

db.php

<?php

//user login
if(isset($_POST['email']))
{
        $email =  $_POST['email'];
        $password = $_POST['password'];

    $query = "SELECT * FROM tbl_register where email ='$email' AND password = '$password'";
    $result = mysqli_query($connect,$query);

    if(mysqli_num_rows($result)>0)
    {
        echo "login successfully completed";

    }
    else 
    {
        echo "login failed";
    }
}

?>

3 个答案:

答案 0 :(得分:1)

最好从服务器端传递成功登录或失败登录的标志值。

赞:

如果您要编写以下代码:

 if(mysqli_num_rows($result)>0)
    {
        echo 1;

    }
    else 
    {
        echo 0;
    }

然后在ajax调用中,您可以检查数据

 $.ajax({
                                url:"db.php",
                                method:"POST",
                                data:$(this).serialize(),

                                beforeSend:function(){
                                $('#submit').attr('disabled','disabled');
                                $('#submit').val('submitting the value');
                                },
                                    success:function(data){
                                         if(data==1){
                                        window.location = home.php
                                        }
                                       $('#reg_form')[0].reset();
                                        $('#reg_form').parsley().reset();
                                        $('#submit').attr('disabled',false);
                                        $('#submit').val('submit');
                                        $('#message').html(data);

}
});

希望我的回答对您有所帮助。

答案 1 :(得分:0)

请始终在此类登录方案中使用会话。如果登录信息正确,则可以设置会话值。然后检查home.php中的会话值,如果会话值不正确,则将页面从home.php重定向到登录页面。使用以下代码。

if(mysqli_num_rows($result)>0)
{
    echo 1;
    $_SESSION["is_logged_in"]="1";

}
else 
{
    echo 0;
    $_SESSION["is_logged_in"]="-1";
}

现在在“ home.php”中检查用户是否已登录。

if ($_SESSION["is_logged_in"]==-1){

     //redirect back to login page

}else if ($_SESSION["is_logged_in"]==1){
     //do nothing

}

答案 2 :(得分:-1)

在您的php文件中

if(mysqli_num_rows($result)>0)
{
    echo json_encode(array("status"=>1,"msg"=>"login successfully completed"));

}
else 
{
    echo json_encode(array("status"=>0,"msg"=>"login failed"));
}

并在ajax成功中从as中检查数据的状态

 if(data.status){
      // success code and redirect code

   }else{
       // failed
   }