Как перенаправить URL после успешного входа в систему через вызов Ajax в php? - PullRequest
0 голосов
/ 11 ноября 2018

Я хочу знать, что как перенаправить URL после успешного входа в систему через вызов Ajax в php? Пожалуйста, проверьте мой код, что я делаю неправильно.

Ниже приведен файл registration.php по ссылке http://localhost:8080//myproject/adminseller/registration.php:

<script>
function createLogin () {
//alert("Hello! I am an alert box!!");

var data = {

'email'     : jQuery('#email').val(),
'password'  : jQuery('#password').val(),
 };  // data obect End

//Ajax call Start Here
jQuery.ajax({
url : '/myproject/adminseller/login.php',
method : 'POST',
data : data,
success : function(data){
//alert(data);  // For checking Code in alert

if (data != 'passed') { // passed is else statement in 
check_address.php when no errors are showing
  jQuery('#modal_errors_1').html(data);
}

if (data == 'passed') {
  //alert('passed!');

  //clear the errors if any
  jQuery('#modal_errors_1').html("");
  location.reload();
  } 
  },
  error : function (){alert("Something went wrong.");},


  });    

  }

  </script>

Ниже находится файл Login.php

<?php

   if (isset($_POST['email'])) {
   $email = sanitize($_POST['email']);
 }

  if (isset($_POST['password'])) {
   $password = sanitize($_POST['password']);
 }

 // echo $email; // Output x2a0889@gmail.com
 // echo $password; // 123456

 // Email and password matched and no erros so I am removing validations code from here, So else condition will execute here

 // Check for Errors
    if (!empty($errors)) {
      echo display_errors($errors);
    }else{

      // Assume here login is successful
      echo 'passed';

        **// Here is the problem via Ajax Call url is not redirecting after login successful, and always getting url is: http://localhost:8080//myproject/adminseller/registration.php **
          header('Location:index.php');

    }


  ?>

Моя проблема в том, что после успешного входа в систему URL не меняется до сих пор http://localhost:8080//myproject/adminseller/registration.php

И я хочу перенаправить мою страницу http://localhost:8080//myproject/adminseller/index.php

После успешного входа в систему.

Любая идея или предложение приветствуются.

Ответы [ 3 ]

0 голосов
/ 11 ноября 2018

В данный момент вы перенаправляете запрос AJAX.

Нельзя перенаправить со стороны PHP при успешном запросе AJAX.

Однако вы можете перехватить возвращаемое значение из Javascript и перенаправить оттуда.

Вместо того, чтобы вызывать местоположение заголовка в вашем PHP-скрипте, поместите его в оператор if, проверяя, был ли ответ passd

window.location.href = 'index.php';

Это заставит браузер перейти на index.php.

0 голосов
/ 11 ноября 2018

Вы перенаправляете вызов Ajax, что не должно иметь место. Удалите эту строку из кода PHP:

** // Вот проблема через Ajax Call url, который не перенаправляет после успешного входа в систему, и всегда получает url: http://localhost:8080//myproject/adminseller/registration.php ** заголовок ( 'Location: index.php');

А затем замените следующий код JS: n.

// очистить ошибки, если есть какой-либо jQuery ('# modal_errors_1'). Html ("");
location.reload ();

со следующим кодом:

// сбросить ошибки, если есть какой-либо jQuery ('# modal_errors_1'). Html ("");
window.location.href = 'index.php';

0 голосов
/ 11 ноября 2018

Вам нужно использовать window.location.href, а не location.reload ();

<script>
function createLogin () {
//alert("Hello! I am an alert box!!");

var data = {

'email'     : jQuery('#email').val(),
'password'  : jQuery('#password').val(),
 };  // data obect End

//Ajax call Start Here
jQuery.ajax({
url : '/myproject/adminseller/login.php',
method : 'POST',
data : data,
success : function(data){
//alert(data);  // For checking Code in alert

if (data != 'passed') { // passed is else statement in 
check_address.php when no errors are showing
  jQuery('#modal_errors_1').html(data);
}

if (data == 'passed') {
  //alert('passed!');

  //clear the errors if any
  jQuery('#modal_errors_1').html("");
  window.location.href = "http://localhost:8080//myproject/adminseller/index.php";
  } 
  },
  error : function (){alert("Something went wrong.");},


  });    

  }

  </script>
Below is the Login.php File

<?php

   if (isset($_POST['email'])) {
   $email = sanitize($_POST['email']);
 }

  if (isset($_POST['password'])) {
   $password = sanitize($_POST['password']);
 }

 // echo $email; // Output x2a0889@gmail.com
 // echo $password; // 123456

 // Email and password matched and no erros so I am removing validations code from here, So else condition will execute here

 // Check for Errors
    if (!empty($errors)) {
      echo display_errors($errors);
    }else{

      // Assume here login is successful
      echo 'passed';

        **// Here is the problem via Ajax Call url is not redirecting after login successful, and always getting url is: http://localhost:8080//myproject/adminseller/registration.php **
          header('Location:index.php');

    }


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