Eigene PHP/JS-Anwendung integrieren (Session, Benutzergruppen)?

  • Hallo,

    ich habe für einen Kunden einen eigenständigen Produktkonfigurator in PHP/JavaScript geschrieben, der in eine Typo3-WebSite eingebettet ist (keine Typo3-Erweiterung). Dafür greift er auf die Datenbankdaten von Frontend-Benutzern (und deren Gruppenzugehörigkeit) zu und ebenso auf die Session-Datenbank (um die laufende Session zu verlängern) - funktioniert einwandfrei.

    Nun wird die WebSite neu gestaltet und mit Wordpress von einem anderen Dienstleister aufgesetzt. Mir stellen sich nun die folgenden Fragen?

    1. Kann man in Wordpress, ähnlich wie in Typo3, Frontend-Benutzer und -Gruppen (ein Benutzer kann in einer oder mehreren Gruppen sein) einrichten oder muss man dafür Plugins verwenden?
    2. Kann ich in meinen PHP-Skripten die Sitzungsdaten des eingeloggten Benutzers direkt in der Datenbank verändern (Session verlängern)?


    Ich wäre für Lösungen oder Hinweise oder Links zu weiteren Informationen sehr dankbar :-).
    Eduard Müller

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • zu 1: Ja kann man, mit Plugin aber auch ohne

    zu 2: PHP Sessions und WordPress sind keine gute Idee, gerade auch vor dem Hintergrund von Cachingplugins. Sessionhandling wird über Cookies abgebildet. Entsprechend kann man die Gültigkeit der Cookies (von der eigenen Seite) auch verändern.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Zu 1. So wie ich das lese "In WordPress existieren sechs verschiedene Benutzergruppen mit unterschiedlichen Rechten ..." kann ich also in der Grundversion keine selbstdefinierten Gruppen anlegen (die rein gar nichts mit Wordpress-Rechten etc. zu tun haben sollen, sondern nur für meine eigenständige Applikation verwendet werden). Ich benötige z.B. die Gruppe "Export". Benutzer, die in dieser Gruppe sind, sehen automatisch die Exportpreise, nicht die normalen Preise. Ebenso eine Gruppe "Gruppenadmin", die nur den Gruppenadmins eines Kunden zugeordnet sind (die sehen noch mehr Bearbeitungsmöglichkeiten) usw. Ok, ich schaue mir mal Plugins wie "Groups" oder "User Role Editor" oder "User Access Manager" an.

    Zu 2.Wo speichert der Server denn die Lebenszeit einer Sitzung? Der muss doch serverseitig die Prüfung vornehmen. Wichtig: Meine Applikation geht völlig an Wordpress vorbei. Ich kann nur auf die Wordpress-Datenbank zugreifen und kann keine Wordpress-Funktionen nutzen.
    Ah, habe gerade so etwas wie "DELETE FROM wp_usermeta WHERE meta_key='session_tokens';" gefunden.
    Hm, da ich sowieso ein Plugin verwenden muss, muss ich natürlich dort nach den Sitzungdaten suchen. Also erstmal ein Benutzergruppen-Plugin aussuchen.

    Danke für die Hilfe.


  • Zu 2.Wo speichert der Server denn die Lebenszeit einer Sitzung?

    WordPress kennt keine $_SESSION und startet auch keine Sitzung.

    Du wirst in WordPress keinen Aufruf von

    Code
    session_start()

    finden


    Der muss doch serverseitig die Prüfung vornehmen.

    Prüfung würde ich dies jetzt nicht nennen wollen - aber WordPress kann eine gestartete SESSION per Request annehmen


    Wichtig: Meine Applikation geht völlig an Wordpress vorbei. Ich kann nur auf die Wordpress-Datenbank zugreifen und kann keine Wordpress-Funktionen nutzen.

    Darf man dein 'kann in 'will' umformulieren?

    also:

    Ich will nur auf die Wordpress-Datenbank zugreifen und will keine Wordpress-Funktionen nutzen.


    Ah, habe gerade so etwas wie "DELETE FROM wp_usermeta WHERE meta_key='session_tokens';" gefunden.

    cool - Wenn aber keine Session gestartet wurde, hilft dir dies jetzt unheimlich weiter.


    Hm, da ich sowieso ein Plugin verwenden muss, muss ich natürlich dort nach den Sitzungdaten suchen. Also erstmal ein Benutzergruppen-Plugin aussuchen.

    Wenn du etwas genauer deine Anforderungen beschreiben würdest, könnte man dir evtl. ein Member Plugin empfehlen.

    Wenn deine Benutzer per se keinen Bezug zu WordPress haben und auch keine Rechte bei WordPress benötigen.
    reicht vermutlich das bestehende System ja bereits aus:

    https://developer.wordpress.org/reference/functions/get_userdata/

    Mit offenen Augen träumen

  • zu 1: Du kannst so viele Gruppen anlegen wie Du willst. Und Du kannst ebenfalls beliebige Rechte erstellen und hinzufügen. In Deiner Programmierung bestimmst Du selbst welche Aktionen welche Berechtigungen benötigen.

    zu 2: Beim Setzen des AUTH Cookies (wordpress_hashwert) wird die Ablaufzeit des Transienten gesetzt. Über den Filter
    "auth_cookie_expiration" kann die Ablaufzeit verändert werden.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!