Karliii: Meine $_SESSION bleibt leer. Warum nur?

Hallo Forumsbewohner ;)

Also, ich versuche gerade, etwas PHP zu lernen. Nur komme ich bei Sessions nicht weiter. Ich habe also eine Datei, die ich in jedes script via include("common.php") einfüge. In dieser Datei starte ich die Session mit

session_name("meinesession");
session_start("meinesession");

So weit, so gut. Ich bekomme auch (wie erwartet) eine Session ID, die auch, wie es sein sollte, über die URL oder Cookies weitergegeben wird.

echo('<p>SID: '.(session_id()).'</p>');  // <-- KLAPPT!

Nur, wenn ich jetzt einen Wert setze, den ich auf der nächsten Seite wieder sehen will, dann geht irgentetwas schief:

$_SESSION['bla'] = "hallölie!";

Nun klicke ich auf einen Link, gehe zur nächsten Seite, in der dann steht:

echo('<p>BLA: '.($_SESSION['bla']).'</p>');

Und die Variable ist leer! Lustigerweise ist aber in session_id() immer noch die gleiche ID drin. Diese wird also korrekt weitergegeben. Es klappt nicht, weil das session-file auf dem Server leer bleibt!

Warum aber? Kann mir da irgentwer nen Tipp geben? Permissions sind alle OK, ich bin auf WinXP (und wie jeder gut Windowsler natürlich als Admin *g*). Das Session-file wird zwar angelegt, aber es werden keine Werte hineingeschrieben.

Danke schonmal für die Hilfe! (Für alle RTFM-Rufer: Ja, ich habe http://de3.php.net/manual/en/ref.session.php gelesen, danke im Vorraus für den Hinweis!)

Karliii

  1. Moin!

    Warum aber? Kann mir da irgentwer nen Tipp geben? Permissions sind alle OK, ich bin auf WinXP (und wie jeder gut Windowsler natürlich als Admin *g*). Das Session-file wird zwar angelegt, aber es werden keine Werte hineingeschrieben.

    Daraus schliesse ich, dass du den Speicherpfad in der php.ini geändert hast. Ist ja sonst ein typischer Fehler unter Windows.

    Danke schonmal für die Hilfe! (Für alle RTFM-Rufer: Ja, ich habe http://de3.php.net/manual/en/ref.session.php gelesen, danke im Vorraus für den Hinweis!)

    Aber offensichtlich nicht besonders genau ;)

    Im Ernst: session_start() erwartet keinen Parameter und session_name() brauchst du eigentlich nicht. Oder hast du damit was besonderes vor? Lass es mal weg.

    Ansonsten: PHP ist >= 4.1.0? Vorher hab es $_SESSION noch nicht.

    Aber wahrscheinlich konnte ich dir nicht helfen...

    Viel Erfolg noch,
    Johannes

    1. hi

      Daraus schliesse ich, dass du den Speicherpfad in der php.ini geändert hast. Ist ja sonst ein typischer Fehler unter Windows.

      Nö, ich hab einfach auf der Platte, auf der die Seiten liegen ein Verzeichnis /tmp erstellt ;)

      Im Ernst: session_start() erwartet keinen Parameter und session_name() brauchst du eigentlich nicht. Oder hast du damit was besonderes vor? Lass es mal weg.

      Hatte ich erst weggelassen. Nur sollte man Cookies schon habwegs nachvollziehbare Namen geben IMHO.

      Ansonsten: PHP ist >= 4.1.0? Vorher hab es $_SESSION noch nicht.

      Ahaaa!! Womit der Fehler wohl gefunden wäre! Danke dir für den Tipp!

      Karlii

      1. Hallo ,

        Ansonsten: PHP ist >= 4.1.0? Vorher hab es $_SESSION noch nicht.

        das kenne ich auch nicht. Ist wohl ne globale Variable. Ich verwende 'session_register()'

        Gruß, Andreas

        1. Hallo Andreas,

          Ansonsten: PHP ist >= 4.1.0? Vorher hab es $_SESSION noch nicht.
          das kenne ich auch nicht. Ist wohl ne globale Variable.

          so ist es: http://de3.php.net/manual/en/language.variables.predefined.php

          Ich verwende 'session_register()'

          das solltest du aber nicht, wenn du eine Version >= 4.1 verwendest: http://de3.php.net/session_register

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
          1. Hallo Tobias,

            Ich verwende 'session_register()'
            das solltest du aber nicht, wenn du eine Version >= 4.1 verwendest: http://de3.php.net/session_register

            man lernt doch nie aus. aber bei mir ist register_globals auf ON.

            Gruß, Andreas

            --
            http://extra.andeas-lindig.de/was_das/
            ACHTUNG:
            wer andern eine Bratwurst brät,
            der hat ein Bratwurst-Bratgerät
            1. Hallo Andreas,

              man lernt doch nie aus. aber bei mir ist register_globals auf ON.

              na dann aber schleunigst auf off stellen...

              Grüße aus Nürnberg
              Tobias

              --
              Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
              1. man lernt doch nie aus. aber bei mir ist register_globals auf ON.
                na dann aber schleunigst auf off stellen...

                das wäre nicht sinnvoll bei mir, weil ich mich da meinem Hoster anpasse (wegen der Konsistenz). Oder kann ich das da für mich allein umstellen?

                Gruß, Andreas

                1. Hallo Andreas,

                  Oder kann ich das da für mich allein umstellen?

                  wenn du entsprechende "AllowOverride-Rechte" hast, ja, mit einer .htaccess: http://www.php.net/configuration.changes

                  Grüße aus Nürnberg
                  Tobias

                  --
                  Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|