В функции, которая потребляет Вход JSON, проверка simpy для значения ответа (или любого другого условия, которое вы хотите), и если совпадение, выполните перенаправление:
$.post("action.php", { email: email, password:pass, action:action }, function(json)
{
if (json.response.error)
$(window.location).attr('href', 'home.php?id=' + json.response.user_id);
}, 'json');
В более общем сценарии вам также необходимо проверить, что login.php действительно возвращается, т. Е. Вы используете обработчик успеха и отказа; обработчик успеха, если JSON существует, если ответ правильно отформатирован, делает свою вещь; все остальные случаи будут перенаправлены на home.php.
Подумайте о том, чтобы добавить диалог, чтобы объяснить пользователю, что именно произошло, и поместить перенаправление места в обработчик отклонения диалога.
Рассмотрите: что весь ваш ответ оказывается внутри словаря, называемого «ответ». Это необязательно и заставляет писать такие вещи, как json.response.error
и json.response.user_id
вместо json.user_id
.
Кроме того, я предполагаю, что логин также сохраняет регистрационную информацию в сеансе; Я бы не доверял перенаправленному id. Если вы это сделали, любой пользователь с FireBug мог бы войти в систему, как и любой другой пользователь с тем же паролем.
// action.php
// receive parameters
if ($login_ok)
{
$_SESSION['user_id'] = $user_id;
Header('Content-Type: application/json');
die(json_encode(array(
'user_id' => $user_id,
...
)));
}
// Send along the error
Тогда вы перенаправлять home.php БЕЗ user_id и home.php восстанавливает user_id от сессии.
вот мой Аякса по призванию $ .post ("action.php", {электронная почта: адрес электронной почты, пароль: пароль, действие: действие}, функция (ответ) { \t \t \t \t // здесь код \t \t \t \t \t \t \t \t \t}, "json"); ответ имеет идентификатор пользователя (который вошел в систему) теперь я хочу перенаправить пользователя на home.php вместе со своим id.how? – Bharat