Hallo Jürgen,
Ich habe hier eine kleine Web-Applikation in PHP geschrieben, der Server ist ein Apache.
Der Benutzer soll nun in einem HTML-Formular einige Daten eingeben. Diese werden per POST an den Server übermittelt.
Der HTML code sieht etwa so aus:
Nun prüfe ich in PHP ob $_POST['feld'] auch definiert ist:
if ( ! isset ($_POST['feld'])) { // FEHLER meldung ausgeben }
In 99.99% der Fälle ist $_POST['feld'] definiert und mit einem Wert besetzt. (Ein JavaScript Code-Schnipsel prüft beim Submit, daß auch wirklich etwas eingegeben wurde).
Und __manchmal__ passiert es, daß $_POST['feld'] nicht definiert ist, d.h. isset (..) liefert false.
Ich würde vermeiden zu einem input-Feld dieselbe Bezeichnung für id und name auszugeben. Wozu benötigst Du die ID des Feldes?
hmm, copy&pase aus Beispielen.
Die IDs benötigst Du im Script. Hier müssen stehen allerdings andere IDs als in Deinem oben genannten Beispiel: "loginName" bzw. "loginPassword". Wie gesagt, ich bin Problemen mit IDs und Feldnamen oft dadurch erst einmal aus dem Weg gegangen, indem ich sie anders benannt habe.
Ein ähnliches Verhalten ist mir bei meinen Formularen (ich betreibe mehrere MySQL-Datenbanken mit PHP/Javascript über Apache) noch nicht passiert. Mich würde dazu genauer auch das JavaScript Code-Schnipsel interessieren. Denn wenn beim Server nichts ankommt muss das meines Erachtens unter bestimmten Umständen vorher entfernt worden sein.
hier der Javascript-Code
function chkLoginForm() // Alle Felder mussen belegt sein // Führende und folgende Leerzeichen werden entfernt { var fields = new Array ("loginName", "loginPassword");
if(document.loginForm.Button == "cancel") { return true; }
for (var f in fields) { fo = document.getElementById (fields[f]); // führende und folgende Leerzeichen entfernen fo.value = fo.value.replace (/^ */,""); fo.value = fo.value.replace (/ *$/,"");
Kleiner Hinweis mit einer Kopie: http://forum.de.selfhtml.org/archiv/2005/4/t106433/#m659588 var regX = /\s+/g; /* \s : ein einzelnes aus einer vielzahl von moeglichen leerzeichen; \s+ : mindestens ein leerzeichen oder eine squenz von leerzeichen; g : das "global"-flag veranlasst eine suche ueber den gesamten term; */ variationen des gerade gegebenen beispiels: var regX = /\s+$/; // einzelnes leerzeichen oder leerzeichen-sequenz am stringende; var regX = /^\s+/; // einzelnes leerzeichen oder leerzeichen-sequenz am stringanfang;
if (fo.value == "") { alert("Bitte füllen Sie dieses Feld aus."); fo.focus(); return false; } } return true; }
Allerdings verändert das Script nur etwas am Inhalt des Feldes und lässt nicht den Feldnamen verschwinden. Und genau das müsste ja passieren, so dass dieser Name beim Verschicken anschließend nicht mehr auftaucht. Wie sieht der Submit aus? An dieser Stelle würde ich weiter suchen - aber zuerst die Namen wie oben bereits gesagt verändern. Gruß Robert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org