WordPress-Sitzungsverwaltung

Lesezeit: 5 Minuten

WordPress Sitzungsverwaltung
dkretz

Ich erstelle eine Website mit WordPress und möchte ihre Sitzungen huckepack nehmen. Aber ich finde keine Plugins oder sogar Dokumentation. Irgendwelche Vorschläge oder Referenzen, bevor ich anfange, es zu hacken?

Hinweis: Ich frage, ob und wie WP Standard-PHP-Sitzungen selbst verwendet, nicht wie PHP-Sitzungen hinzugefügt werden, z. B. mit session_start(). Anscheinend wird jeder Zustand, den WP aufrechterhält, auf andere Weise erreicht. Wenn ich also PHP-Sitzungen verwenden möchte, muss ich sie vollständig selbst hinzufügen und warten, indem ich Techniken wie die im Thread verwende.

Danke an alle!

WordPress Sitzungsverwaltung
Andrej Rudenko

Es ist eine sehr schlechte Idee zu modifizieren WP-Core Dateien für die Möglichkeit, Sitzungen zu verwenden. Der beste Weg, den ich gefunden habe, ist anzurufen session_start() von init Aktionshaken.

function kana_init_session() {
  session_start();
}

add_action('init', 'kana_init_session', 1);

Du kannst es einlegen functions.php Datei Ihres Designs.

Ausführlicher Artikel ist hier zu finden: http://www.kanasolution.com/2011/01/session-variable-in-wordpress/

WordPress Sitzungsverwaltung
Steve

WordPress scheint nicht anzurufen session_start() weil es staatenlos sein will und wenn register_globals definiert ist, zerstört es automatisch Ihre $_SESSION

  • Danke – daraus habe ich gelernt, dass man session_start() selbst in wp_config aufrufen kann, was nicht durch Updates überschrieben wird. Aber besser noch, ich verwende wp_config, um eine Singleton-Instanz einer “Context”-Klasse zu instanziieren, die ich verwende, um eine Reihe von Dingen zu speichern, die ich hinzufüge (einschließlich z session_start(). Dein Hinweis hat es mir verdeutlicht. (Jetzt muss ich wp_settings mit seinem Patch pflegen, um $_SESSION beizubehalten, oder das konsolidierte “$input”-Array verwenden. Oder “Context” die Sitzungsvariablen pflegen und aktualisieren lassen.) Ich hasse es, wenn sie das tun.

    – dkretz

    26. März 2010 um 1:43 Uhr


  • Link ist tot, aber in der Wayback-Maschine web.archive.org/web/20161021035452/http://…

    – Kaktus

    12. Juli 2017 um 14:40 Uhr

1646647149 739 WordPress Sitzungsverwaltung
Fernraum

Erwägen Sie die Verwendung WordPress Transient-API

Mit der Transient-API gespeicherte Werte sind für alle Benutzer sichtbar, nicht nur für den aktuellen Benutzer. Abhängig von der eindeutigen Kennung, die zum Abrufen des Transienten verwendet wird, können Sie jedem Benutzer eine eindeutige Kennung zuweisen, die im Wesentlichen dazu führt, dass sich ein Transient sehr ähnlich wie eine Sitzung verhält.

Weitere Überlegungen:

  • Abhängig vom Setup des Benutzers mit Objektcache usw. werden Transienten möglicherweise nicht immer in der DB gespeichert (z. B. Memcache). Die Verwendung von Transienten für Sitzungen kann dazu führen, dass die Daten sperrig werden und den Speicher schnell füllen (bei Verwendung von Memcached).

  • Außerdem scheint WP keine automatische Garbage Collection für Transienten durchzuführen:
    https://wordpress.stackexchange.com/questions/6602/are-transients-garbage-collected

1646647150 712 WordPress Sitzungsverwaltung
mschaffer

Für das, was ich tun muss, beinhaltet die beste Antwort:

  1. Damit das Cookie für WordPress über Subdomains hinweg bestehen bleibt, installieren Sie das Root-Cookie Plugin.
  2. sub1.domain.com hat WordPress; sub2.domain.com ist eine andere Seite. Von der anderen Seite (sub2), lese ich die Cookies, um festzustellen, wer der Benutzer ist und ob der Benutzer angemeldet ist.

Meine Cookies sind wie folgt:

[wordpress_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|d0249fced9c323835c5bf7e84ad3ffea
[wordpress_logged_in_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|56e9c19541ecb596a1fa0995da935700

Mit PHP kann ich die Cookies durchlaufen, analysieren key=>value Paare. Diese Cookies lassen mich das wissen [mshaffer] hat ein Cookie auf WordPress gespeichert und ist auch als authentifiziert logged_in. Der Ablauf des Cookies ist 1255298821.

Im sub2kann ich die Datenbank von WordPress abfragen und die Benutzerinformationen abrufen:

SELECT * FROM `wp_users` WHERE user_login = 'mshaffer' ... greifen Benutzer-ID, Benutzer Email aus dieser Abfrage

SELECT * FROM `wp_usermeta` WHERE user_id = '$user_id' ... Holen Sie sich viele andere Daten von wp

Mit diesen Informationen kann ich meine ergänzen sub2 Sitzungsvariable / Cookie und mache mit den Daten, was ich will. Ich kann erkennen, ob ich angemeldet bin, und meinen Benutzernamen … wodurch ich viele verschiedene Daten abrufen kann. Ich kann jetzt die WordPress-Authentifizierung in meiner verwenden sub2.domain.com und entsprechend umleiten.

Monte

{x:

WordPress scheint keine Sitzungen zu verwenden.

Der beste Weg, dies zu tun, besteht darin, die bereitgestellten Action-Hooks zu verwenden.

  • Du liegst völlig falsch, Anraiki. WordPress verwendet sicherlich Sessions. Und … zusätzlich, wenn Sie Ihre eigenen benutzerdefinierten Sitzungswerte verwenden möchten, gehen Sie wie folgt vor: Sie müssen die folgenden Zeilen oben hinzufügen wp-config.php if (!session_id()) { session_start(); } Fügen Sie dann die folgende Zeile oben hinzu header.php session_start();

    – Alwin

    2. November 2011 um 6:42 Uhr

  • WordPress verwendet Cookies, keine Sessions

    – Ian Jamieson

    5. März 2013 um 11:10 Uhr

  • WordPress verwendet standardmäßig keine Sitzungen.

    – Brian C

    23. Mai 2018 um 2:26 Uhr

1646647150 848 WordPress Sitzungsverwaltung
Chirag Kalani

Haben Sie die Lösung hier überprüft, kann dies hier funktionieren und es ist auf einfache Weise möglich

http://thedigilife.com/wordpress-how-to-set-session-custom-variable-while-login/

  • Du liegst völlig falsch, Anraiki. WordPress verwendet sicherlich Sessions. Und … zusätzlich, wenn Sie Ihre eigenen benutzerdefinierten Sitzungswerte verwenden möchten, gehen Sie wie folgt vor: Sie müssen die folgenden Zeilen oben hinzufügen wp-config.php if (!session_id()) { session_start(); } Fügen Sie dann die folgende Zeile oben hinzu header.php session_start();

    – Alwin

    2. November 2011 um 6:42 Uhr

  • WordPress verwendet Cookies, keine Sessions

    – Ian Jamieson

    5. März 2013 um 11:10 Uhr

  • WordPress verwendet standardmäßig keine Sitzungen.

    – Brian C

    23. Mai 2018 um 2:26 Uhr

1646647151 773 WordPress Sitzungsverwaltung
vmassuchetto

Hooken einer Funktion mit session_start() an wp_loaded scheint in diesem Fall zu funktionieren.

965000cookie-checkWordPress-Sitzungsverwaltung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy