簡體   English   中英

檢查WordPress密碼保護cookie是否存在

[英]Check if WordPress password protect cookie exists

使用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." 
}
if(isset($_COOKIE)){
    foreach($_COOKIE as $key=>$val){
        if(strpos($key,'wp-postpass_') === false) {
        //not found
        }else{
        //found
        }
    }
}

我發現了比WordPress Developer Docs上可接受的答案更優雅的解決方案,以查看Cookie是否存在:

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

同樣,如果要檢查cookie是否不存在:

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

對於可能沒有密碼保護的頁面,此代碼很有用,因為它們是存檔頁面或其他內容,但其中包含的內容可能受到保護(例如帖子)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM