dedlfix: leeres formularfeld

Beitrag lesen

Tach!

das mit den umlauten hör ich heute auch das erste mal. was spricht dagegen ?

Neben der besseren Lesbarkeit die Nichtnotwendigkeit, wenn du die verwendete Zeichenkodierung korrekt angegeben hast.

$name = htmlspecialchars ($_GET["vname"]);
wenn ich mit echo die variable ausgebe hat sie den korekten inhalt.

Escaping für den HTML-Kontext bei der _Eingabe_? Fehler im Konzept.
sry - verstehe ich nicht.

"Eingabe - Verarbeitung - Ausgabe" heißt ein sehr einfaches Prinzip, das sich bei der Strukturierung bewährt hat. Wenn Daten bereits während der Eingabe oder Verarbeitung für eine bestimmte Ausgebe aufbereitet sind (sprich: zum Beispiel zusätzliche Zeichen für die Maskierung enthalten), kann sich das ungünstig auf die Verarbeitung auswirken, weil diese dann erschwert wird, wenn man nicht mit Rohdaten arbeiten kann. Das Escaping für den jeweiligen Ausgabe-Kontext sollte daher erst kurz vor die Übergabe in diesen Kontext erfolgen. Dann sieht man auch gleich, dass es nicht vergessen wurde.

variablen ersetzung:
werde ich mir einprägen - danke.
du meinst das so oder :
$text = "Dein name ist ";
echo $text, $name;

So kann man das machen, aber die Variable $text bringt für das kleine bisschen Text keinen Vorteil.

echo "Dein name ist ", $name;

Wenn die Texte länger werden und die Einsetzungen mitten in ihnen erfolgen sollen, bringt (s)printf() einen Übersichtlichkeitsvorteil.

( empty ($_GET['vname']) == TRUE )
hab das so verstanden : ist vname empty true (also ist es wahr das vname leer ist) dann mache folgendes. ist aber anscheinend nicht so und ich denke ich verstehe da mal wieder was falsch.

Das Ergebnis von empty() ist bereits true oder false. Es noch einmal dagegen zu testen, nur um wieder true oder false zu erhalten ist sinnlos. Verwende var_dump(), überzeug dich damit selbst, was das jeweilige Ergebnis ist.

var_dump(empty($_GET['vname']));
var_dump(empty($_GET['vname']) == true);

dedlfix.