• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[PHP] PHP-Script stellt nicht angegebene Fehlermeldung dar

Justus J.

Tydemans Early Worcester
Registriert
18.12.07
Beiträge
395
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:
Code:
<?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";  
    }  
}}}


?>

Ich hoffe ihr könnt mir helfen
Justus J.
 

_linx_

Kleiner Weinapfel
Registriert
04.01.09
Beiträge
1.125
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.
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?
 

Oxy

Antonowka
Registriert
15.03.07
Beiträge
363
Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?

Ich denke das wird fer Fehler sein xD , also nein du hast nix verpasst es soll wohl " != " heissen.

Und was Linx sagt stimmt soweit auch , es ist dann nur etwas unübersichtlicher , finde ICH.
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?

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