2014-09-10 40 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结束标签。

相关问题