session: auf einer seite geht es, auf der nächsten nicht?

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

  • session: auf einer seite geht es, auf der nächsten nicht?

    hallo,

    ich habe hier ein problem mit sessions das ich auch mit hilfe der suche nicht lösen konnte wenngleich es hier zig session postings gibt ...

    was ich code technisch mache sieht folgendermaßen aus:


    1.php

    PHP-Code:

    <?php
    session_start
    ();
    ?>

    <form name="form1" method="post" action="2.php">
    <input type="submit" name="Submit" value="Starten">
    <input name="session" type="hidden" value="<?php echo session_id();?>">
    <input name="live" type="hidden" value="123">
    </form>
    2.php

    PHP-Code:

    <?php
    session_start
    ();
    ?>

    <? $live = $_POST['live'];
    $_SESSION['live'] = $live;  ?>

    <a href="3.php">Weiter gehts</a>

    <? echo $_SESSION['live']; ?>
    auf der seite wird dann via echo $_session noch der wert (123) ausgegeben.

    auf der seite 3 klappt es dann nicht mehr. die ist zwar dann inhaltlich komplexer bzw. hat einfach richtige inhalte aber vom prinzip mache ich genau dasselbe. session starten, und echo $_SESSION['live']; ausgeben lassen. php zeigt mir aber überhaupt nichts davon an...


    hat jemand eine idee?

    danke sehr,

    tm
    Zuletzt geändert von Typomaniac; 04.06.2005, 11:53.

  • #2
    Mhn, wieso postest du Seite 3 nicht einfach (natürl. ohne Inhalt und sinnvoll gekürzt)? Ich mein "aber vom prinzip mache ich genau dasselbe" ist meistens eben nicht das Selbe. Wenn Seite 3 nicht funktioniert dann bringt es nichts uns die beiden Seiten davor zu geben (bringt schon was, aber ist eben nicht dort wo das Problem ist sondern nur der Kontext)

    echo $_SESSION['live_edit']; - Woher kommt da denn die Session 'live_edit' (bzw. das Formularelement $live kann ich in dem Formular auf Seite 1 auch nicht finden, wo kommt das denn her)?
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      Ändere den Link <a href="3.php">Weiter gehts</a> folgendermaßen:
      <a href="3.php?sid="<? print(session_id()) ?>" >Weiter gehts</a>.
      Wichtig ist (soviel ich weiß), dass die Session-ID an die nächste Seite weitergegeben wird.

      Gruß
      Stephan
      [font=Verdana]SteGaSoft
      Theorie ist, wenn jeder weiß, wie es geht, aber nichts funktioniert, Praxis ist, wenn alles funktioniert und niemand weiß warum.
      [/font]

      Kommentar


      • #4
        @floriam

        du hast natürlich recht. auch dort sollte es nur "live" heissen. das war mein fehler. ich habs einfach falsch kopiert. ich änder das gleich damit nicht der nächste auch drüber fliegt ; )

        die seite 3.php sieht im wesentlichen so aus:

        PHP-Code:
        <?
        session_start();
        ?>
        <HTML>
        <HEAD>

        <TITLE>blabla</TITLE>

        </HEAD>
        <BODY BGCOLOR=#ffffff >

        <table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><? include("main_content.php"); ?></td>
            <td><? include("menu.php"); ?></td>
          </tr>
        </table>
        </BODY>
        </HTML>

        in der datei menu.php steht dann eben jetzt testweise
        PHP-Code:
        echo $_SESSION['live']; 
        aber es wird halt nix angezeigt ; )

        @ sgt..
        ich habs mal versucht die session id mit zu übergeben aber es hat sich leider nichts geändert

        Kommentar


        • #5
          lass dir mal nach session_start() den inhalt von $_SESSION mit print_r() ausgeben
          Kissolino.com

          Kommentar


          • #6
            Wo kommt denn nun dieses mysteriöse $_POST['live']; her? Ich seh das in deinem Formular gar nicht
            PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

            Kommentar


            • #7
              @floriam

              in der 1.php ist doch ein kleines formular? : )

              @Wurzel...

              die ausgabe ist: Array ( ) ?

              Kommentar


              • #8
                Du greifst doch auf den Formular Wert 'live' zu (mit $_POST['live']), aber in dem von dir geposteten Formular gibt es diesen Wert nicht. Mach mal einfach print_r($_POST) und print_r($_SESSION) auf Seite 2 und poste die Ausgaben
                PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                Kommentar


                • #9
                  das tut mir leid das war nochmal so ein blöder flüchtigkeitsfehler. es sollte natürlich auch dort "live" heissen. sorry. (im skript war es richtig)

                  die ausgabe auf seite 2 ist

                  Array ( [Submit] => Starten [session] => 5bbf401ec76db325b5109f20af83d676 [live] => 123 )
                  Array ( [live] => 123 )

                  also eigentlich soweit doch alles ok? nur auf der nächsten seite gehts dann eben nicht ...grr

                  Kommentar


                  • #10
                    Seltsam, ich habe das gerade mal nachgebaut und bei mir klappt das..

                    Steht ggf in einer der includeten dateien irgendwo z.B ein session_destroy drin oder wird der wert irgendwo überschrieben oder zurückgesetzt ?
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #11
                      habs ebenfalls nachgebaut und bei mir klappts auch.

                      sieht die includete menu datei so aus?


                      PHP-Code:
                      echo $_SESSION['live']; 

                      oder so:
                      PHP-Code:
                      <php echo $_SESSION['live'];?> 
                      weil das zweite funktioniert bei mir und das andere nicht .

                      Kommentar


                      • #12
                        @hhcm
                        hmm also ich hab kein session destroy oder dgl. irgendwo. ich überschreib auch das ganze nicht. das ist also fast auszuschliessen..

                        @webmoehre
                        die syntaxt lautet bei mir
                        PHP-Code:
                        <? echo $_SESSION['live']; ?>
                        siehst du da einen unterschied? sonst hättest du wohl nicht gefragt ; ) ... ich kann mir diesen fehler bzw. das nicht-funktionieren einfach nicht erklären....

                        Kommentar


                        • #13
                          Vielleicht schickst du deine Sourcen dann doch mal an jemanden der DEINE scripte testet .. Ggf kann es ja dann wenigstens jemand nachvollziehen...
                          gruss Chris

                          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                          Kommentar


                          • #14
                            also hier mal die Skripte der einzelnen Dateien bei mir:

                            1.php:
                            PHP-Code:
                            <?php session_start();
                            ?>

                            <form name="form1" method="post" action="2.php">
                            <input type="submit" name="Submit" value="Starten">
                            <input name="session" type="hidden" value="<?php echo session_id();?>">
                            <input name="live" type="hidden" value="123">
                            </form>
                            2.php:
                            PHP-Code:
                            <?php
                            session_start
                            ();
                            ?>

                            <? $live = $_POST['live'];
                            $_SESSION['live'] = $live;  ?>

                            <a href="3.php">Weiter gehts</a>

                            <? echo $_SESSION['live']; ?>
                            3.php:

                            PHP-Code:

                            <?
                            session_start();
                            ?>
                            <HTML>
                            <HEAD>

                            <TITLE>blabla</TITLE>

                            </HEAD>
                            <BODY BGCOLOR=#ffffff >

                            <table width="800" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td></td>
                                <td><? include("menu.php"); ?></td>
                              </tr>
                            </table>
                            </BODY>
                            </HTML>
                            und dann auch noch menu.php:



                            PHP-Code:

                            <?php
                            echo $_SESSION['live'];
                               
                            ?>
                            und genauso funktioniert das bei mir wie die feuerwehr

                            Kommentar


                            • #15
                              obwohl du genau das hast was ich gemacht habe werd ich jetzt einfach mal genau diese skript teile hier rauskopieren und dann das ganze testen...wenn das dann auch nicht klappt muss es ja ganz andere ursachen haben...

                              danke sehr (an alle für die bemühungen bis jetzt)! ich geb dann auf jeden fall bescheid...

                              tm

                              Kommentar

                              Lädt...
                              X