Session Variable übergeben

  • Hallo zusammen,
    ich habe zwar noch einen anderen Thread laufen, der das Thema kreuzt, würde aber dennoch gerne hier eine Frage posten, von der ich denke, das sie projektübergreifend ist (Mein Gott. 4 Kommas in einem Satz... Das kann nicht stimmen):

    Wie kann ich erreichen, das mit WordPress erstellte Seiten eine Sessionvariable beibehalten?

    Hintergrund:
    Aus gegebenem Anlass habe ich ein eigenes Login-Feld auf meinem Blog (Glücksbotschaften » Startseite). Im Validierungsprozess lege ich eine Sessionvariable fest, auf die ich im Laufe des Besuches immer wieder zurückgreife.

    PHP
    if (!session_is_registered ("Session_benutzer")) {
                        session_register("Session_benutzer");
                        $Session_benutzer = $datensatz['benutzer'];
                     }

    Wenn man nun nach erfolgreichem Login auf der Seite navigiert, bleibt die Session in Seitenelementen erhalten, die NICHT mit WordPress erstellt wurden.
    In den Seiten, die ich über WP angelegt habe, wird die Session nicht übermittelt?

    Das ist echt konfus denn ich rufe auf einer Seite sowohl eine linke Navigation auf, in der ich den User mit seiner Variable $Session_benutzer ansprechen kann, als auch einen Contentbereich, in dem die Variable gar nicht mehr ausgegeben wird.... Beides auf ein und dergleichen Seite !?!?!?!

    Wie kann das sein? In anderen Threads habe ich gelesen, das es da mit WP und Sessions Probleme gab. Ist das immer noch so?

    Einmal editiert, zuletzt von pullox (9. Juli 2007 um 15:42)

    • 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

  • Bei jedem Formular und bei jedem Link müsste die SessioID mitgegeben werden. Ob es dafür ein Plugin gibt? Ich glaube nicht.

  • Ja danke für den Hinweis. Ich werde das bei Gelegenheit prüfen, ob man lieber $_SESSION verwenden sollte.

    Da session_register aber auf meinem Webspace funktioniert (selbst in einem anderen Ordner der gleichen Domain), muss ich davon ausgehen, das es bei WP ein Problem damit gibt. Auch das werde ich mal checken.

    Ansonsten bleibt mir nur, wieder das Handtuch zu werfen und die Homepagebausteine (normale HP und WP) wieder zu trennen :-(

    Das wäre wirklich sehr schade, ich habe das Template extra dafür gebaut...

  • Ich habe es nicht geteste, aber es liegt wohl am register_globals. Selbst wenn register_globals = on ist, schmeißt WP mit der Funktion wp_unregister_GLOBALS() ganz am Anfang der Ausführung fast alle globalen Variablen weg. Und wenn ich das richtig gesehen habe, auch die Session.
    Funktionieren könnte es mit register_globals = off und dann mit Zugriff auf $_SESSION

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Also register_globals sind on. Da werde ich wohl auch nicht viel machen können, da ich nicht weiss, inwieweit das Ausschalten andere Auswirkungen für weitere Domains hat. Bin auch bei Allnkl. Das ist es an.

  • Doch, man kann das auch nur für eine Domain auschalten, Zitat aus den Allinkl-FAQ:

    Zitat

    Kann ich „php_flag register_globals“ in der php.ini auf „off“ setzen?

    Einen Zugriff auf die php.ini Datei haben Sie nicht. Es besteht aber die Möglichkeit, dass Sie durch das Eintragen in die .htaccess-Datei (diese muss im Hauptverzeichnis der Domain abgelegt werden) bestimmte Vorgaben der php.ini für Ihre Domain überschreiben lassen. Der entsprechende Eintrag lautet: php_flag register_globals off

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Also nun habe ich das mal mit $_SESSION['Session_benutzer'].... probiert und siehe da: ES FUNKTIONIERT!!!!

    Der Code lautet nun:

    PHP
    .....
    if (!isset($_SESSION['Session_benutzer'])) {
                       $_SESSION['Session_benutzer'] = $datensatz['benutzer'];
                     }
    .....


    Die Session wird nun gespeichert und sowohl auf statischen Teilen der Seite, als auch auf von WP generierten Seiten korrekt ausgegeben.

    Es kann also weitergehen...! Vielen dank an euch für die Anstöße. Ich war kurz davor WP wieder einzustampfen.

Jetzt mitmachen!

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