hi,
Möglicherweise ist es sinnvoller, kein vorhandenes Beispiel umschreiben zu wollen, sondern sich anhand der Grundlagen mit der OOP im Allgemeinen vertraut zu machen.
Das stimmt, OOP ist doch komplexer als ich anfangs noch angenommen hatte.
Beispielsweise hat man sein Datenbankhandling in einer Klasse gekapselt und den Rest des Abfragescripts prozedural.
Das ist mit mysqli ja schon grösstenteils gegeben, wenn ich das richtig verstehe.
function h($val) {
$val = isset($val) ? htmlspecialchars($val) : '' ;
return $val;
}
Wenn du eine nicht vorhandene Variable zu übergeben versuchst, gibt es eine E_NOTICE. Wenn das bei dir nicht auftritt, dann ist das gut, denn dann hast du vermutlich alle verwendeten Variablen ordentlich initialisiert.
Liegt das nicht am „isset“? Mein Komplettes Script sieht wie folgt aus:
<?php
error_reporting(E_ALL);
// htmlspecialchars abkuerzen
function h($val) {
return isset($val) ? htmlspecialchars($val) : '' ;
}
// Affenformalität
function aForm($PostVal) {
return isset($_POST[$PostVal]) ? $_POST[$PostVal] : '' ;
}
// Usereingaben ; Zeichen begrenzen auf vorgegebene min- maximale länge
function validminmax($name,$min,$max)
{
return (isset($_POST[$name]) AND !preg_match('/^.{'.$min.','.$max.'}$/', $_POST[$name]))
? "<p>Eingabe zwischen $min und $max Zeichen</p>"
: '' ;
}
// Input type Text zusammenbauen
function InputTextForm($name,$min,$max,$errormsg)
{
$minMaxError = validminmax($name,$min,$max);
// Ausgabe
return "$minMaxError<label for='$name'>$name\n"
. '<input type="text" name="'.$name.'" id="'.$name.'" value="'.h(aForm($name)).'" />'
. "\n</label>\n";
}
// Input type text ; Name, mindest-länge, maximale-länge
echo InputTextForm ('test', 3, 20, 'zu Kurz');
Ich habe jedenfalls festgestellt, dass ich so einen einfachen Formmailer doch sehr Kompakt schreiben kann ; mein letzter versuch schoss mit über 600 Zeilen Code ziemlich übers Ziel hinaus.
mfg