【问题标题】:Check if WordPress password protect cookie exists检查 WordPress 密码保护 cookie 是否存在
【发布时间】:2017-07-24 09:50:09
【问题描述】:

对于 WordPress,如果您使用受密码保护的页面,当用户使用成功的密码时,会生成一个类似于以下内容的 cookie:

wp-postpass_299da1fd9cb967a93782c5397fa3a35e

PHP 中有没有办法检查这个 cookie 是否存在?

即使只是检查是否存在以wp-postpass_开头的cookie?

我运行var_dump($_COOKIE)时$_COOKIE的内容:

array(9) {
    ["wordpress_test_cookie"] => string(15)
    "WP Cookie check" 
    ["wp-postpass_299da1fd9cb967a93782c5397fa3a35e"] => string(34)
    "$P$BXtsZ0i1qom3bqiFk4b9GeG8l9dFVG." 
}

【问题讨论】:

标签: php


【解决方案1】:

我找到了一个比WordPress Developer Docs 上接受的答案更优雅的解决方案来查看 cookie 是否存在:

if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) ) {
     //custom code 
}

同样,如果你想检查 cookie 是否不存在:

if ( ! isset( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] ) ) {
    //custom code
}

此代码对于可能没有密码保护的页面很有用,因为它们是存档页面或其他什么,但它包含的内容可能受到保护(例如帖子)。

【讨论】:

    【解决方案2】:
    if(isset($_COOKIE)){
        foreach($_COOKIE as $key=>$val){
            if(strpos($key,'wp-postpass_') === false) {
            //not found
            }else{
            //found
            }
        }
    }
    

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 2015-08-24
    • 2013-03-31
    • 2013-02-05
    • 2016-02-19
    • 1970-01-01
    • 2014-12-30
    • 2023-03-26
    相关资源
    最近更新 更多