проблема со входом в AJAX - PullRequest
       23

проблема со входом в AJAX

1 голос
/ 16 марта 2010

Я создал страницу входа, которая отправляет запрос ajax на страницу php для подтверждения входа. На этой странице php я создаю сессию и отправляю ответ в соответствии с подтверждением входа. Если пользователь аутентифицирован, я перенаправляю его на домашнюю страницу из java-скрипта, откуда я отправляю ajax. но на этой домашней странице я не могу получить этот объект сеанса ... почему? Можете ли вы сказать мне решение, чтобы получить эту сессию на домашней странице

1 Ответ

1 голос
/ 16 марта 2010

Я не уверен, что делаю это правильно, но у меня так получается (надеюсь, я ничего не забыл):

Вот что делает мой login.php:

header('Content-type: text/json');

// here : import files I need

session_start();

// here : load some parameters into session variables
// here : init mysql connection
// here : get user and password from $_POST and check them against the database

// If the user can't connect, return an error to the client
if ( ! $ok )
{
    echo '{ "ok": "N" }';
    exit;
}

$_SESSION['user']    = $user;

echo '{ "ok": "O" }';

?>

Затем, когда я получаю доступ к другому файлу php, вот как это начинается:

header('Content-type: text/json');
// again, required files go here

session_start();

if ( ! isset($_SESSION['user'] )) {
        echo '{ "ok": "N" }';
    exit;
}

$user=$_SESSION['user'];
....

Каждый ajax-вызов, который я делаю, проверяет, говорит ли результат, что пользователь не подключен, и возвращается на страницу входа, если он не подключен.

  $.ajax({
    type: "POST",
    url: "myphp.php",
    dataType: "json",
    data: somedatatopost,
    success: function(pRep){
      if (!pRep) {
        alert("No response from the server.");
        return;
      }
      if (pRep.ok=="N") {
        window.location = '/index.html';
        return;
      }
      // here is where I handle a successful response
    }
  });

Для входа в Ajax-вызов у ​​меня есть:

[....]
// here is where I handle a successful response
window.location='mynewpage.html' 
...