page redirection in jquery

2019-08-26 21:01发布

I want to redirect the page after login succesfully completed. but the problem in this code is, if i give wrong input, it also go to home page. so i removed this statement 'window.location = home.php'. what could i do now? does anyone help me guys?

<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条回答
等我变得足够好
2楼-- · 2019-08-26 21:40

Its better to pass flag value that login successfully or not from server side.

Like:

If you will write below code:

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

    }
    else 
    {
        echo 0;
    }

And then in ajax call you can check data

 $.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);

}
});

I hope my answer helps you.

查看更多
在下西门庆
3楼-- · 2019-08-26 21:55

In your php file

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"));
}

and in ajax success check for the status from data as

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

   }else{
       // failed
   }
查看更多
贼婆χ
4楼-- · 2019-08-26 22:03

Please always use the sessions in such login scenarios. you can set the session value if the login information is correct. Then check the session value in home.php, redirect the page from home.php to login page if session value is not correct. use the following code.

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

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

Now in "home.php" check whether the user is logged in or not.

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

     //redirect back to login page

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

}
查看更多
登录 后发表回答