часто вижу такую ситуацию - делаешь комментарий и там пишет-- " нажмите сюда если не хотите ждать" и т.п. а почему не делается header ("Location: $URL") и ты оказываешься сразу на отредактированной странице в чем тут проблема?
Да не проблема. Просто иногда стоит показать пользователю, что действие, которое он хотел выполнить - выполнено.
wap7.ru Просто когда есть header ("Location: $URL") ты его не замечаешь, а замечаешь только когда " нажмите сюда если не хотите ждать" ;-)
юзер редактирует профиль и по нажатию отправить оказывется в уже отредактированном профиле вобщем можно смело юзать?
Прошу прощения за поднятие старой темы, но есть вопрос по header() Есть скрипт небольшой админки - только аутентификация для админа, создание/редактирование/удаление записей. Это все с помощью одного скрипта (на одной странице). Для того, чтобы можно было выйти из админки на форму аутентификации приходится писать что-то вроде этого: PHP: session_start(); #session check if($_POST['exit']) { session_destroy(); header("Location: [url=http://]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']); } Иначе приходится нажмимать на кнопку "Выход" дважды. С вышеприведенным кодом не нужно, но браузер на мгновение "задумывается", хоть кода и немного. Нечто похожее написано для создания/редактирования/удаления - после каждой выполненной операции сделать header'ом редирект страницы саму на себя, например, для того, чтобы убрать с страницы форму ввода после добавления новой записи. Стоит ли использовать header() так часто и таким образом в коде?
zmeypetrov Инструкция header у вас используется для обновления страницы. Вы можете сделать все проверки перед выводом формы и таким образом избежать замусоривания кода. В вашем примере достаточно написать так: PHP: <?php session_start(); if(isset($_POST['exit'])) { session_destroy(); unset($_SESSION); } if (empty($_SESSION['login'])) // или что-то вроде этого { ?> <!-- Вывод формы авторизации --> not auth <?php exit; } ?> admin
voxel, спасибо, про unset($_SESSION) я не подумал. Однако, если я хочу после неправильного заполнения формы вывести ее же (форму), можно ли использовать header() как-то так: PHP: <? if(!$_SESSION['login']) { if(/*форма заполнена верно*/) { $_SESSION['login']=true; } header("Location: [url=http://]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; /*вывод формы*/ } else { /*вывод целевой страницы*/ } ?> ... или же это изобретение велосипеда с квадратными колесами?
PHP: session_start(); if($_POST['exit']) { session_destroy(); header("Location: ".$_SERVER['HTTP_REFERER']); } Я юзаю так если надо перейти обратно на страницу Ну и если эта страница закрыта для пользователя то редиректю на главную