Hi,
Ein beispiel für eine Funktion:
function tsInput($feld) {
echo "<label for="$feld">$feld</label>
<input type="text" name="$feld" id="$feld" class="input_text_klasse" ";if(isset($_POST[$feld]) && $_POST[$feld]!=='')
echo 'value="'.htmlspecialchars($_POST[$feld]).'"';elseif(isset($_POST[$feld]) && $_POST[$feld]=='')
echo 'value="'.htmlspecialchars($_POST[$feld]).'" ';echo ' />';
}
das finde ich viel wie Cheatah viel zu viel und außerdem noch schlecht lesbar und größtenteils überflüssig.
- Es ist unflexibel, den gesamten HTML-Code von PHP zu generieren.
- Die Maskierungen machen den Code schlecht lesbar. [1]
- Die Abfrage auf Existenz ist überflüssig und zudem unsinnig, wenn das label trotzdem ausgegeben wird.
- Die Unterscheidung ob Daten vorhanden sind oder nicht ist überflüssig.
Kurzum, das geht kürzer z.B. so:
~~~php
function tsInput($field,$def='') {
echo 'name="',$field,'" value="';
if(!empty($_POST[$field])) echo htmlspecialchars($_POST[$field]);
elseif($def) echo htmlspecialchars($def);
echo '"';
}
Dies trennt zum einen die Verarbeitung von der Ausgabe und im HTML kann dann ganz flexibel z.B. auch dies angeben:
<dt><label for="strasse">Straße / Hausnummer:</label></dt>
<dd><input type="text" id="strasse" <?php tsInput("Strasse"); ?> /></dd>
Übrigens musst Du htmlspecialchars() wirklich nicht auf fest integrierte Strings ohne kritische Zeichen im Code anwenden.
[1] Statt echo "<label for=\"$feld\">$feld</label>"
würde ich
echo '<label for="',$feld,'">',$feld,'</label>'
schreiben.
freundliche Grüße
Ingo