在另一个codeigniter应用程序中使用php应用程序会话
我正在使用一个现有的php应用程序,它有不同的接口,如管理员、代理和客户。 我使用codeignitor创建了一个新的代理接口。对于登录到代理门户,我使用旧应用程序中的现有代理登录页面,但在登录成功后,应该加载新的代理界面 在旧的应用程序中,使用了会话,并且代理id存储在会话变量中 当我尝试在新代码中使用此会话变量时,我收到一条错误消息…找不到变量。如何将第一个应用程序中的会话变量用于新接口 当我在第一个应用程序和一个新的codeignitor代码页中打印会话名称时,我可以看到两个会话都不同。我认为这就是问题所在,因为Codeignator管理它的会话在另一个codeigniter应用程序中使用php应用程序会话,php,codeigniter,session,Php,Codeigniter,Session,我正在使用一个现有的php应用程序,它有不同的接口,如管理员、代理和客户。 我使用codeignitor创建了一个新的代理接口。对于登录到代理门户,我使用旧应用程序中的现有代理登录页面,但在登录成功后,应该加载新的代理界面 在旧的应用程序中,使用了会话,并且代理id存储在会话变量中 当我尝试在新代码中使用此会话变量时,我收到一条错误消息…找不到变量。如何将第一个应用程序中的会话变量用于新接口 当我在第一个应用程序和一个新的codeignitor代码页中打印会话名称时,我可以看到两个会话都不同。我
我在谷歌上搜索并了解了会话设置保存路径和所有内容,我不确定我需要在这里做什么来解决这个问题。记住,两个项目/应用程序应该存在于同一台服务器上 默认情况下,codeignitor作为会话跟随COOKIE,因此您必须使用任何PHP本机会话库编写该库 然后以双向加密格式通过CRUL、POST或URL将会话id传递给该项目。不要忘记加密会话id 从项目1:
//to get the session id
$id = session_id();
//do some custom encryption
$id = 'ajhkdhfasjdhfajsdfhkjadf';
**Ref:**
http://www.php.net/manual/en/function.mcrypt-encrypt.php
项目2:
Ref:
在启动会话之前初始化会话id,如下所示
//do some custom encryption
$id = $this->input->get('id');
//decrypt the value
session_id($id);
session_start();
现在您可以访问会话值
当我在第一个应用程序和其中一个应用程序中打印会话名称时
新的codeignitor代码页,,我可以看到两个会话都不同。
我认为这就是问题所在,因为Codeignator管理它的会话
您对CI处理其自己的会话的看法是正确的,解决此问题的方法是使用本机会话库
另一种方法是让CI使用数据库会话,只需将会话ID传递给新应用程序,就可以从数据库中选择正确的数据 如果它在同一个域上,那么它不应该是problem@rajeevraj33你有有效的解决办法吗?