我遇到一个奇怪的问题,一个新的modx网站 - 网站用户登录后没有得到会话。我确信他们正确认证,但modx似乎没有设置会话。我认为它与上下文访问有关。
我有3个上下文,网络,法语和&英语我有用户组和资源组,可以访问适当的上下文。
这是我的登录片段:
[[!Login?
&loginTpl=`LoginTpl`
&logoutTpl=`LogoutTpl`
&errTpl=`lgnErrTpl`
&loginResourceId=`91`
&logoutResourceId=`5`
&contexts=`English,French`
]]
用户未被授予对Web资源的访问权限,因为它将用于内部文档。
现在,一切似乎都表现正常,如果您在登录表单中输入了错误的凭据,则会出现登录错误。如果输入正确的凭据,则转发到正确的资源[91]但是用户没有会话[[!+ modx.user.id]]为匿名用户返回0。 如果我查看我的浏览器cookie,我所拥有的只是默认的php会话cookie而没有modx会话cookie。奇怪的是,cookie路径是/ docs /,它是web上下文的base_url。如果我将cookie路径更改为/在modx中,那么所有页面都是空白的!
造成这个问题的原因是什么?
答案 0 :(得分:0)
尝试在页面顶部添加此内容,
$sessid = session_id();
if(empty($sessid)) {
session_start();
$sessid = session_id();
}