如果ID不在URL中,Joomla/PHP将注销


Joomla/PHP logging out if ID not in URL

所以我已经研究了这个问题,但在Joomla论坛上似乎没有解决方案。

自动退出

保持退出

我遇到的问题已经缩小到URL。如果在URL中设置了var &ID=,则可以,否则将注销。在这两种情况下,我都在进行$_SESSION转储,它确认$user->id设置为0。不知道它为什么要注销。

任何解决方案都是受欢迎的,这是一个已经避免了一段时间的问题。

利用joomla的能力设置具有访问级别的菜单项不是更好吗?只需将级别设置为"已注册"即可。否则,如果您正在寻找自定义编程解决方案,请进入检查用户是否登录的控制器,然后添加一行以验证ID是否在URL中。

一件事是,您可能看起来像是被注销了,但实际上并没有被注销。因此,如果你输入了一个只有登录用户才能看到的url,你仍然可以看到它。在您的会话转储中,还设置您被分配到的用户组。它们包括来宾吗?如果是这样的话,这可能是问题的根源;这是该平台最近修复的主题。

解决方案。我只能肯定地说,这是可能的解决方案,但它应该对关注这篇文章的人有所帮助。

Joomla 1.5.x中的遗留模板(1.0)和JUtility方法getToken()之间存在兼容性问题。

这显然是在登录表单中使用的。所以在文件中找到它并替换:

    <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />

带有:

    <input type="hidden" name="<?php echo JHTML::_( 'form.token' ); ?>" value="1" />

这不是我看到的问题,我的问题是登录,而是注册组件大量使用JUtility::getToken()Class::方法。我知道这是因为卸载组件可以解决问题。但是,由于我还没有在组件中测试任何解决方案,所以我不会绝对说这就是解决方案。

希望帖子能有所帮助
感谢回答的人。