2014-09-10 28 views
0

我有這樣的代碼,如圖波紋管:頭位置的作品在一個文件中,而不是在其他

<?php 
session_start(); 
require_once 'classes/cookie.class.php'; 
if(!isset($_SESSION['logged']) && !Cookie::checkCookie($_COOKIE['smt_auth'])) 
{ 
    header('Location: login.php'); 
    exit; 
} 

>

它的工作就在本地主機,因爲它重定向總是login.php中?如果用戶沒有登錄,則都沒有cookie。但是當我嘗試將這些文件放入主機時,問題就出現了,它停止工作。

使用它的兩個文件是index.php和temario.php,當我嘗試引入index.php的url時,它將我重定向到login.php,但是在temario.php中,屏幕只是變爲空白,並且不會不重定向。

這兩個文件都有相同的PHP塊(沒有空白,因爲我複製了從index.php粘貼到temario.php的&),所以有人知道爲什麼這不能在主機上工作,但它的確如此本地主機與xampp?

它拋出的錯誤:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /homepages/3/d507876316/htdocs/new/usuario/temario.php:1) in /homepages/3/d507876316/htdocs/new/usuario/temario.php on line 4 

另外,如果我做的index.php文件副本,並重新命名它,它也可作爲預期。

在此先感謝。

+0

檢查一下http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php – 2014-09-10 11:55:20

+0

嘗試在標題的地方 echo'' – john 2014-09-10 11:56:30

+1

正如錯誤信息所示,在temario.php開頭有一些瀏覽器輸出,如果你看不到任何東西,只需刪除並重新打開「<?php」 – Steve 2014-09-10 11:58:18

回答

0

嘗試將<?php ob_start(); ?>放在代碼的開頭,<?php ob_flush(); ?>放在您正在編寫頭部重定向代碼的頁面的末尾。

1

您需要在發送到瀏覽器的任何正文內容之前session_start cookie集。因此,請檢查您的代碼塊之前是否有任何回聲,純html或甚至空白。同時檢查php標籤之前和之後的空白。你應該在php文件結尾省略php結束標籤。

相關問題