И за чего не работает редирект

Discussion in 'PHP' started by still12, 4 Dec 2008.

  1. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    Собственно не работает .....вылезает
    Warning: Cannot modify header information - headers already sent by (output started at r:\home\localhost\www\startap\goo\g.php:2) in r:\home\localhost\www\startap\goo\g.php on line 3
    Были мнения что из за кодировки ...но не помогло ...
    PHP:
    <?php
    header
    ("Location: http://www.example.com/"); 
    ?>
     
  2. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    Перенеси выше всего, т.е. на первую строчку а не на 3.
     
  3. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    ((

    Пробовал уже ...((

    Warning: Cannot modify header information - headers already sent by (output started at r:\home\localhost\www\startap\goo\g.php:1) in r:\home\localhost\www\startap\goo\g.php on line 1

    Вот код
    PHP:
    <?php header("Location: http://yandex.ru/"); ?>
     
  4. CrazyStudentS_Mi}{

    CrazyStudentS_Mi}{ Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    424
    Likes Received:
    296
    Reputations:
    92
    так сделай


    ---------------------


    у тебя в хедере кавычки верно написаны?
     
    1 person likes this.
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    still12 До <?PHP у тебя есть пробелы или табуляция - удали и пребудет с тобой форс
     
    _________________________
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Если выше кода php есть код форма с перенаправлением или javascript с перенаправлением - будет такая ошибка
     
  7. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    ....Мне нужно было чуть чуть другое .... Тоесть при выполнении условия выполняется редирект на скрипт расположенный на другом хосте и оттуда уже отправляется мне на мыло письмо...... Но как я понял редирект из условия не сделаешь ...какие у кого есть соображения ?Разместить все на том хосте где отправляются письма не катит ...там банер ....
     
  8. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Какой текстовый редактор? Если ты сохраняеш в UTF, то многе редакторы пишут в начало файла 3 символа обозначающие кодировку(бесполезная вещ =\)
    Отключи это. У меня в phpDesigner'ре это в опциях сохранинея файла убрать галку с "Save with BOM"
     
  9. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    Каким образом можно сделать редирект из условия ?
     
  10. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    still12
    PHP:
    die('<meta http-equiv="Refresh" content="0; URL=http://куда редирект">');
     
    _________________________
  11. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Незнаю-незнаю. Использую Notepad++ , кодировка ANSIшная. Это пашет:
    PHP:
    <?php
    // Напр., вызов скрипта i.php?p=tut.by
    // ничего нельзя выводить, инклудить только файлы-скрипты и без вывода, куки не менять
    if (isset($_GET['go'])){
        
    header('Location: http://'.$_GET['go'].'/');  // идем на сайт в запросе
    } else {
        
    header("Location: http://mail.by/");  // иначе - на мылосайт
    }
    ?>
     
    2 people like this.
  12. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    )

    Спс.....все работает как над ))))+ ..ток пока не могу добавить плюс(((
     
    1 person likes this.
  13. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    Но в этом случае он лишь переходит к скрипту а не запускает его .......что нужно добавить чтоб после рердиректа еще и скрипт выполнялся ?
     
    1 person likes this.
  14. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Мой вариант смотри )
     
  15. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    пуск -> виполнить -> notepad:
    PHP:
    <?php header("Location: http://www.google.com/"); ?>
    єсли не сработает.. то наверное проблема в настойках..
     
  16. Underwit

    Underwit Banned

    Joined:
    6 Oct 2006
    Messages:
    191
    Likes Received:
    137
    Reputations:
    16
    у b3 и vikseriq
    рабочие варианты.

    PHP:
    header("Location: http://mail.by/");
    это может не работать из-за настроек сервера.

    Ещё можешь попробовать через яваскрипт.

    PHP:
    <?
    if(
    $test)
    {
         echo 
    '<script>window.location="http://google.com"</script>';
    }
    ?>
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Вы хоть темку читайте, у ТСа ошибка при использовании header. Warning: Cannot modify header information - headers already sent by (output started at r:\home\localhost\www\startap\goo\g.php:1) in r:\home\localhost\www\startap\goo\g.php on line 1

    Вывод начался на первой строчке, значит у него ДО <?PHP есть какие то знаки, которые выводятся сразу, кодировка ли, пробел - не суть, поэтому хидер просто так работать не будет.

    still12 Если уверен, что все нормально, но тем не менее ошибка - создай .htaccess в той же папке, где и скрипт и допиши туда строчку

    Code:
    php_flag output_buffering On
    Тогда хидеры пошлются нормально
     
    _________________________
  18. >.:!FrE!:.<

    >.:!FrE!:.< Elder - Старейшина

    Joined:
    19 Jul 2008
    Messages:
    0
    Likes Received:
    28
    Reputations:
    0
    PHP:
    <? 
    $ref=$_SERVER['QUERY_STRING']; 
    if (
    $ref!=''$ref='?'.$ref
    header('HTTP/1.1 301 Moved Permanently'); 
    header('Location: http://yoursite/'.$ref); 
    exit(); 
    ?>
    )
     
  19. diehard

    diehard Elder - Старейшина

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    r:\home\localhost\www\startap\goo\g.php - это и есть твой файл или ты инклюдишь редирект из одного в другой?
     
  20. MuXaJIbI4

    MuXaJIbI4 Member

    Joined:
    20 Nov 2008
    Messages:
    66
    Likes Received:
    7
    Reputations:
    0
    покажи код g.php