Dhyan: Session Variable nicht übergeben

Hallo,
ich hab grade angefangen den Umgang mit sessions zu lernen
und gleich der erste Versuch misslingt :-)
auf main.php wird die Variable noch ausgegeben, aber das geht
ja ohne sessions, auf main2.php dann nicht mehr.
http://a2-clan.cdaweb.de/lernen
oder kann es sein dass mein webspace keine sessions unterstützt?
wenn das so ist kennt jemand kostenlos space der mit sessions
umgehen kann? oooder *g* kann mir jemand zeigen wie ich den
apache so konfigurier dass ich da alles testen kann?

---index.php------
<html>
<head><title>Sessions</title></head>
<body>
<form method="GET" action="main.php">
<input type="text" name="name" size="20">
<input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2">
</form>
</body>
</html>

---main.php------
<?
session_save_path("./save");
session_start();
session_register("name");
?>
<html>
<head><title>Sessions</title></head>
<body>
Im Formular wurde
<?
echo $name;
?> eingegeben!
<a href="main2.php">nächste Ebene</a>
</body>
</html>

---main2.php------
<?
session_start();
?>
<html>
<head><title>Sessions</title></head>
<body>
Im Formular wurde <b>
<?
echo $name;
?>
</b> eingegeben!!
<a href="main3.php">Logout</a>
</body>
</html>

---main3.php------
<?
session_start();
session_unregister("name");
?>
<html>
<head><title>Sessions</title></head>
<body>
Sie sind jetzt ausgeloggt!
</body>
</html>

mfg Dhyan

  1. Hallo,

    hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?

    Wo stehen denn da die Variablen?

    Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?

    Wenn register_globals=off aist auf dem Server, dann ist das so und dann funktionieren die Sessions auch anders.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    1. Hallo Tom!

      hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?

      Wo stehen denn da die Variablen?

      Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?

      Zitat aus dem Ausgabgspoting:

      "auf main.php wird die Variable noch ausgegeben, aber das geht
      ja ohne sessions, auf main2.php dann nicht mehr."

      Daher versteh ich nicht das es fehlschlägt. Meines Wissens werden die Session-Variablen direkt bereitgestellt(da register-globals=on), auch in neueren Versionen von PHP. Und da anscheinend keine Fehlermeldung kommt wird der Session-Support wohl aktiviert sein. Wie ich das sehe müßte es so wie es da steht funktionieren, vielleicht stimmt was mit session.cookie/session.trans-SID nicht, das die session-id nicht übergeben wird. Man kann viele Sachen überprüfen, z.B.

      print_r($_SESSION);
      print_r($_COCKIES);
      print_r($_GET);
      print_r(session_id());
      ...

      Dann sollte er mal nachgucken was in phpinfo() bzgl. Session steht, vor allem hinter

      Session Support
      session.use_cookies
      session.use_trans_sid

      und auch welche PHP-Version vorliegt wäre nicht uninteressant.

      Außerdem würde ich am Anfang den eigenen session_savs_path mal weglassen, oder änderst Du den aus einem bestimmten Grund?

      Ich würde dringend empfehlen Sessions wie unter folgendem Link zu verwenden: http://php-faq.de/q/q-sessions-wie.html

      Ich würde mal die Beispiele von da 1:1 übernehmen zum ausprobieren.

      Viele Grüße
      Andreas

      PS: Ich schreibe bis heute fast jedesmal das Wort "cookie" falsch, keine Ahnung weiso, ich denke immer es heißt cockie ;-)

      1. Hi Andreas,

        hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?
        Wo stehen denn da die Variablen?
        Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?

        Zitat aus dem Ausgabgspoting:

        "auf main.php wird die Variable noch ausgegeben, aber das geht
        ja ohne sessions, auf main2.php dann nicht mehr."

        Ja, darum sollte er ja testen, ob register_globals=off ist. Das bekommt er entweder raus, wenn er

        <?PHP  #### Alle Variablen anzeigen - info.php ####
          phpinfo();
        ?>

        dieses Script mal hochlädt und startet und dann fleissig sucht oder indem er

        <?PHP  #### Get testen - show_get.php ####

        echo "<pre>";
          print_r($HTTP_GET_VARS);
          echo "</pre>";

        echo "Name: $name <br />";
          echo "Nachname: $nachname <br />";

        ?>

        dieses script hochlädt und mal die url aufruft:

        http://........../show_get.php?name=willi&namname=Wunder

        Dann müssten ja die beiden variablen

        Array
        (
            [name] => willi
            [nachname] => Wunder
        )

        so angezeigt werden.

        Wenn hingegen

        Name: Willi
        Nachname: Wunder

        auf dem Bildschirm steht, dann müsste auch seine Session so funktionieren wie vorgesehen.

        Daher versteh ich nicht das es fehlschlägt. Meines Wissens werden die Session-Variablen direkt bereitgestellt(da register-globals=on),

        Aber auch nur dann. Darum ging es ja.
        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
        1. Hi Tom!

          Das er POST verwendet kann man aus dem Forumlar in index.php entnehmen. Dass register-globals=on sind kann man main.php entnehmen, da die Variablen ohne $HTTP_POST_VARS oder $_POST wohl ausgegeben werden.

          Grüße
          Andreas

    2. Bin ziemlich neu in Sachen PHP...

      hast Du schon mal ein ganz normale Post von einem Formular durchgeführt?

      Anstatt GET POST nehmen?

      Wo stehen denn da die Variablen?
      Wenn du ein Feld mit Namen "hallo" hast, kommt das dann beim Post-Empfänger in $hallo oder in $_POST["hallo"] an?

      ??? Heisst dann die Variable anders?

      Wenn register_globals=off aist auf dem Server, dann ist das so und dann funktionieren die Sessions auch anders.

      Kann ich das testen/herausfinden ?

      danke, mfg