我的代码如下所示:
<?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并重命名它,它也可以按预期工作。
提前致谢。
答案 0 :(得分:1)
在发送到浏览器的任何正文内容之前,您需要session_start一个cookie集。因此,在代码块之前检查是否有任何echo,plain html甚至空格。还要检查php标记之前和之后的空格。你应该在php文件的末尾省略php结束标记。
答案 1 :(得分:0)
在代码开头放置<?php ob_start(); ?>
并在编写标题重定向代码的页面末尾放置<?php ob_flush(); ?>
。