2013-09-06 3 views
1

У меня есть форма входа, встроенная в боковую панель моей страницы. Как только пользователь войдет в систему, я хочу, чтобы он перенаправлял обратно на ту же страницу, с которой они вошли.Переадресация заголовка не обновляется страница перенаправления

Этого достаточно легко достичь. Однако, когда функция входа завершается и перенаправляется на исходную страницу, но на самом деле она не обновляет ее. Форма входа изменяется с формы на информационный дисплей. Несмотря на то, что на самом деле пользователь сейчас регистрируется, он по-прежнему отображает форму входа.

Я попытался с помощью

header ("refresh:0;url=url.php"); 

Однако я не могу получить URL пользователь пришел с правильно решить и перенаправлять на него.

кода я использую ниже

if(isset($_POST['location'])) { 
    $location = htmlspecialchars($_POST['location']); 
    header("Location:" .HOME_PATH. urlencode($location)); 
} 

Есть простой способ заставить обновление или это лучше всего использовать что-то вроде AJAX, чтобы достичь того же.

Я думаю, что самое простое - использовать заголовок обновления, но я не понимаю, как добиться такого же эффекта, как я использовал в Location.

EDIT:

Проверки формы Войти, чтобы увидеть, если пользователь вошел в систему и изменения на дисплей вместо формы входа, если они не являются.

<?php if (isset($_SESSION['userName'])) { ?> 

Форма затем отправляется в функцию php. Функция фактически выполняет регистрацию пользователя, и как только это делается, она перенаправляется на страницу, из которой они пришли. Здесь и лежит проблема. Возвращаемое перенаправление не обновить страницу, чтобы условие формы могло изменять отображаемое.

+0

- это ваш код, который правильно отображает форму входа в систему, чтобы узнать, вошел ли пользователь в систему? –

+0

Да, это '' – user1711576

+0

Вы можете проверить, вошел ли пользователь в систему или нет, перед отображением формы или информации. –

ответ

2

header("Location: ...") не остановит рендеринг страницы. Вам нужно остановиться, разместив exit сразу после него.

+0

. Он перенаправляет успешно, он просто не обновляет страницу, чтобы показать, что пользователь теперь зарегистрирован и поэтому измените форму. Я попытался использовать 'exit;' и он не меняет поведения. – user1711576

+0

Да, возможно, это так, но теперь это правильный способ использования перенаправления, вы всегда должны прекращать выполнение страницы с помощью 'exit' или' die', сразу после перенаправления, в противном случае есть шанс временно показать страницу на некоторое время, прежде чем браузер переадресовывается в другое место. –

+0

спасибо за это примечание. Я поставлю его навсегда – user1711576

Смежные вопросы