1

我有一个/application名为 CodeIgniter的文件夹外的文件夹myfolder

我的 CI 应用程序使用原生 PHP 会话,一切正常。CI 版本是最新的 3.0 开发版。

我需要访问 myfolder/myfile.php 中的一些会话数据。如果我执行 asession_start()然后print_r($_SESSION);我看不到 CI 的会话驱动程序设置的会话。我明白为什么它不显示它。

你知道我可以通过什么方法/黑客从我的文件夹中的 CI 会话中引用会话数据吗?例如,直接包含 Codeigniter/libraries/session/drivers/session_native.php 或任何其他文件?我只是会话数据中的一个数组。

4

4 回答 4

2

这是一个技巧,但确实有效。在登录重定向之前放置这个顽皮的小代码。现在您也可以使用ci_sessionphp 本机会话,玩得开心!

 <?php
 session_start();
 echo $_SESSION['ci_session'] = $this->session->userdata['ci_session'];
 ?>
于 2013-10-29T01:14:34.257 回答
1

当前的Session_native.php似乎没有改变任何内置会话库的偏好或干扰会话数据的保存方式,我认为以下应该有效:

  • 获取要加载的会话的会话 ID
  • 之前session_id($sessid)使用此会话 ID调用 session_start()
  • 称呼session_start()

只要控制会话库的各种 ini 设置session.save_path相同,并且可能(如果您的主机安装了此扩展程序)suhoshin 设置suhosin.session.cryptdocroot不会干扰,这应该可以工作。

于 2013-06-20T08:26:19.013 回答
0

Save the session data which you wants to refer from outside the folder into cookies, which may helps you.

So use cookies to refer data from outside the folder and make sure when you set cookies it should be in proper accessible path

于 2013-06-20T08:28:07.917 回答
0

你可以进入饼干

<?php 

print_r($_COOKIE['ci_session']);
于 2013-06-20T08:18:27.937 回答