Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress保护页面密码Cookie_Wordpress_Cookies_Passwords_Protected - Fatal编程技术网

WordPress保护页面密码Cookie

WordPress保护页面密码Cookie,wordpress,cookies,passwords,protected,Wordpress,Cookies,Passwords,Protected,当您登录到受密码保护的页面时,WordPress会设置一个看起来像wp-postpass_散列的cookie 这种饼干似乎永远粘在一起。我希望能够为用户提供一个“注销”链接。如果我不知道哈希,有没有办法找到并删除这个特定的cookie?也许有一种方法可以通过“wp postpass”来找到cookie 我见过其他改变WordPress核心文件以更改cookie过期日期的解决方案,但这不会持续到有更新时。也许我可以编写一个函数来改变这个特殊cookie的过期时间 有什么建议吗?谢谢 您是否尝试过向

当您登录到受密码保护的页面时,WordPress会设置一个看起来像wp-postpass_散列的cookie

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

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


有什么建议吗?谢谢

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

我最后做了以下几点:

<?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是数组中的最后一个。


<?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的位置

如果您不知道散列,这没关系。实际上cookie哈希是博客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);
?>
wp\u logout\u url()用于注销注册用户。我指的是受密码保护的页面,它是基于cookie的。