перенаправление страницы в jquery - PullRequest
0 голосов
/ 22 января 2019

Я хочу перенаправить страницу после успешного входа в систему.но проблема в этом коде заключается в том, что, если я введу неправильные данные, он также перейдет на домашнюю страницу.поэтому я удалил это утверждение '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 голосов
/ 22 января 2019

Лучше передать значение флага, если вход выполнен успешно или нет со стороны сервера.

Как:

Если вы напишете ниже код:

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

}
});

Надеюсь, мой ответ поможет вам.

0 голосов
/ 22 января 2019

Пожалуйста, всегда используйте сессии в таких сценариях входа. Вы можете установить значение сеанса, если информация для входа верна. Затем проверьте значение сеанса в 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

}
0 голосов
/ 22 января 2019

В вашем 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 success проверьте статус из данных как

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

   }else{
       // failed
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...