brauche unbedingt Hilfe bei Sessions :-(

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

  • brauche unbedingt Hilfe bei Sessions :-(

    Ich verzweifle an dem Problem Sessions :-(

    Kann mir bitte jemand weiterhelfen?

    der Code sieht vielleicht etwas lang aus ... ich hoffe mir kann trotzdem

    jemand weiterhelfen?

    Kurze Beschreibung:

    es sind 3 Seite: seite0.php, seite1.php und seite2.php

    Ziel ist es, dass
    - alle Variablen richtig mitgeschleift werden auf den nachfolgenden Seiten
    - die Eingabe überprüft wird; und nur wenn sie richtig ist (hier also nicht leer ist) soll auf die nächste Seite weitergesprungen werden
    Ist die Eingabe falsch, so wird zur ursprünglichen Seite zurückgesprungen

    Bsp:
    -auf Seite0.php wird eine Eingabe im Feld Fld1 gemacht, aber in Fld2 nicht
    -Es wird beim Abschicken zu Seite1.php gesprungen
    -dort wird festgestellt, dass ein Feld nicht ausgefüllt wurde und es soll nun wieder auf Seite0.php gesprungen werden, damit der User dieses Feld auch ausfüllt

    Vielen, vielen Dank für eure Hilfe :-?


    PHP-Code:
    // seite0.php -------------------------------------------------------------------------------------------------------------------------

    <?php
        session_save_path
    ("./sessions"); 
        
    session_start();

    ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="seite1.php">
        <?php
            
    if ($resFld1 == 1) {
                echo 
    "Bitte geben Sie einen korrekten Wert für das Fld1-Feld ein.";
            }
        
    ?>
      <p>seite0.php</p>
      <p>Fld1: 
        <input type="text" name="Fld1" value="<?php echo $Fld1?>">
      </p>
        <?php
            
    if ($resFld2 == 1) {
                echo 
    "Bitte geben Sie einen korrekten Wert für das Fld2-Feld ein.";
            }
        
    ?>  
      <p>Fld2: 
        <input type="text" name="Fld2" value="<?php echo $Fld2?>">
      </p>
      <p>
        <input type="submit" name="next1" value="Abschicken">
      </p>
    </form>
    </body>
    </html>

    // seite1.php -------------------------------------------------------------------------------------------------------------------------

    <?php

        session_save_path
    ("./sessions"); 

        
    session_start();
        
        function 
    generateFld3Options () {
            echo 
    ' <select name="Fld3"> ';
            for (
    $i=1;$i<=10;$i++) {
                echo 
    " <option> Option ".$i." </option> ";
            }
        }     
    // function 
        
        
    function send_setted_sessions () {
            
    $_SESSION['Fld1'] = $Fld1;
            
    $_SESSION['Fld2'] = $Fld2;
            
            
    $_SESSION['resFld1'] = $resFld1;
            
    $_SESSION['resFld2'] = $resFld2;
            
            
    header ("Location: seite0.php");
        } 
    // function
        
        
    $doIt false;
        if (
    $resAbgeschickt==true) {$doIt true;}
        if (isset (
    $next1)) {$doIt true;}
        if (
    $doIt==true) {
            
    $resFld2 = empty($Fld2);
            
    $resFld1 = empty($Fld1);

            if (!((
    $resFld1 == 0) && ($resFld2 == 0))) {
                
    // es wurde nicht alles richtig ausgefuellt
                
    if (!($resAbgeschickt==true)) {
                    
    send_setted_sessions();
                }
            }
        } else {
            echo 
    "ILLEGAL CALL on seite1.php!<br>";
            echo 
    "next2: ".$next2;
            exit();
        }
    ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="seite2.php">
      <p>seite1.php</p>
      <p>Fld1: 
        <input type="text" name="Fld1" value="<?php echo $Fld1?>">
      </p>
      <p>Fld2: 
        <input type="text" name="Fld2" value="<?php echo $Fld2?>">
      </p>
      <p>Fld3: 
        <?php
                  generateFld3Options
    ();
            
    ?>
      </p>
      <p>
        <input type="submit" name="next2" value="Abschicken">
      </p>
    </form>
    </body>
    </html>


    // seite2.php -------------------------------------------------------------------------------------------------------------------------


    <?php
        
    //ob_start();

        
    session_save_path("./sessions"); 

        
    session_start();
        function 
    send_setted_sessions () {
            
            
    $_SESSION['Fld1'] = $Fld1;
            
    $_SESSION['Fld2'] = $Fld2;
            
    $_SESSION['Fld3'] = $Fld3;
            
            
    $_SESSION['resFld1'] = $resFld1;
            
    $_SESSION['resFld2'] = $resFld2;
            
    $_SESSION['resFld3'] = $resFld3;
            
    $_SESSION['resAbgeschickt'] = $resAbgeschickt;
            
            
    header ("Location: seite1.php");
        } 
    // function
        
        
    if (isset ($next2)) {
            
    $resFld2 = empty($Fld2);
            
    $resFld1 = empty($Fld1);
            
    $resFld3 = empty($Fld3);
            
    $resAbgeschickt true;
            if (
    $Fld1 == "now") {
                echo 
    "auf seite2.php: "."<br>";
                echo 
    "Fld2: ".$Fld2."<br>";
                echo 
    "next2: ".$next2."<br>";
                exit;
            }
                    
            if (!((
    $resFld1 == 0) && ($resFld2 == 0) && ($resFld3 == 0))) {
                
    // es wurde nicht alles richtig ausgefuellt
                
    send_setted_sessions();
            }
        } else {
            echo 
    "ILLEGAL CALL on seite2.php! <br>";
            exit();
        }
    ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="seite2.php">
      <p>seite2.php</p>
      <p>Fld1: 
        <input type="text" name="Fld1" value="<?php echo $Fld1?>">
      </p>
      <p>Fld2: 
        <input type="text" name="Fld2" value="<?php echo $Fld2?>">
      </p>
      <p>Fld3: 
        <?php
            
    echo $Fld3;
        
    ?>
      </p>
      <p>&nbsp; </p>
      <p>&nbsp; </p>
    </form>
    </body>
    </html>

  • #2
    ja, je nach fall

    PHP-Code:
    header("location: yourfile.php?param=value&param2=value2..."
    oder meinste was anderes?

    beebob

    Kommentar


    • #3
      hab was vergessen

      Hallo!

      VIelen Dank für die Antwort...

      hab wohl vergessen zu sagen, dass ich dazu nicht die URL verwenden

      *darf* :-?

      Kommentar


      • #4
        auf anhieb folgendes ..

        du verwendest variablen in deinen funktionen die du nicht übergeben / nicht mit global hereingeholt hast .. sollstest machen sonst gibts null-werte

        session_save_path("./sessions");

        solltest du nicht machen .. dadurch wären die sessions alle nach aussen hin lesbar ( .. ausser du schützt es durch .htaccess)

        auf seite0.php verwendest du alles variablen die in der session gespeichert sind (nehm ich zumindest mal an)
        .. sollte also unbedingt $_SESSION[] her !

        das gleiche mit den formulardaten .. die erreichst du alle über $_POST[]

        woher nimmst du $resAbgeschickt ? prüfe hier lieber auf $_POST['next1/next2'] (wenn der abschicken button da ist, ist das formular abgeschickt)
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar

        Lädt...
        X