Vinzenz Mai: *HELP* Formular überprüfen

Beitrag lesen

Hallo,

ich habe ein Formular, dass auf Sonderzeichen / Leere der Felder geprüft werden soll.

  

> <?php  
> $domain = $_POST["domain"];  
  
# muss man ein Domain haben?  
  

> $fax    = $_POST["fax"];  
  
# muss man ein Fax haben?  

Wie suit bereits anmerkte, ist diese Umkopieren überflüssig, ja sogar gefährlich, weil Du die Herkunft der Daten verschleierst. Es ist eine gute Idee, sich dies abzugewöhnen.

» if ($name == "" || $vorname == "" || $email = "" || $domain = "" || $firma = "" || $strasse = "" || $hausn = "" || $plz = "" ||  

> $fax = "" || $land = "" || $intervall = "" || $regeln = "" || $tel = "" || $ort = "" )  
> {  
> echo "<font color='#FF0000'><h3>Es ist ein Fehler aufgetreten!</h3></font>";  
> if ( $name== "") { $name = "Name"; echo "<strong>Name fehlt!<br></strong>"; }  
> if ( $vorname== "") { $vorname = "Vorname"; echo "<strong>Vorname fehlt!<br></strong>"; }  
> if ( $email == "") { $email = "E-Mail"; echo "<strong>E-Mail fehlt!<br></strong>"; }

Verbesserungsvorschlag: Stecke die Schlüssel der $_POST-Arrayelemente, die Du prüfen willst, in ein assoziatives Array, d.h. ein Array von Schlüssel-Wert-Paaren. Verwende als Wert die Angaben, die in Deiner Fehlermeldung auftreten sollen. Hänge für jedes Arrayelement, das nicht den gewünschten Inhalt hat, eine entsprechenden Hinweis an eine Variable, die den Fehlertext enthält. Nutze dazu eine Schleife über das Array.

Ich habe das Problem, dass ich das mit den Sonderzeichen hinkriege. Ich bin "Noob(Anfänger)"

Das war jeder mal, selbst Rasmus Lerdorf.

in PHP und freue mich auf verbesserungen in mein PHP formular ...

Das sieht leider nicht so aus.

  

> if(preg_match('([-A-z0-9]@.üöä)', $formular)) {  
>     echo "<font color='#FF0000'><strong>Es sind nur Zahlen, Bustaben sowie die Sonderzeichen @ und . erlaubt!</strong></font> ";  
> }

Erstens rate ich Dir davon ab, etwas Verstorbenes wie das font-Element aus seiner wohlverdienten Grabesruhe herauszureißen. Zweitens hat der Punkt "." in regulären Ausdrücken eine Sonderbedeutung, wie Dir suit sagte. Du musst deswegen <http://de.selfhtml.org/perl/sprache/regexpr.htm#maskierung@title=den Punkt maskieren>.

Drittens wäre es eine gute Idee, Dein Problem etwas genauer zu beschreiben:

a) Ich verwende folgenden Code (aufs notwendige Minimum gekürzt),
   hier vermutlich die Zeilen mit dem regulären Ausdruck,
b) habe folgende Eingabedaten {verwendete Eingabedaten},
c) erhalte folgende Ausgabedaten: {erhaltene Ausgabedaten},
d) erwarte jedoch diese Daten: {erwartete Ausgabedaten}

Anmerkung: mit den geschweiften Klammern möchte ich Platzhalter kennzeichnen.

Freundliche Grüße

Vinzenz