相关的代码片段如下。根据php.net我必须确保没有输出,甚至没有任何空格。没有。 php标签是文档中的第一个标签,前面没有空格。我做错了什么?
<?php
// main.php
// 6:48 PM 8/6/2010
include('config.php');
// Does myid cookie exist?
if ( !isset( $_COOKIE['myid'] ) )
{
// Generate myid
$myid = substr(md5(date( 'Ymdhis' ) . str_replace( '.', '', $_SERVER['REMOTE_ADDR'] ) ), 0, 10);
// set the cookie
setcookie( 'myid', $myid, time() + 31536000 );
答案 0 :(得分:0)
在调用setcookie
之前,需要根本没有输出,即使是来自其他脚本也是如此。
例如,如果config.php
在开始<?php
标记之前(或在结束?>
之后)有空格,则会导致问题。
追捕调用header
的位置或存在PHP标记(甚至空格)之外的某些文本。毫无疑问,这就是正在发生的事情。
答案 1 :(得分:0)
某些文字编辑器未显示所有符号。请尝试打开你的main.php和config.php不同的编辑器,并检查两个文件中的&lt;?php之前的内容。我无法讲述Windows,但在Linux上,您可以使用vim
或vi
。此外,完整的错误消息告诉您错误开始的位置。
答案 2 :(得分:0)
您无法在此处阅读或至少粘贴此错误消息。它有详细的解释,你做错了什么 很可能它会说输出从config.php:XXX开始。很清楚。
如果它表示输出是从main.php:0开始的 - 这很可能是BOM个字符,你必须使用你的编辑器保存对话框或其他编辑器重新保存你的文件。
始终阅读整个错误消息。它不仅说明出了什么问题,而且经常解释,当然发生了什么。