PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Formular / Inhalt geht (teilweise) verloren (http://www.selfphp.de/forum/showthread.php?t=21483)

LiLiConsult 15.05.2009 13:45:03

Formular / Inhalt geht (teilweise) verloren
 
Hallo @all,

ein Freund hat mich gebeten, ihm zu helfen und auf seiner Site ein Captcha einzubauen. Das habe ich getan; es funktioniert auch einwandfrei.

Auch das Erfassen der Daten in seinem Formular erfolgt problemlos, die Daten werden übergeben, geprüft und dann per E-Mail an ihn selber und seinen Besucher verschickt.

Es gibt allerdings eine Baustelle, die ich (noch) nicht bewältigt habe. Wenn bei der Prüfung festgestellt wird, dass ein Mussfeld nicht gefüllt ist, oder dass der Sicherheitscode nicht oder falsch eingegeben wurde, sind bei der Rückkehr zum Formular die zuvor getätigten Feldinhalte nicht mehr da.

Den Code habe ich jetzt nicht gepostet, weil ich davon ausgehe, dass es direkt daran nicht liegt. Mit dem gleichen Coding habe ich die Aufgabe auf einer eigenen Site realisiert und dort bleiben die Inhalte erhalten, wenn ich aus dem genannten Grund zum Formular zurückkehren muss.

Unterschiede zwischen meiner Site und der Webpräsenz meines Freundes: Mein Freund arbeitet mit Frames und hat recht viel Java-Code eingebunden. Mit Frames arbeite ich schon seit Jahren nicht mehr und Java verstehe ich überhaupt nicht.

Kann es sein, dass die Inhalte alleine wegen den genannten Unterschieden (Frames, Java) verloren gehen ? Auf was muss ich achten ?

Für jeden konstruktiven Beitrag bedanke ich mich schon vorab.

Gruß
Wolfgang

Indyk 15.05.2009 13:55:03

AW: Formular / Inhalt geht (teilweise) verloren
 
Hallo Wolfang,

a) Java != Javascript
b)

Das die Daten nicht angezeigt werden ist ganz normal, warum sollten Sie auch angezeigt werden?

Eine gängige Methode ist es das Formular an sich selbst zu schicken und bei Fehlerhafte Eingabe den Inhalt der Verschickten Daten in den value Attributen der Felder des Formulars auszugeben.

Vermutlich hast du das bei dir eingebaut und bei Ihm ist es nicht so. Aber ohne Code können wir dir trotzdem nicht wirklich helfen sondern nur Vermutungen anstellen was uns zeit kostet und dir vermutlich nicht viel weiterhilft.

Beispiel
PHP-Code:

$valueName = (isset($_POST['name'])?$_POST['name']:'');
// if isset($_POST) $valueName = $_POST['name'] else $valueName = ''
echo '<input type="text" name="name" value="' .$valueName'" />'

ungetestet

Distructive 15.05.2009 18:42:29

AW: Formular / Inhalt geht (teilweise) verloren
 
Hi ich benutze die direkte variante, die auch möglich ist:

PHP-Code:

<div><input type="text" name="username" value="<? echo $_POST['username']?>" /></div>


Ich denke bei dieser Variante hast du den vorteil, dass du das formularelement nicht per echo ausgeben musst, was gerade bei größeren css formatierungen schnell unübersichtlich wird.

urvater 16.05.2009 16:42:08

AW: Formular / Inhalt geht (teilweise) verloren
 
PHP-Code:

<?php
$valueName 
= (isset($_POST['name'])?$_POST['name']:'');
// if isset($_POST) $valueName = $_POST['name'] else $valueName = ''
?><input type="text" name="name" value="<?php echo $valueName?>" />';

Geht auch ohne das Formfeld im Echo zu benutzen. ;)

Indyk wollte eigentlich nur die Vermutung äussern, daß du bei dir eine solche Ausgabe drin hast, die bei deinem Kumpel fehlt.
Da anscheinend nur ein Teil nicht übernommen wird wurde dies vermutlich nur in einigen Formfeldern vergessen oder die Variable für den Echo falsch geschrieben.

PS: Die von Indyk vorgestellte Methode ist sauberer für die Anzeige als die von dir genutzte.
Wird das Formular das erste Mal aufgerufen gibt es kein $_POST['username']. Somit wäre schon einmal der erste Fehler/Warnung im Script vorhanden.

Domi 17.05.2009 23:33:57

AW: Formular / Inhalt geht (teilweise) verloren
 
Zitat:

Zitat von urvater (Beitrag 127751)
Wird das Formular das erste Mal aufgerufen gibt es kein $_POST['username']. Somit wäre schon einmal der erste Fehler/Warnung im Script vorhanden.

ist nur ein notice, sollte aber trotzdem vorher auf isset geprüft werden um jegliche "Fehler-trigger" zu vermeiden.

Gruß
Domi


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:05:41 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.