Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter和Joomla-会话数据丢失_Php_Codeigniter_Session_Joomla_Browser - Fatal编程技术网

Php CodeIgniter和Joomla-会话数据丢失

Php CodeIgniter和Joomla-会话数据丢失,php,codeigniter,session,joomla,browser,Php,Codeigniter,Session,Joomla,Browser,我在这里面临一个非常奇怪的问题 我有两个网站:**A**和**B** **A** is the landing page (a micro website). **A** is running Joomla. **B** - payment pages. Coded with CodeIgniter. Uses session library and stores session data in a database. ================= 场景: 用户访问登录页(网站a),选

我在这里面临一个非常奇怪的问题

我有两个网站:
**A**和**B**

**A** is the landing page (a micro website). **A** is running Joomla.

**B** - payment pages. Coded with CodeIgniter. Uses session library and stores session data in a database.
=================

场景: 用户访问登录页(网站a),选择服务包并单击购买。然后他被带到付款页面(网站B),开始填写申请表。 完成后,他将被带到支付网关(由SecureTrading提供)并进行支付。成功付款后,用户将被带回网站B,在那里他必须完成应用程序的最后一部分

问题: 成功付款后,用户被重定向回网站B,但由于某些原因,所有会话数据都丢失

这是什么时候发生的: 只有当用户来自登录页(a)时,会话数据才会丢失。 如果我一开始没有访问登录页就开始填写申请表,一切正常

为什么会这样?
如何修复此问题?

请确保在
应用程序/config.php
文件中将以下设置设置为此值:

$config['cookie_domain'] = ".mysite.com";

注意前面的
,它表示cookie域是站点范围的。这将确保可以从所有子域访问cookie。下面是有关cookie域如何工作的更多信息。您应该始终设置此配置选项,因为它默认为空,因此将使用默认的cookie设置,而在大多数设置中,开发人员并不需要此设置。

清除会话表并执行您概述的步骤。当您到达会话数据丢失的点时,请检查会话表中是否有这些数据。1) 该表为空,2)该表有一个条目,但会话数据为空/无效,3)现在有两个条目。报告结果。现在有两个条目-一个条目中有正确的数据(以及主会话id),另一个条目在付款后添加到数据库中,除了新会话id之外,其中没有任何数据。显然,我的会话由于某种原因被重置。。。这仅在我从外部网站访问付款页面时发生。Joomla与此无关。您是否可以在确定会话是否存在的地方发布代码,等等,如果检查失败,则创建会话。那很可能是你的罪魁祸首。系统无法正确确定会话是否已存在,因此正在创建一个新会话,从而覆盖用户的会话cookie,从而不再将有效会话发送到服务器以检索第一个/实际会话。您可能在多个地方有这样的问题代码,所以请想想您执行会话检查的所有地方。没有这样的检查。我只是自动加载会话库。然后确保域匹配。如果您从mysite.com开始,到www.mysite.com结束,这将是一个不同的会话,因为cookies将为不同的域设置。