PLZ und Ort angaben überprüfung...

Gunah

Erfahrenes Mitglied
Moin,
Ich habe folgendes Problem, und zwar wird hier irgendwie nur der 2te String wirklich überprüft:

wenn ich jetzt per Post daten übertrage wie

$_POST['plzort']='1234 M';

dann kommt nur die Fehlermeldung das der Ort aus 2 Buchstaben bestehen muss, nicht aber das die PLZ zu kurz ist wie unten gezeigt...

PHP:
if(!empty($_POST['plzort'])) {
    $plzort = explode(" ",$_POST['plzort'],'2');
    $plz = $plzort['0'];
    $ort = $plzort['1'];
    if(strlen($plz)!='5' && !is_numeric($plz)) $ERROR['plz']='Es wurde keine richtige Postleitzahl angegeben!';
    if(strlen($ort)!='2')                    $ERROR['ort']='Der Ort muss mindestens aus 2 Buchstaben bestehen!';
}


ich hoffe ihr könnt mir helfen...

MfG Gunah
 
PHP:
    $plz = $plzort['0'];
    $ort = $plzort['1'];
in
PHP:
    $plz = $plzort[0];
    $ort = $plzort[1];

tauschen, du greifst auf nummerische Arrays zu und warum Autocasts machen lassen...

aber der Fehler ist wohl eher hier:

PHP:
(strlen($plz)!='5' && !is_numeric($plz))

&& in || tauschen, da der fehler ja sowohl wenn es nicht 5 stellig als auch wenn es nicht nur zahlen sind kommen sollen. Auch hier wieder: Zahlen musst du nicht in Anführungszeichen schreiben.

PHP:
if(strlen($ort)!='2')
würde ich dann noch das != 2 in < 2 tauschen. Immerhin sind laut deiner Fehlermeldung auch 3 oder mehr Buchstaben OK.
 
ah danke der Teil hat mir schon geholfen :D

$plz = $plzort[0];
$ort = $plzort[1];

zum && und || : die beide sollen ja in Abhängigkeit von einander sein... weil sonst wenn nur 1 von beiden richtig ist, würde ja kein ERROR ausgegeben...

MfG Gunah
 
Genau darum geht es ja es soll ENTWEDER wenn die Postleitzahl zu kurz/lang ist ORDER wenn sie nicht nummerisch ist eine Fehlermeldung ausgegeben werden.

Aktuell hast du Kurz/lang UND nicht nummerisch... so ist 1234 zwar zu kurz, aber nummerisch, daher keine Fehlermeldung.
 
Genau darum geht es ja es soll ENTWEDER wenn die Postleitzahl zu kurz/lang ist ORDER wenn sie nicht nummerisch ist eine Fehlermeldung ausgegeben werden.

Aktuell hast du Kurz/lang UND nicht nummerisch... so ist 1234 zwar zu kurz, aber nummerisch, daher keine Fehlermeldung.

du liegst da leider Falsch...
weil jetzt ist es ja UND und UND heißt ist einer der Sachen falsch macht er dort nicht weiter und gibt eine Fehlermeldung aus, bei dem Operator ODER ist es so wie du meinst, das nur eins richtig ist, das er trotzdem weitermacht OHNE Fehlermeldung

MfG Gunah
 
UND bedeutet in Deinem Fall beides falsch/richtig. Du willst aber entweder oder falsch/richtig.

Ist Bedingung 1 ODER 2 nicht erfüllt -> Fehler

Michael hat schon recht.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück