2012-06-25 4 views
0

Я новичок в программировании на PHP. Пожалуйста, несите меня ...с использованием функции заголовка для перенаправления

при использовании функции заголовка опция обновления не работает при использовании переменной из метода post (динамически). когда жестко закодирован номер его работы. Я пробовал разные варианты. Здесь вы можете увидеть весь мой код. Не удалось динамически обновить работу. Может кто-нибудь помочь?

<?php 
if($_POST['time']>0) { 
    $t = $_POST['time']; 
    $u =$_POST['url']; 
    echo "You will be redirected to the " .$u . " website in " .$t. "seconds"; 
    //header("refresh:5; url=http://www.google.com"); 

    //header("refresh:($_POST['time']);url=($_POST['url'])"); 
    header('refresh: ' .$t); 
    header('Location: '.$u); 
    exit;  
} 
?> 

ответ

1

Обновить заголовок не просто число, оно должно содержать URL-адрес. Формат:

Refresh: 5; url=http://something.local/ 

Тогда заголовок местоположения должен отсутствовать.

header("Refresh: $t; url=$u"); 

Смотрите также http://en.wikipedia.org/wiki/HTTP_refresh

+0

0) { $ t = $ _POST ['time']; $ u = $ _ POST ['url']; \t \t header ("Обновить: $ t; url = $ u"); \t \t echo "Вы будете перенаправлены на". $ U. «сайт в». $ t. «секунда»; \t выход; } ?> – user1479431

0

Это более надежно сделано с JavaScript перенаправления:

echo "<p>You will be redirected in ".$t." seconds.</p>"; 
echo "<p>Click <a href=\"".$u."\">here</a> to go immediately.</p>"; 
echo "<script type=\"text/javascript\">setTimeout(function() {location.href = ".json_encode($u).";},".$t."000);</script>"; 
+0

Thanks Kolink. Javascript перенаправление кажется довольно ясным! Но здесь я ограничен только для PHP. – user1479431

1

Вы должны вызвать заголовок() перед любым выходом, как эхо-заявления. Он просто не будет работать после того, как в браузер будет выведено что-либо.

+0

На этот раз это не вопрос. – mario

1

Вы не можете вызвать функцию PHP header после любого выхода уже выводится на экран. Если вы удалите этот оператор echo, он должен работать правильно.

+0

Спасибо mattedgod! – user1479431

0
if ($_POST['time'] && $_POST['url']) 
{ 
    $time = (integer)$_POST['time']; 
    $url = strip_tags($_POST['url']); 
    echo "You will be redirected to the " . $url . " website in " . $time . "seconds"; 
    header('Refresh:' . $time . ';url=' . $url); 
} 
Смежные вопросы