PHP Fehlermeldungen in einem Array speichern

DichterNebel

Cadet 4th Year
Registriert
Apr. 2009
Beiträge
66
Hi @all,

hab mal wieder eine newbie frage:

Ich habe ein HTML-Formular, wo Name, Ort und Email etc. eingegeben und per POST an eine
PHP-Seite übermittelt wird.

In dem PHP-Skript sollen nun die eingegeben Daten überprüft werden und bei nicht korrekter Eingabe eine Fehlermeldung kommen.
Soll soll zum Beispiel die Variable $vorname aus mindesten 2 Zeichen und Buchstaben bestehen. Die Befehle hierfür sind mir auch bekannt.

Allerdings sollen die Fehlermeldungen, pro Feld in einem Array gespeichter werden und da weiss ich leider überhaupt wie ich das umsetzten soll.

danke
 
Ich denke, er will eine Fehlerbehandlung bauen, die bei Fehlern eine bestimmte Fehlermeldung zurückliefert.
Diese Fehlermeldungen möchte er dann zentral speichern.
Das simpelste wäre wohl ein assoziatives Array.
z.B.
Code:
function handleError ($errorcode) {

  $error = array(
    'WRONG_FIRSTNAME'  => 'Falscher Vorname.'
    [...]
  );

  echo $error[$errorcode];
}

So könnte man z.B. mit handleError('WRONG_FIRSTNAME') die Fehlermeldung auf dem Bildschirm ausgeben.

Ob es das ist, was er möchte, weiß ich aber auch nicht ^^
 
Mach doch einfach $errors = array(); und dann $errors[] = 'Mein Po juckt';
Kannst auch für jedes Feld speichern: $errors['fieldname'][] = 'Falsch';

Somit kannste beliebige Fehlermeldungen anfügen und diese auch leicht für jedes Feld richtig wieder ausgeben.
 
danke für die antworten.
allerdings kapiere ich es einfach nicht.
brauche ich nicht auch eine if-schleife, die die Werte überprüft, also so :

PHP:
<?php

$vorname =$_POST["vorname"];

    if ( ctype_alpha ($vorname))         
    {
    echo "Vorname ist ok";
    }
    else
    {
    echo "Beim Vornamen sind keine Sonderzeichen erlaubt";
    }
 
?>
 
http://if-schleife.de/ !!!

PHP:
<?php

$vorname =$_POST["vorname"];

    if ( ctype_alpha ($vorname))         
    {
    echo "Vorname ist ok";
    }
    else
    {
    $fehlermeldungen['vorname'] =  "Beim Vornamen sind keine Sonderzeichen erlaubt";
    }
 
?>
 
Zuletzt bearbeitet:
thx@trainmaster für den tip.

allerdings bin ich jetzt gleich etwas übermütig geworden und möchte, das nur eine Ausgabe erfolgt, wenn ein Fehler vorliegt. Ich habe mir folgendes überlegt:

PHP:
<?php

$vorname =$_POST["vorname"];

    if ( ctype_alpha != ($vorname))      // überprüfen auf Sonderzeichen   
    {
    $fehlermeldungen['vorname'] =  "Beim Vornamen sind keine Sonderzeichen erlaubt";
    }      

?>

Allerdings passiert da nix, da kommt im browser nicht mal ne Fehlermeldung.
Wenn ich aber "$fehlermeldungen['vorname'] =" durch ein echo ersetzte gehts.

danke
 
Du solltest dich dringend mit den Grundlagen von PHP auseinandersetzen.

Folgendes ist eine Zuweisung:
PHP:
$fehlermeldungen['vorname'] =  "Beim Vornamen sind keine Sonderzeichen erlaubt";


Das ist eine Ausgabe!
PHP:
echo $fehlermeldungen['vorname'];
 
Ich würde dir auch raten, dich mal ordentlich einzulesen. Muss nicht mal php sein, du machst teilweise grundlegende Fehler, die in jeder Programmiersprache nonsense sind.

PHP:
 if ( ctype_alpha != ($vorname))

Die Bedingung wird immer erfüllt sein, du vergleichst die Variable Vorname mit einer falsch formulierten Funktion. (Frage an die Experten: Wie interpretiert denn PHP sowas? ctype_alpha ist so weder string noch ne Funktion noch ne Variable.)

Richtig wäre hier:

PHP:
if (!ctype_alpha($vorname)) {
}
 
Zuletzt bearbeitet von einem Moderator:
Flup schrieb:
Wie interpretiert denn PHP sowas?

PHP interpretiert "ctype_alpha" in diesem Fall als Konstante. Ein entsprechendes Error-Reporting liefert folgende Meldung:

Code:
Notice: Use of undefined constant ctype_alpha

Daher empfiehlt es sich, immer mit

PHP:
error_reporting(E_ALL | E_STRICT);

zu arbeiten.
 
Zurück
Oben