2010-05-27 50 views
2

我有這樣的代碼:PHP頭刷新警告

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

但頭不工作,當我嘗試運行此代碼此警告顯示:

警告:不能更改頭信息 - 頭已經發出(輸出開始在C:\ XAMPP \ htdocs中\ REMOT \ testremot.php:3)在C:\ XAMPP \ htdocs中\ REMOT \ testremot.php上線5 **

你能請幫幫我?

+2

重複前面沒有空格或其它字符 – deceze 2010-05-27 09:21:47

+0

有什麼之前< ?php標籤? – apis17 2010-05-27 09:38:48

回答

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瀏覽器不允許用戶禁用或控制刷新率。你顯示任何東西之前都

+0

謝謝我做你說的和它的工作 – basma 2010-05-27 09:49:08

2

發出標題之前,您無法迴應任何內容。如果你必須,那麼唯一的解決辦法是做輸出緩衝。

+0

謝謝..它的工作 – basma 2010-05-27 09:43:41

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

頭必須設置,也有很多像這樣的問題,周圍...

+0

謝謝你的作品 我知道,我沒有打印任何befor標題,但我認爲這隻嚴格的HTML代碼,而不是PHP回聲:) – basma 2010-05-27 09:53:14

1

不要使用Refresh頭。並且不要在5秒內顯示任何內容。這是可用性故障。 製作一個頁面vieweventnum.php並使用Location標頭將用戶帶到那裏

+0

謝謝:)) – basma 2010-05-27 09:51:04

0

basma,刪除<?php之前的任何空格或任何php標籤之前的字符串。該代碼應能正常工作,如果有一個gazilion其他問題http://stackoverflow.com/search?q=php+headers+already+sent開放<?php

+0

謝謝,你說得對,但這不是問題 – basma 2010-05-27 09:50:37

+0

代碼在我的服務器上成功運行,如果在php之前什麼也沒有。也許有一些她錯過了在第3行粘貼。我的意思是實際的代碼。 – apis17 2010-05-27 10:05:17