有没有办法在Codeigniter的Application文件夹外的文件夹中获取会话数据?

时间:2013-06-20 08:13:35

标签: php codeigniter session

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

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

我需要访问myfolder / myfile.php中的一些会话数据。如果我执行session_start()然后print_r($_SESSION);,那么我看不到CI会话驱动程序设置的会话。我明白为什么它没有表现出来。

您是否知道我可以通过myfolder中的CI会话引用会话数据的任何方法/ hack。例如,直接包括Codeigniter / libraries / session / drivers / session_native.php或任何其他文件?我只是会话数据中的一个数组。

4 个答案:

答案 0 :(得分:2)

这是一个技巧,但做的工作。在登录重定向之前放置这个小顽皮的代码。现在你也可以使用ci_session和php本地会话,玩得开心!

 <?php
 session_start();
 echo $_SESSION['ci_session'] = $this->session->userdata['ci_session'];
 ?>

答案 1 :(得分:1)

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

  • 获取要加载的会话的会话ID
  • 使用此会话ID 致电session_id($sessid) session_start()
  • 致电session_start()

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

答案 2 :(得分:0)

你可以进入库克斯

<?php 

print_r($_COOKIE['ci_session']);

答案 3 :(得分:0)

将您想要从文件夹外部引用的会话数据保存到cookie中,这可能会对您有所帮助。

因此,使用cookie来引用文件夹外部的数据,并确保在设置cookie时它应该处于适当的可访问路径