会话不会立即在ModX Evo中发布

时间:2012-04-12 14:22:24

标签: php session-variables modx modx-evolution

我正在使用Modx Evo 1.0.4并尝试通过API检索值并将它们存储到modx会话变量中。这是用户登录。一旦发送登录凭据,下一页就会调用print_r($ _ SESSION);但是,会打印一个空数组。如果我刷新此页面,则会显示带有已加载会话变量的数组。

我在这里创建会话:

require_once '../manager/includes/config.inc.php';
startCMSSession();
$_SESSION['mx_iCode'] = "test";//$_SESSION['iCode'];
$_SESSION['mx_firstName']= $_SESSION['firstName'];
$_SESSION['mx_lastName']= $_SESSION['lastName'];
$_SESSION['mx_address'] = $_SESSION['address1'].' '.$_SESSION['address2'].'       .$_SESSION['address3'];
$_SESSION['mx_city'] = $_SESSION['city'];
$_SESSION['mx_state'] = $_SESSION['stProvince'];
$_SESSION['mx_zip'] = $_SESSION['postalCode'];

并使用以下内容将其打印到发布到的页面:

print_r($_SESSION);

我已尝试在modX中调整“print_r”页面上的缓存选项,但每个选项都会产生相同的结果......这只是在我刷新页面后列出了Session变量。

延迟是将外部会话存储到modX会话的结果吗?

1 个答案:

答案 0 :(得分:1)

解决了!最后。

在我的外部网页上,我致电

session_start();

处理其他一些数据。我添加了

startCMSSession();

在我需要在代码段中访问的值之前。摆脱session_start()完全解决了这个问题。

请勿使用startCMSSession()在页面的任何位置使用session_start()。