加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在PHP中使用session_name() – 无法访问数据

发布时间:2020-12-13 17:47:41 所属栏目:PHP教程 来源:网络整理
导读:我用的时候: session_name( 'fObj' );session_start();$_SESSION['foo'] = 'bar'; 随后加载页面并运行: session_start();print_r( $_SESSION ); 不返回会话数据. 如果我删除session_name();它工作正常. 有谁知道如何使用具有不同会话名称的会话? 更新:
我用的时候:

session_name( 'fObj' );
session_start();
$_SESSION['foo'] = 'bar';

随后加载页面并运行:

session_start();
print_r( $_SESSION );

不返回会话数据.

如果我删除session_name();它工作正常.

有谁知道如何使用具有不同会话名称的会话?

更新:

如果我运行上面的代码,作为两个页面加载,然后更改为:

session_name( 'fObj' );
session_start();
print_r( $_SESSION );

我可以访问数据.但是,如果它只在我第一次加载没有该行的页面时才有效:

session_name( 'fObj' );

解决方法

John Robertson是正确的,他提到的陈述直接来自PHP手册( http://php.net/manual/en/function.session-name.php).

默认情况下,您的会话名称来自php.ini变量’session.name’,通常设置为’PHPSESSID’.在每个启动请求时(如前所述),会话将重命名为PHPSESSID,除非您在session_start()之前调用session_name(‘fObj’)
在每个页面上,所以page1:

<?php
  session_name( 'fObj' );
  session_start();

  $_SESSION['foo'] = 'bar';

第2页:

<?php
  session_name( 'fObj' );
  session_start();

  print_r($_SESSION);

随后,您可以转到php.ini设置并将session.name变量从PHPSESSID更改为fObj,并且您创建的所有会话的会话名称都将为fObj.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读