【问题标题】:WordPress Protected Page Password CookieWordPress 保护页面密码 Cookie
【发布时间】:2011-06-21 14:44:34
【问题描述】:

当您登录到受密码保护的页面时,WordPress 会设置一个类似于 wp-postpass_hash 的 cookie。

这个 cookie 似乎永远存在。我希望能够为用户提供“注销”链接。如果我不知道哈希值,有没有办法让我找到并删除这个特定的 cookie?也许有一种方法可以通过基于'wp-postpass'找到它来获取cookie?

我已经看到了其他解决方案来更改 WordPress 的核心文件以更改 cookie 的到期日期,但是当有更新时这不会持续。也许我可以编写一个函数来更改这个特定 cookie 的过期时间?

有什么建议吗?谢谢!

【问题讨论】:

    标签: wordpress cookies passwords protected


    【解决方案1】:

    如果你不知道哈希也没关系。实际上 cookie hash 是博客 url 的 MD5。如果您想知道您的网站 cookie 哈希,请尝试以下操作:

    <?php
    
        $url="http://www.your-blog.com";
        $COOKIEHASH = md5($url);
    
        //Now, your cookie will be,
        echo 'wp-postpass_' . $COOKIEHASH; // Name of the cookie of your blog
    
        //Now, you can delete it whenever you want. :)
    
        //setting your cookie
        //setcookie('wp-postpass_' . $COOKIEHASH, $password, time() + 864000, COOKIEPATH);
    ?>
    

    【讨论】:

      【解决方案2】:
      <?php
      $pass_cookie='';
      foreach($_COOKIE as $key=>$value){
        if(!strncmp($key,"wp-postpass_",12)){
          $pass_cookie = $key;
          break;
        }
      }
      if($pass_cookie){
        setcookie($pass_cookie,'',0);
      }
      ?>
      

      我宁愿使用类似上面的东西——它不依赖于 wp_postpass cookie 的位置

      【讨论】:

        【解决方案3】:

        您是否尝试过为用户提供wp_logout_url() 的链接,而不是自己编程?

        【讨论】:

        • wp_logout_url() 用于注销注册用户。我指的是基于 cookie 的受密码保护的页面。
        【解决方案4】:

        我最终这样做了:

        <?php
        // turn all cookies into string
        $cookie_string = implode(array_keys($_COOKIE));
        // find position of desired cookie
        $pos = strpos($cookie_string,'wp-postpass');
        // extract string starting at $pos
        $pass_cookie = substr($cookie_string,$pos);
        // set cookie to expire on browser close
        setcookie($pass_cookie,'',0);
        ?>
        

        这可能不是最优雅的解决方案,尤其是因为它要求 wp-postpass cookie 位于数组的最后。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-10
          • 2016-02-11
          • 1970-01-01
          • 2021-06-19
          • 1970-01-01
          • 2023-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多