hi,
» Verbesserungsvorschläge?
Nicht viele. Um etwas zu lösen, braucht man die Aufgabenstellung und zwar ziemlich konkret. Aussagekräftigere Bezeichner tragen ebenso wie Kommentare zum Verständnis bei. Statt $array und $key benenn sie nach ihrer Aufgabe.
Ok, ich kommentiere dass ganze mal nach den Aufgaben:
class InputErrorCheck
{
var $error;
/*
* Aufruf: new InputErrorCheck(array('name','beitrag')); -- Pflichtfelder in array definieren
*
* Wenn es einen POST gab, prüfen ob die im Array definierten Felder Leer oder ausgefüllt sind
* Jedes Feld, dass Leer verschickt wurde, wird mit „Namen“ im Array „error“ gespeichert
* alles andere gibt false zurück
*/
function __construct($RequiredFields)
{
if (is_array($RequiredFields))
{
foreach ($RequiredFields as $PostKey)
{
if (isset($_POST[$PostKey]) AND empty($_POST[$PostKey]))
{
$this->error[] = $PostKey; // Wenn ein Fehler vorliegt, Array „error“ anlegen und mit Werten füllen
}
}
}
else
{
$this->error = false; // Ansonsten false zurückgeben
}
}
/*
* Aufruf: InputErrorCheck::errorMessage($MyErr->error, 'css'); -- prüfen, ob ein Fehler vorliegt
* der zweite Parameter gibt an, welchen Rückgabewert ich benötige, also HTML oder CSS
*
* Wenn „CSS“ gewählt wurde, werden die Namen der betroffenen Felder kommasepariert gespeichert und das letzte Komma entfernt
* das kann man dann für eine CSS-Selektierung nutzen
* Rückgabewert „CSS“ (wenn „name“ und „beitrag“ Leer sind): „#name, #beitrag“
* Ausgabe im HTML (nur wenn ein Fehler voliegt): <style type="text/css">$cssError {borer-color:red}</style>
*
* Wenn „message“ als zweiter Parameter angegeben wird, werden die Namen der betroffenen Felder mit einem Bindestrich getrennt zurück gegeben
* Rückgabewert „message“ (wenn „name“ und „beitrag“ Leer sind): „name - beitrag“
* Ausgabe im HTML (auch nur wenn ein Fehler voliegt): Füllen sie die Felder $RequiredInput aus
*/
public static function errorMessage($EmptyFields,$isKeyOf)
{
if(is_array($EmptyFields))
{
$AllErrorList = '';
foreach ($EmptyFields as $EmptyKey)
{
if ($isKeyOf == 'message')
{
$AllErrorList .= ucfirst($EmptyKey) . ' - ';
}
else if ($isKeyOf == 'css')
{
$AllErrorList .= '#' . $EmptyKey. ', ';
}
}
$AllErrorList = rtrim($AllErrorList, ' - ');
$AllErrorList = rtrim($AllErrorList, ', ');
return $AllErrorList ;
}
else
{
return false;
}
}
}
Und im Script, wo ich dann diese Funktion aufrufe sieht es wie folgt aus:
$MyErr = new InputErrorCheck(array('name','beitrag')); // Pflichtfelder definieren, rückgabewert steht als array in $MyErr->error zur verfügung
if ($MyErr->error) // wenn es einen fehler gibt (an sich werden die Werte in Variablen gespeichert und später ausgegeben)
{
// Pflichtfelder Rot markieren, wenn nicht ausgefüllt
echo '<style type="text/css">' . InputErrorCheck::errorMessage($MyErr->error, 'css') . ' {border-color:#F00;}</style>' ;
// User mitteilen, welche Felder Pflicht sind
echo '<p>Füllen Sie bitte folgende Felder aus: '
. InputErrorCheck::errorMessage($MyErr->error, 'message')
. '</p>';
}
Und schau dir mal PHPDoc an.
Danke für den Hinweis, die PHPDoc kannte ich nicht, benutze lediglich dieses Manual.
mfg
--
echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
array(2) {
["SELFCODE"]=>
string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
["Meaningful"]=>
string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
}
echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
array(2) {
["SELFCODE"]=>
string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
["Meaningful"]=>
string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
}