MODx - 如果未登录,则重定向到其他页面

时间:2013-08-27 06:55:17

标签: php web modx

我正在建立一个网站(通过MODx),我不希望"未登录"用户可以看到主页,而是被重定向到正在建设的""页。

在我的代码片段中,这是我到目前为止所拥有的:

<?php
if (! $modx->user->hasSessionContext($modx->context->get('key')) ) {
   $modx->sendRedirect('https://google.com');
} else {
    return '';
}

可悲的是,无论用户是否登录,这似乎都没有做任何事情。(它确实是第二行的问题,实际重定向在我测试时工作正常) 我无法弄清楚出了什么问题,非常感谢任何帮助!

页面中的摘要 [[!notloggedin]]

2 个答案:

答案 0 :(得分:3)

这些都在Bob's guides之外,但基本上你想要做的是检查用户是否有ID或用户名,如果没有,他们没有登录。

您可能想要进行一些挖掘,看看是否可以在插件中实现重定向,而不是可能是onRequest事件的片段 - 因此在发现用户需要之前,您不会呈现页面/资源重定向。

There are various methods. One easy method is to use this code:
if ($modx->user->get('username') == '(anonymous)') {
    /* user is not logged in */
}    
Here is the official method for seeing if the user is logged in to the current context:

if ($modx->user->hasSessionContext($modx->context->get('key'))) {
    /* user is logged in */
}    
If you know the name of the current context (e.g., web), you can use this method. The name of the context is required:
if $modx->user->isAuthenticated('web') {
    /* user is logged in to web context */
} 

答案 1 :(得分:1)

如果您的网站尚未准备好公开发布,MODX已经允许这样做了。

请参阅以下系统设置:

site_status
site_unavailable_message
site_unavailable_page

或者,只需将所有资源设置为“未发布”,但自定义错误页面除外。登录用户仍然可以查看所有资源。