无法修改标头信息 - PHP

时间:2011-10-07 08:29:16

标签: php

  

可能重复:
  PHP error: Cannot modify header information – headers already sent

我建立了一个网站,其中包含许多由编程支持的功能。随着网站越来越大,我发现在上传照片时,登录时会出现以下错误: -

  

警告:session_regenerate_id()[function.session-regenerate-id]:无法重新生成会话ID - 已在第63行的/var/www/web92/web/li/sli.php中发送的标头

     

警告:无法修改标题信息 - 已在/var/www/web92/web/li/sli.php上发送的(已从/var/www/web92/web/index826.php:62开始输出)的标题72

我发现在索引的最开头添加ob_start();可以解决问题,但是,我想知道,如果php代码的运行可能有长度限制。

3 个答案:

答案 0 :(得分:2)

请确保

在向浏览器输出任何内容之前调用

session_start()

参考http://php.net/manual/en/function.session-start.php

中的注释

答案 1 :(得分:1)

应该在页面的任何输出之前调用

session_start()。

不正确的

<?php
$calculation = 1 + 1;

echo $calculation;

session_start();
?>

正确

<?php
$calculation = 1 + 1;

session_start();

echo $calculation;
?>

请注意,您之前仍然可以运行代码,但在调用session_start()函数之前,请确保它不会向浏览器输出任何内容。

答案 2 :(得分:0)

消息

  

输出开始于/var/www/web92/web/index826.php:62

表示您已经写出内容,服务器已开始将响应流式传输到客户端。您无法修改标题,因为它们已被发送。

将生成标题的代码移动到写入第一个输出之前的某个位置。