PHP中使用session.auto_start有什么缺点吗?

10

我通常会在我的PHP站点的每个页面顶部(或在一个头文件中,该文件反过来包含在每个页面中)添加session_start()。最近我发现可以通过在php.ini中使用以下设置来自动启动会话:

session.auto_start = 1

如果使用此设置,可能会有哪些潜在的缺点(如果有的话)?


2个回答

7
如果您打开 session.auto_start ,那么将对象放入会话中的唯一方法是使用 auto_prepend_file 加载其类定义,否则您将不得不 serialize()您的对象并在之后unserialize()它。 请参阅此处了解更多信息。

所以你的意思是,如果我使用session.auto_start,那么我就无法自由地使用$_SESSION变量了? - David Jones
  1. 如果您使用 session.auto_start,则无法使用命名会话,但由于您可以访问 php.ini,我认为这不会是什么问题。
  2. 如果客户端不支持 cookies,则 URL 可能看起来很混乱。
- Lion
也检查一下这个问题:https://dev59.com/Wl3Va4cB1Zd3GeqPB5iw。 - Lion

0
也许这能帮到你。如果在页面加载时没有创建会话,它将创建一个会话。
if(!isset($_SESSION)): session_start();endif;

如果您想启动特定的会话,则可以使用以下代码:
if(!isset($_SESSION['your_session'])){             
            $data = array('default data');
            $_SESSION['your_session']=$data;
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接