使用会话codeigniter时出错

时间:2015-08-09 00:08:38

标签: php codeigniter

发布我的网站时遇到问题。我有一个使用codeigniter会话的认证系统。 当它在localhost上运行时,它是完美的。但是当我在服务器(托管godaddy)中发布时,它会显示此消息 严重性:警告

  

消息:session_start():无法发送会话cookie - 标头   发送者(输出开始于   /home/cristiandelacruz/public_html/crmappsdc/application/config/config.php:1)

文件名:controllers / Login.php

5 个答案:

答案 0 :(得分:0)

这意味着您在重定向时在浏览器上输出了一些内容。

你可以做以下事情:

1)检查哪个代码正在打印HTML。并删除它。 例如。空格,回声或印刷语句。

2)如果这不起作用,添加ob_start();在文件开头。它将输出存储在缓冲区中并进行重定向。

答案 1 :(得分:0)

检查消息提到的文件中的php打开标记之前是否有空格。再次尝试保存该文件而不使用BOM(将内容复制到新文件中,并在文件启动前仔细检查没有空格或任何字符,并将其保存为UTF-8编码而不使用BOM)。也许有帮助。

答案 2 :(得分:0)

这种情况正在发生,因为您的本地环境没有启用完整的错误报告,而您的托管服务提供了此功能。问题很可能永远存在。这个问题的原因很可能是你正在调用Codeigniter的会话类$this->session-> ...,但是在加载应用程序的某个地方,PHP已经遇到过:session_start()。要修复它,您需要调试程序并找出会话初始化的位置,因为它的当前设置方式正在初始化两次。

答案 3 :(得分:0)

<强>原因:

如果您的PHP脚本在发送标头之前正在打印到浏览器,则会导致此错误。一个常见的例子是在开始会话或设置cookie之前打印html标签。错误告诉行需要更改(在这种情况下,它在/config.php上)。

解决:

要解决此错误,请在发送标题之前删除正在打印到浏览器的PHP代码中的行。

此错误的另一个常见原因是文件开头或结尾的空格。修复是从文件中删除该空格。请仔细阅读错误消息。它说输出始于...... 。后跟文件名和行号。这是您需要编辑的文件(和行)。忽略第二个文件名 - 这只是包含具有空格的文件的文件。第一个文件是您必须编辑的文件,而不是第二个文件

来自 WHAT DO I DO WHEN I RECEIVE A PHP HEADER ERROR MESSAGE? GoDaddy Forum

的来源

Codeigniter Seesion class

答案 4 :(得分:0)

我尝试了所有解决方案。最后,我改变了PHP.ini(GoDaddy Server)中的output_buffering

output_buffering = on

在PHP 5.4版本中,默认情况下output_buffering没有值 我更新了PHP版本5.4到5.6和5.6版本,默认值为4096 现在它工作正常