php中的会话问题

php中的会话问题,php,session,Php,Session,代码: 如何解决这个问题?在做任何事情之前,您需要启动会话 在做任何事情之前,您需要启动会话 您可以通过启用来解决此问题,这样头文件将始终在数据之前发送。您可以通过启用来解决此问题,这样头文件将始终在数据之前发送。查看您的代码,在会话开始之前显然没有任何内容被发送,但是,您有各种函数调用。他们中有人输出内容吗 那是完整的档案吗?即使在查看代码之前返回一行,在会话开始之前也没有明显的内容被发送,但是,您有各种各样的函数调用。他们中有人输出内容吗 那是完整的档案吗?即使是在使用标题之前开始会话之前返

代码:


如何解决这个问题?

在做任何事情之前,您需要启动会话

在做任何事情之前,您需要启动会话

您可以通过启用来解决此问题,这样头文件将始终在数据之前发送。

您可以通过启用来解决此问题,这样头文件将始终在数据之前发送。

查看您的代码,在会话开始之前显然没有任何内容被发送,但是,您有各种函数调用。他们中有人输出内容吗


那是完整的档案吗?即使在查看代码之前返回一行,在会话开始之前也没有明显的内容被发送,但是,您有各种各样的函数调用。他们中有人输出内容吗


那是完整的档案吗?即使是在
使用标题之前开始会话之前返回一行

在使用标题之前开始会话

只需放置
会话_Start()放在顶部,因此当您在代码中的任何位置调用
startSession
函数时,它将只设置分配给$\u SESSION的任何值。

只需将
SESSION\u start()放在上面即可在include之前位于顶部,因此当您在代码中的任何位置调用
startSession
函数时,它只会设置分配给$\u会话的任何值。

在您的文件dphelper.php中输出了一些内容,如通知所述:

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 20

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 53

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 53

由于头在任何类型的输出之前发送,因此会话_start()来得太迟。正如人们已经说过的,一个建议是将session_start()放在文件的顶部,另一个建议(可以与第一个一起实现)是查看dbhelper.php并确保它不输出任何内容(从文件名来看,无论如何,它不应该输出任何内容)。而且,当我说“output”时,它不一定是echo/print/etc,也可能是文件末尾结束php标记后的空白。

在您的文件dphelper.php中输出了一些内容,如通知所述:

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 20

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 53

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 53

由于头在任何类型的输出之前发送,因此会话_start()来得太迟。正如人们已经说过的,一个建议是将session_start()放在文件的顶部,另一个建议(可以与第一个一起实现)是查看dbhelper.php并确保它不输出任何内容(从文件名来看,无论如何,它不应该输出任何内容)。而且,当我说“output”时,它不一定是echo/print/etc,也可能是文件末尾结束php标记后的空白。

session_start()应该是php文件的第一行。在发送任何HeaderSSession之前,php文件的第一行应该是_start()。在发送任何heards之前,您需要先调用
session\u start()
,然后再将任何输出发送到客户端。所以在调用会话开始之前不能输出html标记!为了澄清一点,您需要在将任何输出发送到客户端之前调用
会话\u start()
。所以在调用会话开始之前不能输出html标记!
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\ecl.ru\www\classes\dbhelper.php:24) in Z:\home\ecl.ru\www\authorize.php on line 20