• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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.
 
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.
 
Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?
 
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.
 
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