Höllenkind Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 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 Zitieren
etherius Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 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 ... Zitieren
Höllenkind Geschrieben 7. Juni 2006 Autor Geschrieben 7. Juni 2006 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... Zitieren
etherius Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 Wenn du ein bisschen ausführlicher wirst und vielleicht deinen Code postest, könnte ich dir vielleicht weiter helfen ... ^^ Zitieren
Höllenkind Geschrieben 7. Juni 2006 Autor Geschrieben 7. Juni 2006 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? Zitieren
etherius Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 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" Zitieren
DevilDawn Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 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. Zitieren
baba007 Geschrieben 7. Juni 2006 Geschrieben 7. Juni 2006 hidden felder sind schnee von gestern, heute sind, wie mein vorredner schon sagte, sessions IN. da führt kein weg vorbei ! Zitieren
Höllenkind Geschrieben 8. Juni 2006 Autor Geschrieben 8. Juni 2006 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 Zitieren
geloescht_JesterDay Geschrieben 8. Juni 2006 Geschrieben 8. Juni 2006 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. Zitieren
Höllenkind Geschrieben 8. Juni 2006 Autor Geschrieben 8. Juni 2006 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??? Zitieren
Jaraz Geschrieben 8. Juni 2006 Geschrieben 8. Juni 2006 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> Zitieren
Höllenkind Geschrieben 8. Juni 2006 Autor Geschrieben 8. Juni 2006 Okay, okay...ich habe es verstanden Ich wusste nicht, dass man da oben auch etwas initialisieren kann. Danke! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.