[英]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.