Правильное перенаправление

Статус
В этой теме нельзя размещать новые ответы.

1nSane

Создатель
Регистрация
2 Сен 2008
Сообщения
34
Реакции
0
День Добрый!
Возникла проблема с перенаправлением...

Имеем: Источник => САЙТ => Получатель Пользователь приходит на САЙТ с какого-то сайта, из почтовой программы, ICQ, просто набивает ссылку в адресе браузера... далее из строки GET берутся параметры и его автоматически должно перебрасывать на Сайт-Получатель, но главное условие - передача REFERER.

Вопрос: Какой способ для этого подойдет?
Пробовал - реферера нет, сейчас стоит <a location.href>, он передает реферера в FireFox, Opera, Safari, Chrome, но не работает в семействе IE. Поэтому пришлось ставить паузу в 10 сек и писать, что если вы не были направлены автоматом - жми СЮДА. Естественно, юзеры с IE могут ждать до посинения... КАК СДЕЛАТЬ ГРАМОТНЫЙ АВТОПЕРЕХОД В IE?

P.S. Почему-то при этом чтение рефера из $_SERVER не пашет, надо смотреть через getenv() Спасибо за ответы.
 
Вариантов несколько.
Пхп, мета или яваскрипт.
Кстати не совсем понятно что у тебя с ИЕ там происходит, дай код самого перенаправления...
 
Сейчас у меня так:
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if(!stristr($user_agent, 'MSIE'))
{
if($_GET['auto'] == 'no') echo "<body>";
else echo "<body onload=\"setTimeout(location.replace('".$get['link']."'),'".$_GET['auto']."000');\">";
}
META REFRESH - не передает реферера
location.replace(href) - передает везде, кроме ИЕ
PHP - о чем именно вы?

И почему-то не работает таймаут. Через ГЕТ ставим значение 10 сек, оно переводится в 10000 мсек, но при заходе по ссылке переходит моментально, хоть 1000 сек ставь паузу...
 
Такой способ передает refer(у меня работает в IE:(
document.location.href='http://www.site.com/'
 
MONtrade
Попробую

t0os
Такой способ мне не подойдет, наверное... У меня страница стоится из
include(header.php);
include(main.php);
include(footer.php);
Значение для автоперехода появляется в main.php, а значит заголовок давно послан... Или я ошибаюсь?
 
1nSane, если вывода в браузер (HTML, echo, print) до редиректа не было, то все нормально.
 
t0os
Естественно был.
В Хидере - шапка, меню верхнее...
В Мейне - главное окно, в котором инклудятся разные страницы в зависимости от ГЕТ параметров (вот при определенном вызове и должен быть редирект)
В Футере - правая менюшка и низ...

Поэтому хидер уже послан, 100%.

echo "<body onload=\"setTimeout(location.replace('".$get['link']."'),'".$_GET['auto']."000');\">";
Почему тут таймаут не пашет, через гет подаем 10, получаем паузу в 10000 мс, но ее реально нет :(

Хотя я понимаю, что делаю через Ж, посылая браузерам второй раз <body>... есть более элегантное решение?
 
А setTimeout параметр с таймаутом - тип string? Или int?

Так пашет?
echo "<body onload=\"setTimeout(location.replace('".$get['link']."'),parseInt('".$_GET['auto']."000'));\">";
 
t0os
Нет, не помогло, также моментально переходит, как и раньше...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху