Ich habe Probleme mit einem Wordpress Plugin, an dem ich gerade arbeite. PHP-Sitzungen verhalten sich nicht konsistent. Ich habe die folgenden Artikel zu lesen:Wordpress Plugin Sessions funktionieren nur, wenn Sie eingeloggt sind
https://wordpress.stackexchange.com/questions/121144/session-in-wordpress-plugin-development
https://silvermapleweb.com/using-the-php-session-in-wordpress/
Und viele mehr, die den gleichen Rat zu Beginn der Sitzung mit dem Init-Haken geben.
Ich habe dies in meiner Plugin implementiert:
add_action('init', 'set_session', 1);
function set_session(){
if(!session_id()){
session_start();
}
}
Die Sitzungen seltsam still verhalten, so hat ich einen Test erstellt, um zu sehen, ob die Sitzungen festgelegt werden.
$_SESSION['GuestID'] = 'test';
if(!session_id()){
echo 'Session Not Started';
} else{
if(isset($_SESSION['GuestID'])){
echo 'Guest ID From Session: '.$_SESSION['GuestID'];
} else{
echo 'Guest ID not set in Session!';
}
}
Als ich dies ausführen, wird die Gast-ID 'Guest ID Von Session: Test' zurückgegeben, aber wenn Sie die Sitzung von einer anderen Seite zuzugreifen reload versuchen, Sie erhalten die ‚Guest-ID in der Sitzung nicht gesetzt! " Botschaft. Für mich bedeutet dies, dass die Sitzung gestartet wurde, aber aus irgendeinem Grund speichert sie nicht meine Sitzungsdaten.
Ich kann auch sehen, dass kein Cookie für die Session-ID gespeichert ist.
Der seltsame Teil von allem, ist, dass, wenn ich mich an den Wordpress-Admin anmelden, die PHP-Session-ID in einem Cookie gespeichert wird, und die Sitzungen verhalten sich wie erwartet!
Was könnte das verursachen? Und wie kann ich das Problem lösen?
Vielen Dank! Ich stieß auf das gleiche Problem mit Cloudways und behinderte Varnish das Problem. – b0nd