Formular Übergabe Variablen mit Session

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

  • Formular Übergabe Variablen mit Session

    Hallo zusammen.

    Ich verzweifle hier gerade an einem Formular indem Variablen über Session übergeben werden sollen.

    Zum Aufbau der Seite ist nur schnell gesagt, dass immer wieder eine index.php aufgerufen wird. Die einzelnen Inhalte, Seiten werden immer mit Hilfe einer Variable in der Seite aufgerufen.

    Jetzt aber zu dem Problemformular. Das Formular erstreckt sich über mehrere Seiten und es werden auch mitunter sehr viele Variablen übergeben. Also wollte ich gerne mit Session arbeiten. (Ist mein erstes mal und ich muss sagen, es ist gar nicht so einfach).
    Eine extra Datei, welche in der index.php included ist, ruft jedes mal die Session mit session_start() auf.

    Das Formular ist komplett mit php generiert. Es prüft die Eingabe des Users. Sind alle Eingaben in Ordnung werden von der selben Datei alle Werte angezeigt und der User kann entweder ins nächste Formular wechseln oder die Eingabe nochmal ändern. Da liegt auch das Problem. Bei der Übergabe ins nächste Formular habe ich keine Probleme. Die kommen einwandfrei an. Aber wenn der User auf Eingabe ändern klickt, wird nichts mehr angezeigt. Ich habe nur leider keine Ahnung, wieso?
    Kann mir das vielleicht mal jemand verraten und sich mein Wirrwarformular anschauen. Das wäre super gierig.

    Es sieht so aus, als ob ich ein Verständnisproblem habe. Bitte helt mir!
    Ich habe schon am Anfang der Datei session_unregister für beide Variablen benutzt, aber leider hat dies keinen Effekt.

    Hier das Formular:

    PHP-Code:
    // Die Variable reset prüft, ob der User die Eingabe ändern will. 
            // Die Variablen Pressed werden geleert.
            
    if ($reset=='reset') {
                
    $pressed='';
                }
            
    // Überprüfung, ob der User zum ersten mal die Seite betritt
            
    if ($pressed==FALSE) {
                echo 
    "<td class='inhalt2' style='border:1px
     #718BA4 solid' colspan='2'>"
    ;
                    echo 
    "<form action='$PHP_SELF?
    action=2' method='post'>"
    ;
                        echo 
    "<table class='inhalt2'>";
                            echo 
    "<tr>
    <td style='height:20pt;' valign='top'><strong>Schritt 
    1:</strong></td></tr>"
    ;
                            echo 
    "<tr><td>Bitte geben Sie den Namen der Tippgemeinschaft
     ein:<sup>*</sup></td><td colspan='3'><input type='text' name='tg' 
    value='
    $tg' size='10' maxlength='50' input style='width:220pt; 
    height:15pt;' tabindex='1'></td></tr>"
    ;
                            echo 
    "<tr><td>Die Anzahl der 
    Mitspieler:<sup>*</sup></td><td><input type='Text' 
    name='anzahl_mitspieler' value='
    $anzahl_mitspieler' maxlength='3' input 
    style='width:20pt; height:15pt;' tabindex='2'></td><td 
    align='right'><input class='text' input style='width:47pt; height:15pt;' 
    type='submit' name='weiter' value='weiter' tabindex='3'><input 
    type='hidden' name='pressed' value='TRUE'></td></tr>"
    ;
                            echo 
    "<tr><td><sub>* Pflichtfelder sind mit einem Sternchen 
    markiert.</sub></td></tr>"
    ;
                        echo 
    "</table>";
                    echo 
    "</form>";
                echo 
    "</td>";
                } 
            
    // Überprüfung, ob der User den Button Weiter gedrückt hat. 
            
    if (isset($pressed)) {
                
    // Überprüfung ob Anzahl Mispieler einen 
    Buchstaben enthält...größer nicht größer als 100 und auch nicht null ist
                
    if(eregi("^[a-zA-Z]+$",$anzahl_mitspieler) ||
     
    $anzahl_mitspieler 100 || $anzahl_mitspieler == '0') {
                    echo 
    "<td class='inhalt2' 
    style='border:1px #718BA4 solid' colspan='2'>"
    ;
                        echo 
    "<form 
    action='
    $PHP_SELF?action=2' method='post'>";
                            echo 
    "<table 
    class='inhalt2'>"
    ;
                                echo 
    "<tr><td style='height:20pt;' valign='top'><strong>Schritt 
    1:</strong></td></tr>"
    ;
                                echo 
    "<tr><td class='inhalt_alert' 
    colspan='3'><strong>ACHTUNG: 
    $anzahl_mitspieler</strong> ist keine 
    gültige Ziffer. Die maximale Anzahl der Mitspielern ist auf 
    <strong>100</strong> begrenzt.</td></tr>"
    ;
                                echo 
    "<tr><td>Bitte geben Sie den Namen der Tippgemeinschaft 
    ein:<sup>*</sup></td><td colspan='3'><input type='text' name='tg' 
    value='
    $tg' size='10' maxlength='50' input style='width:220pt; 
    height:15pt;' tabindex='1'></td></tr>"
    ;
                                echo 
    "<tr><td>Die Anzahl der Mitspieler:<sup>*</sup></td><td><input type='Text' 
    name='anzahl_mitspieler' value='' maxlength='3' input style='width:20pt; 
    height:15pt;' tabindex='2'></td><td align='right'><input class='text' input 
    style='width:47pt; height:15pt;' type='submit' name='weiter' 
    value='weiter' tabindex='3'><input type='hidden' name='pressed' 
    value='TRUE'></td></tr>"
    ;
                                echo 
    "<tr><td><sub>* Pflichtfelder sind mit einem Sternchen 
    markiert.</sub></td></tr>"
    ;
                            echo 
    "</table>";
                        echo 
    "</form>";
                    echo 
    "</td>";
                } else {
                    
    // Überprüfung, ob der User beide 
    Felder Tippgemeinschaftsname und Anzahl der Spieler ausgefüllt hat
                        if (
    $tg=='' || 
    $anzahl_mitspieler=='') {
                            echo 
    "<td 
    class='inhalt2' style='border:1px #718BA4 solid' colspan='2'>"
    ;
                                echo 
    "<form action='$PHP_SELF?action=2' method='post'>";
                                    echo 
    "<table class='inhalt2'>";
                                        echo 
    "<tr><td style='height:20pt;' 
    valign='top'><strong>Schritt 1:</strong></td></tr>"
    ;
                                        echo 
    "<tr><td class='inhalt_alert' colspan='3'>Sie 
    müssen beide Felder <strong>Name der Tippgemeinschaft</strong> und 
    <strong>Anzahl der Mitspieler</strong> ausfüllen.</td></tr>"
    ;
                                        echo 
    "<tr><td>Bitte geben Sie den Namen der 
    Tippgemeinschaft ein:<sup>*</sup></td><td colspan='3'><input 
    type='text' name='tg' value='
    $tg' size='10' maxlength='50' input 
    style='width:220pt; height:15pt;' tabindex='1'></td></tr>"
    ;
                                        echo 
    "<tr><td>Die Anzahl der 
    Mitspieler:<sup>*</sup></td><td><input type='Text' 
    name='anzahl_mitspieler' value='
    $anzahl_mitspieler' maxlength='3' input 
    style='width:20pt; height:15pt;' tabindex='2'></td><td 
    align='right'><input class='text' input style='width:47pt; height:15pt;' 
    type='submit' name='weiter' value='weiter' tabindex='3'><input type='hidden' name='pressed' value='TRUE'></td></tr>"
    ;
                                        echo 
    "<tr><td><sub>* Pflichtfelder sind mit einem 
    Sternchen markiert.</sub></td></tr>"
    ;
                                    echo 
    "</table>";
                                echo 
    "</form>";
                            echo 
    "</td>";
                        } 
                        
    // Beide Felder wurden 
    ausgefüllt...Überprüfungob eine Tippgemeinschaft mit dem selben Namen 
    schon existiert
    ...Ansonsten Eingabe der Mitspieler
                        
    if ($tg!='' && $anzahl_mitspieler!='' && $anzahl_mitspieler<=100) {
                            
    $db->query
    ("SELECT * FROM tgs WHERE tg_name LIKE '".$tg."' ");
                            list(
    $Anzahl)
     = 
    $db->data();
                                if
     (
    $Anzahl==1) {
                                echo 
    "<td class='inhalt2' style='border:1px #718BA4 solid' 
    colspan='2'>"
    ;
                                    echo 
    "<form action='$PHP_SELF?action=2' method='post'>";
                                        echo 
    "<table class='inhalt2'>";
                                            echo 
    "<tr><td style='height:20pt;' valign='top'><strong>Schritt 1:</strong></td></tr>";
                                            echo 
    "<tr><td class='inhalt_alert' 
    colspan='2'>Es existiert schon eine Tippgemeinschaft mit dem Namen 
    <strong>
    $tg</strong>.</td></tr>";
                                            echo 
    "<tr><td>Bitte geben sie einen 
    anderen Namen als <strong>
    $tg</strong> für Ihre Tippgemeinschaft 
    ein:<sup>*</sup></td><td colspan='2'><input type='text' name='tg' 
    value='
    $tg' size='10' maxlength='50' input style='width:220pt; 
    height:15pt;' tabindex='1'></td></tr>"
    ;
                                            echo 
    "<tr><td>Die Anzahl der 
    Mitspieler:<sup>*</sup></td><td><input type='Text' 
    name='anzahl_mitspieler' value='
    $anzahl_mitspieler' maxlength='3' input 
    style='width:20pt; height:15pt;' tabindex='2'></td><td 
    align='right'><input class='text' input style='width:47pt; height:15pt;' 
    type='submit' name='weiter' value='weiter' tabindex='3'><input type='hidden' name='pressed' value='TRUE'></td></tr>"
    ;
                                            echo 
    "<tr><td><sub>* Pflichtfelder sind mit 
    einem Sternchen markiert.</sub></td></tr>"
    ;
                                        echo 
    "</table>";
                                    echo 
    "</form>";
                                echo 
    "</td>";
                            echo 
    "</tr>";
                            } else {
        
    // Alle Felder wurden korrekt ausgefüllt...Daten werden angezeigt
                                
    echo "<td class='anmeldung_ok' style='border:1px #718BA4
     solid'>"
    ;
                                    echo 
    "<table class='anmeldung_ok' width='100%' cellspacing='0' cellpadding='2'>";
                                        echo 
    "<tr><td style='height:20pt;' valign='top' 
    colspan='4'><strong>Schritt 1 abgeschlossen</strong></td></tr>"
    ;
                                        echo 
    "<tr><td width='25%'>Name der 
    Tippgemeinschaft:</td><td align='left' 
    colspan='3'><strong>
    $tg</strong></td></tr>";
                                        echo 
    "<tr><td>Anzahl der Mitspieler:</td><td 
    align='left'><strong>
    $anzahl_mitspieler</strong></td><td rowspan='4' 
    colspan='2' valign='bottom'><img 
    src='http://localhost/tippgemeinschaft/images/hacken.jpg' alt='OK' 
    name='OK' width='40' height='40' border='0' align='right'></td></tr>"
    ;
                                    echo 
    "</table>";
                                echo 
    "</td>";
                            echo 
    "</tr>";
                            echo 
    "<tr>";
    // User kann Daten zurücksetzen oder Weiter zum nächsten Formular
                                
    echo "<td class='inhalt2' style='border:1px #718BA4 solid' 
    valign='middle'>"
    ;
                                    echo 
    "<table class='inhalt2' width='100%' cellspacing='0' 
    cellpadding='2'>"
    ;
                                        echo 
    "<form action='$PHP_SELF' method='post'>";
                                            echo 
    "<tr><td valign='top'>Bitte überprüfen
     Sie Ihre Daten.</td><td align='right' valign='bottom'><form 
    action='
    $PHP_SELF?action=2?step=1' method='post'><input class='text' 
    type='submit' name='reset' input style='width:80pt; height:15pt;' 
    value='Eingabe ändern' tabindex='1'></form>
    $reset</td>";
                                                echo 
    "<td align='right' 
    valign='middle'><form action='
    $PHP_SELF' method='post'><input 
    type='hidden' name='step' value='2'><input class='text' input 
    style='width:47pt; height:15pt;' type='submit' name='weiter2' 
    value='weiter' tabindex='2'><input type='hidden' name='tg' value='
    $tg'><input type='hidden' name='anzahl_mitspieler' 
    value='
    $anzahl_mitspieler'>";
                                        
    session_register ("TG");
                                        
    session_register ("anzahl_mitspieler");
                                        echo 
    "</form></td></tr>";
                                        echo 
    "</table>";
                                    echo 
    "</td>";
                                echo 
    "</tr>";
                            echo 
    "</table>";
                                }
                            }
                        }
                    } 
    Gruß
    erik
    Zuletzt geändert von wahsaga; 20.07.2004, 09:43.

  • #2
    mach mal ein paar Zeilenumbrüche hier rein.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hi,

      sorry das ich keine kleinen Absätze gemacht habe. Sieht ja wirklich schlimm aus.
      Aber ich habe das Problem gefunden
      Ich war gerade dabei die Absätze zu machen, dabei ist mir der Fehler aufgefallen. Die Variable reset in der 13ten Zeile von unten, war nicht im Form Tag, sondern stand auserhalb, sozusagen "In der Luft" und hat wohl den Fehler versucht.
      Besten Dank. Manchmal kann ein wenig Ordnung, Klarheit verschaffen.
      Gruß und Danke
      erik

      Kommentar


      • #4
        Hallo,

        ach ne. Da habe ich mich wohl zu früh gefreut.
        Die Seite wird zwar jetzt angezeigt, wenn ich auf Eingabe ändern drücke und ich kann die Werte für tg und anzahl_mitspieler auch verändern. Doch leider hat das keine Auswirkungen. Die alten Werte bleiben in den Variablen gespeichert.

        Die Datei mit den Zeilenbrüchen sieht jetzt noch caotischer aus. Ich bin die nächsten beiden Tage nicht da und muss jetzt leider ins Bett. Dann werde ich mich mal ransetzten und es übersichtlich machen.
        Also bis denne
        Gruß
        erik

        Kommentar

        Lädt...
        X