Возврат переменной из PHP в AJAX - PullRequest
0 голосов
/ 15 декабря 2018

как я могу вернуть переменную из PHP-запроса в AJAXA.Я хочу, чтобы после успешного ввода логина и пароля пользователь был перенаправлен на панель пользователя с помощью JavaScript.Запрос на PHP был успешно написан, но Ajax не возвращает никаких результатов.

Код Javascript:

$(document).ready(function() {
  $("#btn-login").click(function() {
    const loginAuth = $("#login-auth").val();
    const passAuth = $("#pass-auth").val();
    $.ajax({
      type: "POST", //Request type
      url: "http://localhost/game/login.php",
      data: {
        loginAuth: loginAuth,
        passAuth: passAuth
      },
      cache: false,
      success: function(data) {
        console.log(data);
      }
    });
  });
});

Код PHP:

<?php
require ('connect.php');

session_start();

// If form submitted, insert values into the database.

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

  // removes backslashes

  $username = stripslashes($_REQUEST['loginAuth']);

  // escapes special characters in a string

  $username = mysqli_real_escape_string($con, $username);
  $password = stripslashes($_REQUEST['passAuth']);
  $password = mysqli_real_escape_string($con, $password);

  // Checking is user existing in the database or not

  $query = "SELECT * FROM `users` WHERE login='$username'
    and password='" . md5($password) . "'";
  $result = mysqli_query($con, $query) or die(mysql_error());
  $rows = mysqli_num_rows($result);
  if ($rows == 1) {
    $_SESSION['username'] = $username;

    // Redirect user to index.php

    $arr = 'udało się';
    header("Location: panel.php");
  }
  else {
    $arr = false;
    header("Location: panelLogin.php");
  }
}
else {
}

echo json_encode($arr);
?>

Большое спасибо за каждую помощь.

1 Ответ

0 голосов
/ 15 декабря 2018

вы не можете перенаправить пользователя из сценария php, который вызывается из вызова ajax.

, потому что он будет перенаправлять, но не на ваш экземпляр браузера, а на экземпляр ajax.

вам нужноперенаправить его из JavaScript.

, чтобы вы могли сделать

echo "true";

вместо

header("Location: panel.php");

и echo "false"; // in case login failed

в качестве примера, но выможно распечатать некоторый текст в формате json и использовать более информативные сообщения

, и вы можете проверить эти значения из функции успеха ajax, после чего вы можете сделать

window.location.href = "the url you want to redirect to";
...