Mailinglisten-Archive |
Ulrich Fischer wrote: > vielen Dank bei der abenteuerlichen Aufklaerung > der $HTTP_GET_VARS Frage, die ja nach Ulf's Meinung > nicht unbedingt von Professionalitaet auf hohem > NiveA(U) zeugte. Nein, das verstehst Du falsch. Es wird einfach bei langen URL's nicht funktionieren. Ein Textarea Feld im Formular und jemand bringt es früher oder später zum crashen. URL's sind auf eine Länge von 2k begrenzt, alles was darüber liegt ist reine Glücksache. Bei manchen Browsern wird es einen Absturz geben, bei anderen funktioniert es möglicherweise. Die klassischen Methoden Hinweistext zur Benutzung des Back-Buttons und JavaScript Link mit gleicher Funktionalität sind immer noch die sichersten, wenn man nicht auf Sessions setzt. Da auf der Liste nach meinem Gefühl 80% Anfänger mitlesen, sollte man stets zwischen den Zeilen lesen. So auch wenn jemand URLs direkt manipulieren und oder erzeugen will und dabei nicht einmal urlencode() kennt. Sei mir nicht böse, aber ich gebe lieber eine arrogant wirkende Antwort mit zuvielen Informationen, als das ich einen potentiellen Einsteiger gegen die Wand laufen lasse, weil ich nicht zwischen den Zeilen lese oder nur ein Code-Snippet vorwerfe. Jetzt da ich weiß, daß Du bei fehlgeschlagener Validierung das Formular mit den zuvor eingegebenen Daten erneut anzeigen möchtest, kann ich Dir auch einen anderen, besseren Weg nennen. Kennst Du das klassische if (isset($submit) ... ? <?php $flag_formzeigen = false; if (!isset($submit)) { // Formular zeigen, es wurde noch kein Submit Button betätigt $flag_formzeigen = true; } else { // Formulardaten validieren und ggf. Formular nochmals anzeigen $fehler = ""; if (""==$vorname || strlen($vorname)<3) { $fehler.="Sie müssen einen Vornamen eingeben.<br>\n"; [...] if (""!=$fehler) { // Formulardaten unvollständig // Fehler ausgeben und Formular anzeigen echo "<h2>Eingabefehler</h2>\n$fehler"; $flag_formzeigen = true; } else { // Formulardaten ok // Mail senden $message = [...]; _(at)_mail("info_(at)_kunde.de", "Kontakanfrage", $message); } } if ($flag_formzeigen) include("formular_kontaktanfrage.inc"); } ?> Das Formular, welches in der Datei formular_kontakanfrage.inc steht trägt als action "<?php echo $PHP_SELF; ?>". Warum willst Du da noch mit HTTP_POST_VARS() hantieren und aufwendig eine URL generieren? Obiges ist kurzer, klarer und gut zu lesender Code. Wenn ich auf Code treffe, der an irgendeinem der globalen Arrays $HTTP_POST_VARS, $HTTP_GET_VARS oder $GLOBALS herumspielt klingeln bei mir die Alarmglocken und ich schaue zweimal nach, was da zusammengehackt wird. Ulf
php::bar PHP Wiki - Listenarchive