Veröffentlicht 7. Juni 200619 j Hallo Ihr! Ich habe da mal ein Problem, an dem ich mir die Haare ausreiße. Entweder bin ich zu blond oder ich bin einfach nur zu blond... Folgendes Problem: Ich weiß zwar, wie ich aus einem Html-Formular Variablen in eine PHP-Form bekomme. Mein Problem ist jetz, wie bekomme ich genau diese Variablen in das übernächste Formular und in die nächsten? Kann mir bitte jemand helfen? Dank und Anerkennung im Voraus
7. Juni 200619 j Du könntest das ganze z.B. anhand einer session sammeln und in der datenbank speichern. eine andere alternative wäre z.B. das ganze über versteckte Formularfelder á la <input type="hidden" ... > laufen zu lassen ...
7. Juni 200619 j Hallo, also vielen Dank erstmal. Aber ich bin wohl doch zu blond? Ich versuche das ja mit <input type='hidden'...> aber irgendwie klappt das nicht wirklich. Vielleicht mache ich bei der Übermittlung etwas falsch? Ich leite das mit POST weiter. Ist das vielleicht der Fehler? Ich weiß einfach nicht mehr weiter...
7. Juni 200619 j Wenn du ein bisschen ausführlicher wirst und vielleicht deinen Code postest, könnte ich dir vielleicht weiter helfen ... ^^
7. Juni 200619 j es geht um folgendes...ich soll eine datenbank über nen browser von außen zugänglich machen. aber nur leute, die registriert sind und auch dann nur auf bestimmte seiten. deswegen muss ich eine variable haben, auf der ich beim aufruf der einzelnen seiten prüfen kann, ob zugang erlaubt ist oder nicht. hier der Text aus der html_seite: <form action = "reg_info.php" method = "post"> <TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=0 WIDTH="80%"> <TR VALIGN="middle"> <TD ALIGN="RIGHT" VALIGN='middle'>E-Mail: </TD> <TD WIDTH='5%'> </TD> <TD><input name="email" SIZE='35%'> <p></TD> </TR> <TR VALIGN="middle"> <TD ALIGN="RIGHT"><input type = "reset"></TD> <TD></TD> <TD><input type = "submit" VALUE="Weiter" ></TD> </TR> </TABLE> </form> (habe mich erstmal für die email entschieden, um das zu testen) hier jetzt die erste php-seite, wo ich das ganz normal auslesen kann: <?php $email=$_POST['email']; (dann in einer Tabelle ausgeben...) echo "<TR ALIGN='left' VALIGN='middle'>"; echo "<TD ALIGN='RIGHT'>E-Mail:</TD>"; echo "<TD><input name='email' VALUE=$email ></TD>"; echo "<TD><B> $email </B></TD></TR>"; echo "<TR><TD> </TD></TR>"; ?> in der mittleren zeile trage ich die email ein als "HIDDEN" ja und wenn ich dann weiter auf die nächste seite gehe...da sollte dann die email auch noch da sein...ist sie aber nicht mehr. ich übertrage die variable doch genau wie vorher und fange sie auch genau wie vorher auf...also, was mach ich falsch?
7. Juni 200619 j mach aus deinem echo "<TD><input name='email' VALUE=$email ></TD>"; [/PHP] mal ein [PHP] echo "<TD><input type='hidden' name='email' VALUE=$email ></TD>"; Du solltest allgemein deinen <input's ein type attribut geben wie type="hidden" oder type="text"
7. Juni 200619 j Man Bedenke bitte dringend das type=hidden input Felder in jedem "Schritt" des Formulars böswillig vom Anwender verändert werden könn(t)en. Das heißt man wird die Werte mehrfach Überprüfen müssen. Sessions sind heute mit PHP weitaus einfacher zu realisieren, und der Wert bleibt nach dem ersten Absenden (und Prüfen!) auf dem Server. /edit Zum "wie" hilft http://de.php.net/session_start. Nach einem session_start(); kannst du im Grunde jeden Wert des Formulars in einer $_SESSION["foo"] Variable speichern; diese sind dann persistent. Man sollte die Session-Einstellungen in der php.ini (Lebensdauer etc.) beachten.
7. Juni 200619 j hidden felder sind schnee von gestern, heute sind, wie mein vorredner schon sagte, sessions IN. da führt kein weg vorbei !
8. Juni 200619 j Vielen Dank! Ich habe mich für die SESSION-Variante entschieden. Jetzt habe ich nur das nächste Problem. Wenn ich SESSION_START(); aufrufe, gibt der Browser eine Fehlermeldung aus ("Cannot send session cookie..." / "Cannot send session cache limiter..."). Wo kann ich die Einstellungen ändern, damit diese Meldungen nicht mehr erscheinen? Sonst ist das ja eine saubere Lösung... Danke im Voraus
8. Juni 200619 j Wo kann ich die Einstellungen ändern, damit diese Meldungen nicht mehr erscheinen? Gar nicht. Das änderst du, indem du den Fehler, auf den die Meldung dich ja hinweist, entfernst. Cookies werden im Header der Seite mitgeschickt (die Session-ID wird standardmäßig in einem Cookie abgelegt). Wenn der HEader aber schon weg ist, kann kein Cookie mehr angelegt werden. Das ist genau das, was die Meldung dir sagt. Abhilfe: Session starten bevor irgendwelche Ausgaben auf der Seite gemacht werden.
8. Juni 200619 j Abhilfe: Session starten bevor irgendwelche Ausgaben auf der Seite gemacht werden. Vielleicht bin ich doch einfach nur zu blond. Hier der Text: <HTML> <HEAD> <TITLE>TEST Seite 1</TITLE> </HEAD> <BODY> <?php session_start(); echo 'Willkommen auf Seite #1'; $_SESSION['farbe'] = 'grün'; $_SESSION['tier'] = 'Spinne'; $_SESSION['zeit'] = time(); echo '<br /><a href="test2_2.php?' . SID . '">Seite 2</a>'; ?> </BODY> </HTML> Wo, wenn nicht als erste Zeile im php-Code soll die SESSION_START() denn stehen???
8. Juni 200619 j Wo, wenn nicht als erste Zeile im php-Code soll die denn stehen??? <?php session_start(); ?> <HTML> <HEAD> <TITLE>TEST Seite 1</TITLE> </HEAD> <BODY> <?php ... ... ?> </BODY> </HTML>
8. Juni 200619 j Okay, okay...ich habe es verstanden Ich wusste nicht, dass man da oben auch etwas initialisieren kann. Danke!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.