稍长的问题。我最近将我的Dev站点移动到Web服务器进行进一步测试..它在移动之前完全正常工作。除了涉及标题的任何内容之外,大多数功能都有效。
我已经将ob_start / flush添加到我正在使用标题的所有地方..我检查过我在所有页面的开头调用了session_start(除非设置)。
很多things :/ But I get 1000 errors.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/sites/p/******/public_html/index.php:3) in /var/sites/p/*******/public_html/index.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/sites/p/party******/public_html/index.php:3) in /var/sites/p/*******/public_html/index.php on line 4
Debug active
我的index.php(我已经尝试过各种方式)=
<!DOCTYPE html>
<html lang="en">
<?php if (!isset($_SESSION)) {
session_start();
}
?>
<?php include ('lan-config.php')?>
<?php include (ABSPATH. 'lan-header.php') ?>
<?php
?>
<body>
我检查了会话是否开始,没有任何事情发生。更不用说我的登录脚本工作并设置所有$ _Session变量然后刷新它们消失。
有什么想法吗?我检查了我在header / config中发送的内容,我甚至没有使用“Header Location”doo dah
:)
答案 0 :(得分:0)
正如错误消息所示,在调用session_start
之前已经有输出。因为此函数修改标题信息,所以之前不能进行任何输出。请查看this awesome answer以了解原因。
所以,改变一下:
<!DOCTYPE html>
<html lang="en">
<?php if (!isset($_SESSION)) {
session_start();
}
?>
<?php include ('lan-config.php')?>
<?php include (ABSPATH. 'lan-header.php') ?>
<?php
?>
<body>
到此
<?php
if (!isset($_SESSION)) {
session_start();
}
?>
<!DOCTYPE html>
<html lang="en">
<?php include ('lan-config.php')?>
<?php include (ABSPATH. 'lan-header.php') ?>
<?php
?>
<body>
也许您需要在doctype HTML标记之前添加lan-config.php
和lan-header.php
,这取决于您在这些文件中执行的操作。