Die drei if, mit denen du abfragst, ob es keinen Fehler gibst, kannst du in eine packen. Sie dir den Operator OR an. Dann würde ich persönlich dort eine else machen, die einen Fehler ausgibt, falls es einen hat.
Ergebnis 1 bis 5 von 5
- 04.03.2010, 20:04 #1
PHP-Script stellt nicht angegebene Fehlermeldung dar
Hallo!
Ich habe ein Formular mit HTML erstellt und als Aktion beim Klick auf den 'Senden'-Button eine PHP Datei definiert.
Das ist jetzt das erste Mal, dass ich mich richtig mit PHP beschäftige, deshalb kenne ich mich auch noch nicht so aus.
Ich habe nun bestimmte Fehlermeldungen festgelegt, die aber nicht angezeigt werden.
Hier mein Code:
Ich hoffe ihr könnt mir helfenCode:<?PHP extract($_POST); $bericht = stripcslashes(nl2br($bericht)); $header = "From: $email\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html;\n"; $header .= "X-Mailer: PHP/".phpversion(); $empfaenger = "xxx"; $subject = "Testleser Formular"; $error[0] = false; // noch kein fehler if ($_POST["agbs"] == ""){ //exemplarisch für alle anderen wird überprüft ob im Feld "abteilung" etwas übergeben worden ist $error_text[0] = "Um ein Testleseexemplar zu erhalten, musst du unsere Bedingungen akzeptieren."; // wenn nicht wird ein text definiert der dann irgendwo ausgegeben werden kann $error_text[1] = "Nein"; $error[0] = true; // und natürlich brauchen wir noch eine variable die an der wir erkennen wo der fehler aufgetreten ist } $error[2] = false; // noch kein fehler if ($_POST["vorname"] == "") if ($_POST["nachname"] == "") if ($_POST["email"] == "") { $error_text[2] = "Du hast nicht alle Felder ausgefüllt"; $error[2] = true; } $error[3] = false; if ($_POST["emailbestaetigt"] == "$email") $error_text[3] = "Die beiden eMail-Adressen sind nicht identisch"; $error[3] = true; echo "<center><u><b>Sie haben folgende Angaben gemacht:</u><p> "; $message = " <table border='0' cellspacing='0' cellpadding='10' style='width:700px;margin:50px auto;border:1px solid #7F7F7F'> <colgroup> <col style='width:200px'></col> <col></col> </colgroup> <tr> <td>Name</b></td><td>$vorname $name</td> </tr> <tr> <td>Geburtsdatum</b></td><td>$Tag. $Monat $jahr</td> </tr> <tr> <td>eMail</b></td><td>$email</td> </tr> <tr> <td>Newsletter</b></td><td>$journal $error_text[1] </td> </tr> </table> "; echo "$message<p>"; echo $error_text[0]; // Ausgabe bei nicht akzeptierten Bedingungen echo $error_text[2]; // Ausgabe bei nicht ausgefüllten Feldern echo $error_text[3]; // Ausgabe bei nicht identischen eMail-Adressen if($error[2] !== true){ // Befehl, damit eMail nicht verschickt wird, falls nicht alle Angaben gemacht wurden if($error[0] !== true){ // Befehl, damit eMail nicht verschickt wird, falls nicht alle Angaben gemacht wurden if($error[3] !== true){ // Befehl, damit eMail nicht verschickt wird, falls nicht alle Angaben korrekt sind $send = @mail($empfaenger, $subject, $message, $header); if($send) { echo "versendet"; } else { echo "nicht versendet"; } }}} ?>
Justus J.
- 05.03.2010, 08:04 #2
- 05.03.2010, 09:45 #3
Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?
1. Axiom der Quantenphilosophie: Nichts genaues weiß man nicht.
Dir gefällt dieser Beitrag? --> Flattr mich
- 05.03.2010, 09:52 #4
- 05.03.2010, 17:53 #5
dieser Operator führt zusätzlich eine Typprüfung durch (ich würde diesen zwingend empfehlen
).
bspw.:
Code:$arg01 = 1; $arg02 = '1'; var_dump($arg01 == $arg02); // evaluates to TRUE var_dump($arg01 === $arg02); // evaluates to FALSE $arg01 = 1; $arg02 = TRUE; var_dump($arg01 == $arg02); // evaluates to TRUE var_dump($arg01 === $arg02); // evaluates to FALSE



Zitieren


