редирект в php

Тема в разделе "PHP", создана пользователем ufaclub, 3 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ufaclub

    ufaclub

    Регистр.:
    1 май 2007
    Сообщения:
    394
    Симпатии:
    17
    PHP:
    /* Отправка сообщения */
    $verify mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
          if (
    $verify == 'true')
          {
           echo 
    "Сообщение отправлено!";
          }
          else 
          {
          echo 
    "Сообщение не отправлено!";
          }
      }
    как сделать чтоб после етого сообшения был редирект на главную сайта?
     
  2. []\/[]4|<|_4|_||)

    []\/[]4|<|_4|_||) Создатель

    Регистр.:
    14 июл 2009
    Сообщения:
    25
    Симпатии:
    6
    С задержкой:
    PHP:
    $URL="http://www.google.com";
    header("Refresh: 3; URL=$URL");
    echo 
    "Через 3 сек. вы будете перенаправлены на главную страницу.";
    Без задержки:
    PHP:
    $URL="http://www.google.com";
    header ("Location: $URL");
     
  3. ufaclub

    ufaclub

    Регистр.:
    1 май 2007
    Сообщения:
    394
    Симпатии:
    17
    PHP:
    $verify mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
          if (
    $verify == 'true')
          {

           echo
           
    $URL="http://www.google.com";
           
    header ("Location: $URL");  
          }
          else 
          {
          echo 
    "Сообщение не отправлено!";
          }
      }  

    так не работает((
     
  4. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
     echo
           
    $URL="http://www.google.com";
           
    header ("Location: $URL");
    1. что вы пытаетесь в данном случае вывести на экран?
    2. весь вывод должен выполнятся после отправки заголовка, как это показано в примере выше.
     
  5. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    заголовок header должен быть ДО вывода чего угодно в браузер
    т.е. любые echo, print и тп - только ПОСЛЕ header

    в случае с хэадер - сообщение не будет выведено, если вы хотите, что бы редирект был ПОСЛЕ вывода сообщения,
    то это, например, так будет выглядеть

    PHP:
    $verify mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");

    $URL="http://www.google.com";
    echo(
    "<meta http-equiv=\"REFRESH\" content=\"1; URL='$URL'\">");

          if (
    $verify == 'true')
          {
           echo 
    "Сообщение отправлено!";
          }
          else 
          {
          echo 
    "Сообщение не отправлено!";
          }

    теперь сначала будет выведено сообщение, а потом будет редирект на целевую страницу
     
    ufaclub нравится это.
  6. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    Код:
      /**
       * Перенаправление
       * @param string URL
       * @param integer Задержка в сек
       * @param mixed Тип заголовок или мета
       */
      function redirect($url,$time=0,$type='header') {
        switch($type):
          case 'meta':
            echo'<meta http-equiv="refresh" content="'.$time.'; URL='.$url.'" >';
            break;
          case 'location':
            header("Request-URI: $url");
            header("Content-Location: $url");
            header("Location: $url");
            header("Location: url=".$url);
            break;
          case 'refresh':
          default:
            if(headers_sent()):
              echo"<script>document.location.href='$url';</script>\n";
            else:
              header("Request-URI: $url");
              header("Content-Location: $url");
              header("Refresh: ".$time." url=".$url);
            endif;
            exit();
            break;
          endswitch;
      }
    то как у меня работает годами))
     
  7. ufaclub

    ufaclub

    Регистр.:
    1 май 2007
    Сообщения:
    394
    Симпатии:
    17

    вот то что надо было.. спасибо
     
  8. resident

    resident Создатель

    Регистр.:
    15 апр 2006
    Сообщения:
    10
    Симпатии:
    2
    Можно просто юзать буферезацию вывода ob_start(), чтоб не возникало проблем с отправкой заголовков после какого либо вывода. :)
     
  9. BasTaller

    BasTaller Постоялец

    Регистр.:
    29 янв 2009
    Сообщения:
    52
    Симпатии:
    1
    Насчёт ob_start - тормозов добавится.
    Насчёт header - иногда нету никакого вывода с пом. функций вывода, а header всё равно не шлётся. Нюанс в ряде идущих открывающих/закрывающих тегов php.
    Т.е.
    PHP:
    <?php
    ...some code
    ?>

    <?php
    ...some more code
    ?>
    дадут вывод.
    Нужно:
    PHP:
    <?php
    ...some code
    ?>
    <?php
    ...some more code
    ?>
     
  10. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Что за бред?
    у вас скрипты не в кодировке с BOM
     
Статус темы:
Закрыта.