PDA

Просмотр полной версии : И за чего не работает редирект


still12
04.12.2008, 21:41
Собственно не работает .....вылезает
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
header("Location: http://www.example.com/");
?>

-Hormold-
04.12.2008, 21:43
Перенеси выше всего, т.е. на первую строчку а не на 3.

still12
04.12.2008, 21:50
Перенеси выше всего, т.е. на первую строчку а не на 3.

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

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 header("Location: http://yandex.ru/"); ?>

CrazyStudentS_Mi}{
04.12.2008, 21:57
так сделай

<?
$URL="http://videoray.ws/tds/?rid=8888888";
header ("Location: $URL");
?>



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


у тебя в хедере кавычки верно написаны?

Gifts
04.12.2008, 22:00
still12 До <?PHP у тебя есть пробелы или табуляция - удали и пребудет с тобой форс

Pashkela
04.12.2008, 22:11
Если выше кода php есть код форма с перенаправлением или javascript с перенаправлением - будет такая ошибка

still12
04.12.2008, 22:15
....Мне нужно было чуть чуть другое .... Тоесть при выполнении условия выполняется редирект на скрипт расположенный на другом хосте и оттуда уже отправляется мне на мыло письмо...... Но как я понял редирект из условия не сделаешь ...какие у кого есть соображения ?Разместить все на том хосте где отправляются письма не катит ...там банер ....

mr.The
04.12.2008, 22:18
Какой текстовый редактор? Если ты сохраняеш в UTF, то многе редакторы пишут в начало файла 3 символа обозначающие кодировку(бесполезная вещ =\)
Отключи это. У меня в phpDesigner'ре это в опциях сохранинея файла убрать галку с "Save with BOM"

still12
04.12.2008, 22:21
Каким образом можно сделать редирект из условия ?

Gifts
04.12.2008, 22:26
still12
die('<meta http-equiv="Refresh" content="0; URL=http://куда редирект">');

vikseriq
04.12.2008, 22:36
Незнаю-незнаю. Использую Notepad++ , кодировка ANSIшная. Это пашет:
<?php
// Напр., вызов скрипта i.php?p=tut.by
// ничего нельзя выводить, инклудить только файлы-скрипты и без вывода, куки не менять
if (isset($_GET['go'])){
header('Location: http://'.$_GET['go'].'/'); // идем на сайт в запросе
} else {
header("Location: http://mail.by/"); // иначе - на мылосайт
}
?>

still12
04.12.2008, 22:36
still12
die('<meta http-equiv="Refresh" content="0; URL=http://куда редирект">');
Спс.....все работает как над ))))+ ..ток пока не могу добавить плюс(((

still12
04.12.2008, 23:06
Но в этом случае он лишь переходит к скрипту а не запускает его .......что нужно добавить чтоб после рердиректа еще и скрипт выполнялся ?

vikseriq
05.12.2008, 00:23
Мой вариант смотри )

eLWAux
05.12.2008, 01:40
пуск -> виполнить -> notepad:
<?php header("Location: http://www.google.com/"); ?>

єсли не сработает.. то наверное проблема в настойках..

Underwit
05.12.2008, 01:44
у b3 и vikseriq
рабочие варианты.

header("Location: http://mail.by/");

это может не работать из-за настроек сервера.

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

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

Gifts
05.12.2008, 14:43
Вы хоть темку читайте, у ТСа ошибка при использовании 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 в той же папке, где и скрипт и допиши туда строчку

php_flag output_buffering On

Тогда хидеры пошлются нормально

>.:!FrE!:.<
05.12.2008, 15:04
<?
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://yoursite/'.$ref);
exit();
?>

)

diehard
05.12.2008, 15:07
r:\home\localhost\www\startap\goo\g.php - это и есть твой файл или ты инклюдишь редирект из одного в другой?

MuXaJIbI4
05.12.2008, 15:09
покажи код g.php

eLWAux
05.12.2008, 15:18
єсли так:

index.php:
<?
print 'test';
include('d.php');
?>

g.php:
<? Header('Location: http://www.google.com'); ?>

работать не будет..
потому что ти сперва виводиш текст , а потом уже ставиш свой хедер
надо чтоб до header(..) не било вивода текста..

попробуй..

Gifts
05.12.2008, 16:04
Мда, зачем включать мозг и учить английский. Люди читающие ошибку наверно заметят, что вывод начинается в том же файле, что и пытается изменить заголовок. А другие внимательные читатели отметят, что при включении буферизации МОЖНО использовать echo до header в скрипте

FeoЩту
05.12.2008, 22:28
Мда, зачем включать мозг и учить английский. Люди читающие ошибку наверно заметят, что вывод начинается в том же файле, что и пытается изменить заголовок. А другие внимательные читатели отметят, что при включении буферизации МОЖНО использовать echo до header в скрипте
не нужна ему тут буферизация, а нужно понимание принципа работы заголовков.

Sharky
06.12.2008, 00:25
развели болтовни на 3 страницы...в по сути на всех трёх страницах написано одно и то же