За последние 24 часа нас посетили 47199 программистов и 1807 роботов. Сейчас ищут 2193 программиста ...

использование header ("Location: $URL");

Тема в разделе "PHP для новичков", создана пользователем wap7.ru, 27 авг 2008.

  1. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    часто вижу такую ситуацию - делаешь комментарий и там пишет--

    " нажмите сюда если не хотите ждать" и т.п.

    а почему не делается header ("Location: $URL")

    и ты оказываешься сразу на отредактированной странице

    в чем тут проблема?
     
  2. Anonymous

    Anonymous Guest

    Да не проблема. Просто иногда стоит показать пользователю, что действие, которое он хотел выполнить - выполнено.
     
  3. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    wap7.ru
    Просто когда есть header ("Location: $URL") ты его не замечаешь, а замечаешь только когда " нажмите сюда если не хотите ждать" ;-)
     
  4. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    юзер редактирует профиль

    и по нажатию отправить оказывется в уже отредактированном профиле

    вобщем можно смело юзать?
     
  5. Anonymous

    Anonymous Guest

    Убери, пожалуйста, картинку из подписи.

    технических проблем никаких.
     
  6. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    а что с картинкой?
     
  7. Anonymous

    Anonymous Guest

    Здесь это не принято.
     
  8. zmeypetrov

    zmeypetrov Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    Прошу прощения за поднятие старой темы, но есть вопрос по header()

    Есть скрипт небольшой админки - только аутентификация для админа, создание/редактирование/удаление записей. Это все с помощью одного скрипта (на одной странице). Для того, чтобы можно было выйти из админки на форму аутентификации приходится писать что-то вроде этого:
    PHP:
    1.  
    2. session_start();                                                                #session check
    3. if($_POST['exit']) {
    4.     header("Location: [url=http://]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']);
    5. }
    6.  
    Иначе приходится нажмимать на кнопку "Выход" дважды. С вышеприведенным кодом не нужно, но браузер на мгновение "задумывается", хоть кода и немного.

    Нечто похожее написано для создания/редактирования/удаления - после каждой выполненной операции сделать header'ом редирект страницы саму на себя, например, для того, чтобы убрать с страницы форму ввода после добавления новой записи.

    Стоит ли использовать header() так часто и таким образом в коде?
     
  9. voxel

    voxel Активный пользователь

    С нами с:
    8 сен 2010
    Сообщения:
    19
    Симпатии:
    0
    zmeypetrov
    Инструкция header у вас используется для обновления страницы. Вы можете сделать все проверки перед выводом формы и таким образом избежать замусоривания кода. В вашем примере достаточно написать так:
    PHP:
    1. <?php
    2. if(isset($_POST['exit']))
    3. {
    4.     unset($_SESSION);
    5. }
    6. if (empty($_SESSION['login'])) // или что-то вроде этого
    7. {
    8. ?>
    9. <!-- Вывод формы авторизации -->
    10. not auth
    11. <?php
    12.    exit;
    13. }
    14. ?>
    15. admin
     
  10. zmeypetrov

    zmeypetrov Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    voxel, спасибо, про unset($_SESSION) я не подумал.

    Однако, если я хочу после неправильного заполнения формы вывести ее же (форму), можно ли использовать header() как-то так:
    PHP:
    1.  
    2. <?
    3. if(!$_SESSION['login']) {
    4.     if(/*форма заполнена верно*/) {
    5.         $_SESSION['login']=true;
    6.     }  
    7.     header("Location: [url=http://]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
    8.     /*вывод формы*/
    9. }
    10. else {
    11.    /*вывод целевой страницы*/
    12. }
    13. ?>
    14.  
    ... или же это изобретение велосипеда с квадратными колесами?
     
  11. Rim

    Rim Активный пользователь

    С нами с:
    28 дек 2010
    Сообщения:
    53
    Симпатии:
    0
    PHP:
    1.  session_start();                                                              
    2.  if($_POST['exit']) {
    3.      session_destroy();
    4.      header("Location: ".$_SERVER['HTTP_REFERER']);
    5.  }
    Я юзаю так если надо перейти обратно на страницу
    Ну и если эта страница закрыта для пользователя то редиректю на главную