Cookie-файл защищенной страницы WordPress - PullRequest
3 голосов
/ 04 февраля 2011

Когда вы входите на страницу, защищенную паролем, WordPress устанавливает cookie, который выглядит как wp-postpass_ hash .

Этот cookie, кажется, навсегда останется.Я бы хотел предоставить пользователю ссылку «Выйти».Есть ли способ найти и удалить этот файл cookie, если я не знаю хеш?Может быть, есть способ получить cookie, найдя его на основе «wp-postpass»?

Я видел другие решения для изменения основных файлов WordPress, чтобы изменить дату истечения срока действия cookie, но это выигралоПоследнее, когда есть обновление.Может быть, есть функция, которую я мог бы написать, чтобы изменить срок действия этого файла cookie?

Есть какие-нибудь советы?Спасибо!

Ответы [ 4 ]

3 голосов
/ 30 сентября 2011

Это нормально, если вы не знаете хэш. На самом деле cookie-хэш является MD5 URL-адреса блога. Если вы хотите узнать хэш 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);
?>
0 голосов
/ 05 февраля 2011

Я закончил этим:

<?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);
?>

Возможно, это не самое элегантное решение, особенно потому, что для него требуется, чтобы файл cookie wp-postpass был последним в массиве.

0 голосов
/ 24 февраля 2011
<?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);
}
?>

Я бы предпочел использовать что-то подобное выше - это не зависит от позиции файла cookie wp_postpass

0 голосов
/ 04 февраля 2011

Вы пытались предоставить пользователю ссылку на wp_logout_url() вместо того, чтобы программировать ее для себя?

...