要求登录才能访问我的Wordpress网站

时间:2012-08-12 00:52:07

标签: php login conditional

我有一个Wordpress网站,我希望锁定公众,就像重定向登录一样,除非您正在注册。所以现在我正在使用的代码是:

<?php
if ( is_user_logged_in() ) {

} else {
 $coolio=curPageURL();
 if (strpos($coolio,'register.php') !== false) {
 break;
 }
 else{
  echo "<script>window.location = 'http://example.com/wp-login.php'</script>";
  break;
 }
 if (strpos($coolio,'login.php') !== false) {
 break;
 }
 else{
  echo "<script>window.location = 'http://example.com/wp-login.php'</script>";
  break;
 }
}
?>

似乎应该可以工作,但它会在我去的任何页面上创建一个无限循环。有人知道为什么吗?

注意:curPageUrl只返回当前页面网址。

2 个答案:

答案 0 :(得分:2)

您发布的代码存在一些重大安全问题:

  • 用户只需禁用Javascript即可防止被重定向。
  • 用户只需向网址添加?register.php即可避免触发重定向代码。

而是使用服务器端会话变量检查。如果未在会话中设置“登录”标志,则会重定向到登录页面。

这有两大优势:

  1. 登录状态保存在用户无法操作的地方,登录时除外
  2. 如果恶意用户只是破坏会话cookie,他们只会获得一个新的空白会话并被视为“未登录”,并且无论如何都会被重定向。

答案 1 :(得分:0)

我不会使用JavaScript进行重定向,请使用php。

其次做这个逻辑:

if(!($_SESSION["loggedin"]== 1))
{
    if(!(stripos($url,'register.php')))
    {
        header('Location: http://example.com/wp-login.php', true, 302);
        exit;
    }
}