我的网站出现此错误:
Warning: session_start() [function.session-start]: Cannot send session cache limiter -
headers already sent (output started at /home/rentedco/public_html/try6.php:2) in
/home/rentedco/public_html/try6.php on line 2
我创建了一个简单的php文件,其中只包含其他页面的开头:
<!DOCTYPE html>
<?php session_start();
echo 'fsdf';
?>
并且我发现如果我删除DOCTYPE我再也不会遇到这个问题,我的问题是我不想通过删除此标题来破坏别的东西。 我可以删除吗?我可以在session_start之后调用它吗?
答案 0 :(得分:2)
是的,将doctype放在那里将数据推送到PHP输出缓冲区,但session_start()需要将cookie数据写入标头。 doctype是HTML页面的一部分,而不是标题,因此在session_start()之后放入它应该是安全的。
答案 1 :(得分:0)
session_start()应始终在开头写入,否则与 header()功能无关。
答案 2 :(得分:0)
必须先调用会话启动,然后才能将任何输出发送到浏览器,将代码更改为
<?php session_start(); ?><!DOCTYPE html>
<?php
echo "fsdf";
答案 3 :(得分:0)
试试这个想法。您可以根据需要多次启动和停止php解释器,但session_start()必须在您开始向浏览器发送任何html之前发生。
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
....
....
</head>
<body>
<?php
echo 'fsdf';
?>
</body>
</html>