[PHP] isset() wird einfach übersprungen - wieso ?

hypostasis

Well-known member
ID: 128663
L
23 April 2006
202
23
ich habe folgenden code

Code:
    if ( ! isset($firma) OR ! isset($name)) {
        // Fehlermeldung, wenn *-Felder nicht ausgefüllt sind
        echo "Sie haben nicht alle Felder ausgefüllt!";
    } else  {
        // Sind die Angaben Korrekt ?
        echo "Sind diese Angaben korrekt ?<br>";
        echo $firma . "<br>";
        echo $name . "<br>";
        echo "Wenn sie einen Fehler gemacht haben, bitten wir Sie "; ?><a href="#" onClick="history.go(-1)">hier</a>  <? echo "zu klicken";
    }

die isset's werden aber übersprungen - wieso ?
ich habe die felder nicht ausgefüllt ( also feld $firma und $name )..

könnte mir jemand helfen ?
 
Die Leerzeichen dürften ziemlich egal sein.

Falls die Daten aus 'nem Formular kommen, sind die beiden Variablen halt immer noch gesetzt, bloss leer. Die Funktion, die Dir sicherlich weiterhelfen wird, ist empty().

Und wenn Du dann eh schon auf den Dokuseiten von PHP bist, lies Dich mal über die Einstellung register_globals schlau und mach Dir Gedanken um die Auswirkungen auf Dein Skript. ;)
 
Naja, ich würde in diesem Fall 'ne 0 als Firma oder Name als ungültigen Eintrag ansehen. ;)

Desweiteren gibt's in meinen Augen keine einfachere Überprüfung, ob ein Formular abgeschickt wurde als:
PHP:
if (!empty($_POST)) {
  // ...
}
 
tleilax schrieb:
Naja, ich würde in diesem Fall 'ne 0 als Firma oder Name als ungültigen Eintrag ansehen. ;)
Naja, ich denke mir, wenn, dann bin ich doch konsequent. "1" ist sicher auch keine Firma, die würde dann aber durchgehen.
 
Ich würde an der Stelle natürlich auch auf mehr als !empty() prüfen, aber es ist ja nunmal nicht mein Skript und ich persönlich benutze != "" halt äußerst selten (um auf den Ausgangspunkt zurückzukommen). Einfach aus dem Grund, dass es 'ne Notice oder Warning schmeisst, wenn der zu überprüfende Wert nicht existiert. Das umgehe ich immer mit empty(), welches keinerlei Warnings/Notices schmeisst, wenn der zu überprüfende Wert nicht definiert ist.

Dazu kommt, dass ich mir das in 'ner Zeit angewöhnt habe, als ich viel zwischen PHP und Java (a.k.a. Hobby und Uni *g*) hin und her geswitcht bin und mir in Java öfter mal String != "" passiert ist. Das kommt nun auch nicht mehr vor... ;)