我是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;
}
?>
答案 0 :(得分:1)
你必须在像echo语句之类的输出之前调用header()。在将任何内容输出到浏览器后,它将无法正常工作。
答案 1 :(得分:1)
Refresh标头不仅仅是一个数字,它也应该包含url。格式为:
Refresh: 5; url=http://something.local/
那时应该没有Location标头。
header("Refresh: $t; url=$u");
答案 2 :(得分:1)
在任何输出已经打印到屏幕后,您无法调用php header
函数。如果删除echo
语句,它应该可以正常工作。
答案 3 :(得分: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>";
答案 4 :(得分: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);
}