1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[PHP] PHP-Script stellt nicht angegebene Fehlermeldung dar

Dieses Thema im Forum "PHP & Co." wurde erstellt von Justus J., 04.03.10.

  1. Justus J.

    Justus J. Tydemans Early Worcester

    Dabei seit:
    18.12.07
    Beiträge:
    392
    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.
     
  2. _linx_

    _linx_ Kleiner Weinapfel

    Dabei seit:
    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.
     
  3. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Ist !== ein neuer Operator von dem ich noch nichts mitgekriegt hab?
     
  4. Oxy

    Oxy Antonowka

    Dabei seit:
    15.03.07
    Beiträge:
    363
    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.
     
  5. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    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
    
     

Diese Seite empfehlen