Ich verwende WordPress für einen bestimmten Kunden, weil er Inhalte selbst bearbeiten muss. Damit verwende ich ihren Seitenpasswortschutz auf Kundenwunsch. Das Problem ist, dass das gesetzte Cookie anscheinend nie abläuft. Sobald der Client also das Passwort eingibt, muss niemand das Passwort jemals wieder über denselben Browser auf derselben Maschine eingeben. Dies lässt es weit offen für jeden, zu dem man gehen und eintreten kann. Daher nehme ich an, dass der beste Weg, dies zu beheben, darin besteht, eine Zeitüberschreitung für das Cookie festzulegen. Ich bin mir jedoch nicht sicher, wie ich das mit der PHP-Funktion machen soll. Hier die ganze Funktion:
function post_password_required( $post = null ) {
$post = get_post($post);
if ( empty( $post->post_password ) )
return false;
if ( ! isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
return true;
require_once ABSPATH . WPINC . '/class-phpass.php';
$hasher = new PasswordHash( 8, true );
$hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
if ( 0 !== strpos( $hash, '$P$B' ) )
return true;
return ! $hasher->CheckPassword( $post->post_password, $hash );
}
Wirklich, ich möchte, dass das Cookie abläuft, wenn der Browser geschlossen wird, und ansonsten alle paar Stunden. Irgendwelche Ratschläge, was hinzugefügt werden muss, damit das Cookie nach dem Setzen abläuft?
Ich glaube, es müsste wahrscheinlich zu dieser Zeile hinzugefügt werden:
$hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
Vielen Dank im Voraus für jeden Rat.