2010-12-03 67 views
1

我已经用PHP编写了一个应用程序。它包括
1:登录表格
2:欢迎页面
3:注销表单被重定向到登录表单。

My register_global =在php.ini中打开。PHP标签之前的空间

我的应用程序在LAMP和WAMP上正常工作。但它没有在活动服务器上设置会话。

但是,在逐行检查后,在会话设置文件中,在启动之前有单个空间'<?PHP ...... ?>'。删除该空间后,我的应用程序在实时服务器上正常工作。

在没有设置会话的‘<?PHP ...... ?>'之前,空间背后的原因是什么?

+0

请注意,解决此问题的方法(在登录点之外的任何文件中)都是为了启用输出缓冲。请参阅:http://www.php.net/manual/en/function.ob-start.php – 2010-12-03 13:19:52

回答

5

的空间是输出,即发送到浏览器。为了打开一个会话,你需要发送一个所谓的HTTP头,在输出任何东西之前你需要做。这就是为什么它不起作用。您的错误消息可能是“头文件已发送”。

1

发送响应头之前,您不能发送任何内容;会话将在响应头中发送。由于您事先发送了空格,因此无法启动会话。

从关于session_start的文档中,“要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()”。这包括开始时的单个空间。

基本上,在任何脚本的第一件事情应该总是<?php