2

我正在使用 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”页面上调整缓存选项,但每个选项都会产生相同的结果……也就是说,它只在我刷新页面后列出会话变量。

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

4

1 回答 1

1

解决了!最后。

在我的外部页面上,我打电话给

session_start();

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

startCMSSession();

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

不要在带有 startCMSSession() 的页面上的任何地方使用 session_start()。

于 2012-04-16T15:28:37.373 回答