我正在建立一个网站(通过MODx),我不希望"未登录"用户可以看到主页,而是被重定向到正在建设的""页。
在我的代码片段中,这是我到目前为止所拥有的:
<?php
if (! $modx->user->hasSessionContext($modx->context->get('key')) ) {
$modx->sendRedirect('https://google.com');
} else {
return '';
}
可悲的是,无论用户是否登录,这似乎都没有做任何事情。(它确实是第二行的问题,实际重定向在我测试时工作正常) 我无法弄清楚出了什么问题,非常感谢任何帮助!
页面中的摘要 [[!notloggedin]]
答案 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
或者,只需将所有资源设置为“未发布”,但自定义错误页面除外。登录用户仍然可以查看所有资源。