Перенаправление
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Перенаправление Expand / Collapse
Автор
Сообщение
30.08.2007 20:22
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
Подскажите плз, уже все облазил, но так и не понял: можно ли перенаправить пользователя на указанную страницу не используя заголовки?

Есть кнопка, жмем на нее, переходим на другую страницу где написано "бла бла бла", и через пару секунд нужно перейти на другую страницу.

Сообщ. #915668
31.08.2007 4:59
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 17.10.2007 10:28
Сообщ.: 9, Visits: 19
у меня для таких целей есть простецкий класс:

class CRedirector {
var $script='';
var $content='';

function __construct($title,$url,$time=-1) {
$this->script = <<
EOD;

$this->content='
Перейти на '.$title.'';

if ($time>=0)
{
$this->content.=''.$time.''.'';
}
$this->content.='
';
}

function Show() {
return $this->script.$this->content;
}
}

Используешь так:


$rdr = new CRedirector("главная страница","/main", REDIRECT_TIME);
$this->content .= $rdr->Show();
Сообщ. #915670
31.08.2007 5:03
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 17.10.2007 10:28
Сообщ.: 9, Visits: 19
как-то плохенько мое сообщение добавилось (((
хз как тут добавлять примеры кода... тэг [соdе] использовал.
Сообщ. #915671
31.08.2007 5:05
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 17.10.2007 10:28
Сообщ.: 9, Visits: 19
а по твоему вопросу: фишка в том, что кроме как php-функцией header() и javascript document.location.href=url; перейти никак не получится. Первую предпочтительней использовать, но не всегда возможно (заголовок должен быть отправлен до любого вывода)
Сообщ. #915672
31.08.2007 6:04
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 31.08.2007 6:00
Сообщ.: 1, Visits: 2
header("Location:test.php");

gygy
Сообщ. #915673
31.08.2007 11:09
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
В том и проблема, что заголовок уже отправлен. У меня весь портал на классах, так что попробую сейчас твой вариант...

Кстати, только что столкнулся с проблемой: сделал поиск, но при тестировании нашел дырку не большую - если в тексте который пытаемся найти есть символ "]" (или другой *+?....), то preg_match ругается. Пытался убрать его через preg_replace, но тогда вообще поиск не идет дальше этого preg_replace. Никто не сталкивался?

Добавлено: с помощью str_replace убираю все символы, есть другой способ, или только так?

Сообщ. #915677
31.08.2007 11:15
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
А можно поподробнее что это?

$this->script = <<


EOD;

Сообщ. #915678
31.08.2007 23:14
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.08.2008 19:49
Сообщ.: 1 577, Visits: 17 092
Есть еще способ. Можно поместить тэг META в раздел HEAD

Здесь 5 означает ждать 5 секунд, чтобы пользователь мог посмотреть на страницу, с которой происходит перенаправление. Если указать 0, то ожидания не будет.
Сообщ. #915688