Formulareingabe / Fehleranzeige mittels PHP

  • Hallo,
    wie kann man folgendes Problem mit PHP lösen: Ich habe in einem Formular Eingabefelder wie "Name", "Vorname" etc..Beim Eingabefeld "Name" wird nichts eingegeben und folgedessen sollte sich der Bezeichner "Name" vor dem Eingabefeld z.B. rot färben, damit der User weiss, da hab ich noch nichts eingegeben.
    Ich habe dies mal versucht, aber konnte diesen Effekt nicht umsetzen. Untenstehend ein Codeschnipsel betreffend Eingabefeld sowie dem PHP-Code:


    Codeschnipsel Eingabefeld:


    <table align="center" cellpadding="5" cellspacing="0" border="1" >
    <tr>
    <td <?php echo $fehl; ?>> Name:</td>
    <td> <input type="text" name="name"
    value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>"
    size="" maxlength=""></td>
    </tr>


    Codeschnipsel PHP:


    <?php
    //Name
    if (isset($_POST['name']) && !empty($_POST['name']))
    {
    echo "Mit Name: ".ucfirst($_POST['name'])."<br>";
    }
    else
    {
    $fehl = "style=\"color:red;\"";
    }


    Im Weiteren sollte nach Eingabe des Feldes "Name", dann die Feldbezeichnung wieder in schwarz erscheinen, da es nun ausgefüllt worden ist. Ich denke, dass es am Link von $fehl happert, aber bin mir nicht sicher?!?


    Danke für jegliche Tipps!!! :)

  • Du solltest alle "falschen" Felder in einem Array speichern, sprich:


    ...
    $fehler[]='email';
    ...
    $fehler[]='name';
    ...
    $fehler[]='wasauchimmer';


    Und dann pro Input mit if checken, ob das passende Feld (name, email, etc) enthalten ist und entsprechend deine Fehlermeldung oder Klasse für die rote Farbe ausgeben.

    My software never has bugs. It just develops random features ... :D
    [FONT="System"]&#63743;
    » DevShack - die Website des freien Webentwicklers Boris ;)

  • Naja, du musst jedes Pflichtfeld, dass man ausfüllen muss, halt überprüfen, z.B.


    PHP
    1. if(empty($_POST['vorname']) OR $_POST['vorname'] == '' OR is_numeric($_POSTvor_name']))
    2. $markerror[] = "vorname" ;


    Das halt für jedes Feld, dass man ausfüllen muss.


    Wenn es keinen Fehler gab, dann existiert das Array $markerror nicht (if(isset($markerror)) und du kannst mit der Verarbeitung weiter machen.


    Ist es doch vorhanden, lässt du die Markierungen entsprechend ausgeben, z.B.


    PHP
    1. <td <?php if (array_key_exists('vorname', $markerror)) echo ' class="roterfehler"'; ?>><input type="text" name="vorname" value="" /></td>

    Ist das klarer? :D

    My software never has bugs. It just develops random features ... :D
    [FONT="System"]&#63743;
    » DevShack - die Website des freien Webentwicklers Boris ;)

  • Hallo Boris,
    danke für die Hinweise, jetzt versuch ich mal diese "Marschrichtung". War mir nicht ganz im Klaren, wo man diese Teile montieren soll...;)