PHP标头刷新警告

时间:2010-05-27 09:19:04

标签: php header refresh

我有这段代码:

<?php
session_start();
echo "".$_SESSION['eventnum']."";
$urlRefresh = "testremot.php";
header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
?>

但标题不起作用,当我尝试运行此代码时会出现此警告:

  

警告:无法修改标头信息 - 已在第5行的C:\ xampp \ htdocs \ remot \ testremot.php中发送的标头(在C:\ xampp \ htdocs \ remot \ testremot.php:3处开始输出)* *

你能帮帮我吗?

5 个答案:

答案 0 :(得分:2)

在发出标题之前,您无法回显任何内容。如果你必须,那么唯一的解决方案是进行输出缓冲。

答案 1 :(得分:2)

好的,让我们看一下line 3中的内容:

echo "".$_SESSION['eventnum']."";

显然,您正在此行中生成输出(echo),此行在您致电header之前出现。
将其移至header

下方
session_start();
$urlRefresh = "testremot.php";
header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
echo "".$_SESSION['eventnum']."";

但请注意(来自Wikipedia):

  

W3C的Web Content Accessibility Guidelines (7.4)不鼓励创建自动刷新页面,因为大多数Web浏览器不允许用户禁用或控制刷新率。

答案 2 :(得分:1)

<?php
  session_start();
  $urlRefresh = "testremot.php";
  header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
  echo "".$_SESSION['eventnum']."";
?>
在显示任何内容之前必须设置

标题,这里有很多问题......

答案 3 :(得分:1)

请勿使用Refresh标头。并且不要显示任何东西5秒钟。这是可用性故障。 创建一个页面vieweventnum.php并使用Location标头将用户带到那里

答案 4 :(得分:0)

basma,删除<?php之前的任何空格或php标记之前的任何字符串。如果在打开<?php

之前没有空格或其他字符,此代码应该可以正常工作