Formular

Thorsten

Erfahrenes Mitglied
Moin,

Hab' mal wieder eine Frage:
3 Dateien (formular.php,f_check.php,f_put.php) existieren. In der 1.Datei ist ein Formular, in der 2.Datei eine Eingabekontrolle und in der 3. werden die Eingabedaten in eine ACCESS-Datenbank gesendet. So, wird ein Textfeld leer gelassen, dann erscheint in der 3.Datei eine Warnung:

Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Feld 'p_adresse.vorname' darf keine Zeichenfolge der Länge Null sein., SQL state S1000 in SQLExecDirect in C:\apache\htdocs\index.php\projekt\dummy\f_put.php on line 27

jetzige Lösung:

<? $vorname=" ";?>
<input type="text" name="vorname" value="<? echo $vorname ?>">

Das setzt zu Beginn ein Leerzeichen ins Textfeld und damit gaukel ich der DB ein Eintrag vor. Doch wenn ich mit der Maus ins Textfeld klicke, dann setzt sich der Cursor um eine Stelle nach rechts, weil ja ein Leerzeichen drin ist und in der darauffolgenden Datei klappt diese Funktion nicht mehr:

<? echo ucfirst($vorname) ?>

Die Variable wird übergeben, doch ucfirst wird nicht akzeptiert.
Kann man das nicht besser lösen? Und wenn die restlichen Daten in DB gesendet wurden und ich wieder aktualisiere, dann werden die Daten nochmal gesendet. Kann ich das mit Cookies lösen oder gibt's dafür auch eine ansdere Lösung?

Thorsten
 
Ich verstehe dein Problem nicht so richtig...
Warum baust du kein Errorhandling ein? Per JavaScript zB.
Wenn Vornamefeld leer dann Meldung und nicht senden...
Oder du setzt in Access einfach einen Standardwert für die Felder, oder du erlaubst einfach NULL als Wert für dieses Feld...
Du könntest natürlich auch prüfen, welches Zeichen das eine eingetragene ist. Ist es ein Leerzeichen, dann eben kein ucfirst(), wenns ein Buchstabe ist, dann schon...

Was genau soll denn geschehen, wenn es leer ist?
 
Hey ,

das erste Problem hab' ich schon gelöst.
Kurz bevor die Daten in die DB gesendet werden frage ich erst ab: if (!$vorname) $vorname = " ";
und das funktioniert...
Mache auch keine JS-Abfrage, denn es gibt auch Textfelder die nicht unbedingt ausgefüllt werden müssen...
Doch wie kann ich verhindern, dass die Daten nochmal gesendet werden, wenn ich den Aktualisierungs-Button klicke?

Thorsten
 
Zurück