当我使用时:
session_name( 'fObj' );
session_start();
$_SESSION['foo'] = 'bar';
随后加载页面并运行:
session_start();
print_r( $_SESSION );
不返回会话数据。
如果我删除 session_name();效果很好。
有谁知道如何使用具有不同会话名称的会话?
UPDATE:
如果我运行上面的代码,作为两个页面加载,然后更改为:
session_name( 'fObj' );
session_start();
print_r( $_SESSION );
我可以访问数据。但是,如果它仅在我首先加载不带该行的页面时才有效:
session_name( 'fObj' );
John Robertson 是正确的,他提到的语句直接来自 PHP 手册(http://php.net/manual/en/function.session-name.php http://php.net/manual/en/function.session-name.php).
默认情况下,您的会话名称来自 php.ini 变量“session.name”,通常设置为“PHPSESSID”。在每次启动请求时(如前所述),会话将被重命名为 PHPSESSID,除非您在 session_start() 之前调用 session_name( 'fObj')
在每一页上,所以第 1 页:
<?php
session_name( 'fObj' );
session_start();
$_SESSION['foo'] = 'bar';
page 2:
<?php
session_name( 'fObj' );
session_start();
print_r($_SESSION);
随后,您可以转到 php.ini 设置并将 session.name 变量从 PHPSESSID 更改为 fObj,所有创建的会话都将具有 fObj 会话名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)