hi,
ich sehe da noch viel Redundantes, das über eine Funktion vereinfacht werden könnte, z.B. die Prüfungen auf leere Pflichtfelder und das Umkopieren der POST-Eingaben.
Ich weiss nicht wie ich anders die Vorschau bauen kann. Ich brauch die POST Daten ja mehrfach, der einfachste Weg ist für mich die in einer Variablen zu haben.
Die Email-Validierung ist Murks - altertümlich und lässt gültige Adressen nicht durch.
Ich habe hierzu nur eine Minimalprüfung:
function tsCheckEmail($adr) {
$regEx = '^([^\s@,:"<>]+)@([^\s@,:"<>]+.[^\s@,:"<>.\d]{2,}|(\d{1,3}.){3}\d{1,3})$';
return (preg_match("/$regEx/",$adr,$part)) ? $part : false;
}if($tsPart=tsCheckEmail($tsAdr)) { $tsMail=$tsPart[1]; $tsDomain=$tsPart[2]; }
Kannst du mir bitte DAU sicher verraten, wie man das in eine abfrage packt.
Am besten in Kombination mit tsInput, das mit tsInput habe ich verstanden.
> Anmerkung: der Kunde wollte dann auch noch reine Ziffernfolgen akzeptiert haben, so dass meine Abfrage dann letztlich so aussah:
> ~~~php
if(in_array($key, $tsForm['Telefon']) && $val!=='' && !tsCheckPhone($val) && !preg_match("/^0[0-9]{7,21}$/",$val)) tsAddError('Unerwartetes Nummernformat im Feld "'.$key.'"');
>
also der letzte preg_match auf 0 mit 7-21 folgenden Ziffern hinzugekommen ist.
Auch hier versteh ich nicht wie man das integrieren kann.
mit diesem:
<p><label for="E-Mail">E-Mail Adresse:</label>
<input id="E-Mail" <?php tsInput("E-Mail"); ?> />
</p>
> Die dazugehörige Funktion ist eine universelle:
> ~~~php
function tsInput($field,$def='') {
> echo 'name="',$field,'" value="';
> if(isset($_POST[$field]) && $_POST[$field]!=='') echo str_replace('"','"',htmlspecialchars($_POST[$field]));
> elseif($def) echo str_replace('"','"',htmlspecialchars($def));
> echo '"';
> }
Eins weiss ich jetzt, ich werde mich jetzt erstmal auf ein Tutorial stürzen und lernen, wie man Funktionen baut. :)
Was ich hier aber nicht versteh, warum ersetzt du " mit "?
str_replace('"','"',htmlspecialchars($_POST[$field]));
Das macht doch htmlspecialchars.
Abgesehen davon, dass "Homepage" meiner Erfahrung nach am ehesten von Spam-Bots links liegen gelassen wird, würde ich als Bot bei "display: none;" und plötzlich semantisch korrekter Nutzung von <label> vielleicht doch misstrauisch...
Ja, das ist mir auch später durch den Kopf gegenagen, das muss ich noch überarbeiten.
Danke für die Mühen.
grüße