Sessions in Funktionen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sessions in Funktionen

    Hallo,

    ich habe ein kleines Problem mit der Sessionverwaltung. Ich habe ein Mitgliedersystem mit Login usw. erstellt, die Daten werden nach dem Login mit der Datenbank abgeglichen und es wird eine Session mit verschiedenen Nutzerdaten (u.a. Benutzername, Level, Passwort) gestartet. Diese werden dann in einzelnen Seitenbereichen für Zugangsstufen usw. ausgelesen. Dies funktioniert auch.

    Wenn ich jetzt jedoch auf die Sessiondaten im Header und Footer der Seite zurückgreifen will, so kommt es zu Problemen. Und zwar liest jede Datei über die config.php im Verzeichnis "themes/standard" die Funktion themeheader() und themefooter aus der main.php aus. Innerhalb dieser Funktionen sollen jetzt die Sessiondaten genutzt werden.

    Wenn ich die main.php separat öffne und die Session mit

    ---------------------------------------------------------------------
    session_save_path("../.././sessions"); ## "sessions" ist das Session-Verzeichnis
    session_start();
    ---------------------------------------------------------------------

    außerhalb einer Funktion starte, kann ich alle Daten nutzen. Nur innerhalb der Funktion klappt dies nicht, auch nicht mit "session_save_path("./sessions");". Wo liegt das Problem???
    Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
    www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
    [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

  • #2
    vorausgesetzt, die Sessions sind auf seperat geöffneten dateien gestartet, solltest du über $_SESSION[bla] zugriff darauf haben! (auch in Funktionen)

    gruss

    Kommentar


    • #3
      oder aber einfach mal

      global $HTTP_SESSION_VARS testen .... sollte auch gehen
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        Hmm, funktioniert irgendwie beides nicht. Der Benutzername ist in der Session als $log_username gespeichert.

        Ich kann den Nach einem Session-Start auch nicht mit
        $_SESSION["$log_username"]; oder $_SESSION["log_username"]; auslesen.

        global $HTTP_SESSION_VARS; hab ich ebenso an verschiedenen Stellen probiert (innerhalb der Funktion, außerhalb etc.). Hat aber irgendwie alles nicht geholfen.
        Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
        www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
        [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

        Kommentar


        • #5
          PHP-Code:

          session_start
          ();

          function 
          test() {

          global 
          $HTTP_SESSION_VARS;

          echo 
          $HTTP_SESSION_VARS[log_username];

          }

          test();

          // VOraussetzung ist natürlich voheriges registrien per:
          // session_register("log_username");
          ?> 
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6

            @schmalle: session_register gibt's eh nicht mehr ...

            Aber so dürfte das auch nicht funktionieren ... weil $HTTP_SESSION_VARS 'ne Kopie und keine Referenz ist ...
            Bei $_SESSION ist das nicht der Fall ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Original geschrieben von hottemp
              Ich kann den Nach einem Session-Start auch nicht mit
              $_SESSION["$log_username"]; oder $_SESSION["log_username"]; auslesen.
              Hier liegt dein Fehler.
              $_SESSION["$log_username"];
              würde einen index bzw eine Var registriern in der session die dem index haben würde der dem aktuellem inhalt der var enspricht.

              $_SESSION["log_username"];

              wäre richtig um es dann auch wieder auszulesen.
              -- Bat[e] / pixelcore.com

              Kommentar


              • #8
                Original geschrieben von goth

                @schmalle: session_register gibt's eh nicht mehr ...

                --> kommt auf PHP version an

                Aber so dürfte das auch nicht funktionieren ... weil $HTTP_SESSION_VARS 'ne Kopie und keine Referenz ist ...
                Bei $_SESSION ist das nicht der Fall ...

                --> bei mir funkt das. wüsste auch nicht, warum es nicht funken sollet

                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  http://cvs.php.net/co.php/php4/Chang...8faa657effe23c

                  Lest es euch mal durch


                  * ext/session/session.c:
                  Make $_SESSION and $HTTP_SESSION_VARS links to each other
                  -- Bat[e] / pixelcore.com

                  Kommentar


                  • #10
                    Hallo, danke für die Hilfe, es funktioniert jetzt alles. Am Ende habe ich Schmalles ersten Vorschlag genutzt mit:

                    PHP-Code:
                    index.php
                    <?
                    session_save_path("./sessions");
                    session_start();

                    include("config.php");

                    ...
                    ?>

                    ---------------------------------

                    config.php
                    <?
                    ...
                    require("themes/standard/main.php");
                    ...
                    ?>

                    ---------------------------------

                    main.php
                    <?

                    function themeheader() {

                    global $HTTP_SESSION_VARS;
                    echo $HTTP_SESSION_VARS[log_username]; 

                    ...

                    }
                    ?>
                    DANKE !!!
                    Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
                    www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
                    [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

                    Kommentar


                    • #11
                      wie ich sagte
                      h.a.n.d.
                      Schmalle

                      http://impressed.by
                      http://blog.schmalenberger.it



                      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                      ... nur ohne :-)

                      Kommentar


                      • #12
                        Original geschrieben von Bat[e]
                        http://cvs.php.net/co.php/php4/Chang...8faa657effe23c

                        Lest es euch mal durch


                        * ext/session/session.c:
                        Make $_SESSION and $HTTP_SESSION_VARS links to each other
                        2002-03-05 Zeev Suraski <zeev@zend.com>

                        Ergo: PHP 4.2.0
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar

                        Lädt...
                        X