【问题标题】:Issuse with session_start()session_start() 的问题
【发布时间】:2011-11-02 09:25:30
【问题描述】:

我是高级 php 新手。请你解释一下这个函数是做什么的?

ini_set('session.use_trans_sid', 0);

我有一个名为 index.php 的特定文件,如果我在其中启动会话,我会在此函数上收到以下错误。

警告:ini_set() [function.ini-set]:会话处于活动状态。此时您无法在第 35 行的 [...]/main.inc.php 中更改会话模块的 ini 设置

我已经安装了一个模块,并且该模块正在删除所有主页会话,这就是为什么我对其设置条件 - 检查session_start() 以及会话的特定条件。

【问题讨论】:

    标签: php


    【解决方案1】:

    ini_set('session.use_trans_sid', 0); 是禁用透明 sid 支持,但默认为 0。

    你应该把它放在session_start()之前。

    【讨论】:

    • 什么是透明 sid 支持?
    • PHP 可能会自动将会话 ID 作为 URL 的一部分嵌入网页中。自动嵌入称为“透明 SID 支持”。
    【解决方案2】:

    错误信息不是一目了然吗?
    会话启动后,您将无法更改会话设置。 在调用会话开始之前使用此设置,而不是之后。

    【讨论】:

    • 什么是透明 sid 支持?正如其中一位回复者所回答的那样。
    【解决方案3】:

    在开始一个新的会话之前总是检查一个会话是否已经存在,像这样:

    if(!session_id()) { session_start(); }
    

    如果没有设置 session_id,它将开始一个新的会话,否则什么都不做。 至于 use_trans_sid,xdazz 几乎涵盖了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2020-02-17
      • 2010-12-27
      • 2016-05-07
      • 1970-01-01
      • 2014-02-06
      相关资源
      最近更新 更多