标题位置在一个文件中工作,但在另一个文件中不起作用

时间:2014-09-10 11:51:50

标签: php header location

我的代码如下所示:

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

&GT;

它在localhost中正常工作,因为如果用户没有登录,它总是重定向到login.php,也没有cookie。但问题来自于我尝试将这些文件放入主机时,它就会停止工作。

使用它的两个文件是index.php和temario.php,当我尝试引入index.php的url时,它将我重定向到login.php但是,在temario.php中,屏幕只是空白而且没有'重定向。

两个文件都有相同的PHP块(我没有空格,因为我从index.php复制并粘贴到temario.php),所以有人知道为什么这不能在主机上工作,但它在localhost上有效与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并重命名它,它也可以按预期工作。

提前致谢。

2 个答案:

答案 0 :(得分:1)

在发送到浏览器的任何正文内容之前,您需要session_start一个cookie集。因此,在代码块之前检查是否有任何echo,plain html甚至空格。还要检查php标记之前和之后的空格。你应该在php文件的末尾省略php结束标记。

答案 1 :(得分:0)

在代码开头放置<?php ob_start(); ?>并在编写标题重定向代码的页面末尾放置<?php ob_flush(); ?>