2016-10-15 1 views
2

Ich habe die folgende Form Validierung.PHP-Formular-Validierung, um Alarm zu tun, wenn kein Fehler

<?php 

    $error_occured = 0; 
    $error_name = ""; 
    $error_email = ""; 
    $error_contact = ""; 
    $error_comments = ""; 

    if(isset($_POST["tx_name"])) { 

      if(($tx_name == "") || (!preg_match("/^[a-zA-Z ]*$/",$tx_name))) { 
        $error_occured = 1; 
        $error_name = "Please enter a valid name"; 
       } 

      if(($tx_email == "") || (!filter_var($tx_email, FILTER_VALIDATE_EMAIL))) { 
        $error_occured = 1; 
        $error_email = "Please enter a valid email"; 
       } 

      if(($tx_contact == "") || !(is_numeric($tx_contact))) { 
        $error_occured = 1; 
        $error_contact = "Please enter a valid contact number"; 
       } 

      if($tx_comments == "") { 
        $error_occured = 1; 
        $error_comments = "Please enter your message"; 
       } 


     } 

    if(isset($_POST["tx_name"]) && $error_occured = 0) { 
      echo "<script>alert('Hi!');</script>"; 
     } 

?> 

Die Validierung funktioniert gut und wenn es keinen Fehler gibt, sollte es eine Warnung ausgeben. Wenn ich jedoch das Formular ohne Fehler absende, wird die Warnmeldung nicht angezeigt. Wie behebe ich das?

+1

In den letzten Zustand, verwenden Sie '$ ERROR_OCCURED == 0 'Versuchen. Boolean ist auch keine schlechte Idee. –

+0

Danke Yash Mehta, ich verstehe es jetzt. – gosi123

Antwort

1

wie diese

<?php 

$error_occured = 0; 
$error_name = ""; 
$error_email = ""; 
$error_contact = ""; 
$error_comments = ""; 

if(isset($_POST["tx_name"])) { 

     if(($tx_name == "") || (!preg_match("/^[a-zA-Z ]*$/",$tx_name))) { 
       $error_occured = 1; 
       $error_name = "Please enter a valid name"; 
      } 

     if(($tx_email == "") || (!filter_var($tx_email, FILTER_VALIDATE_EMAIL))) { 
       $error_occured = 1; 
       $error_email = "Please enter a valid email"; 
      } 

     if(($tx_contact == "") || !(is_numeric($tx_contact))) { 
       $error_occured = 1; 
       $error_contact = "Please enter a valid contact number"; 
      } 

     if($tx_comments == "") { 
       $error_occured = 1; 
       $error_comments = "Please enter your message"; 
      } 

    if($error_occured != 1) { 
     echo "<script>alert('Hi!');</script>"; 
     } 
} 



?> 
+0

Das funktioniert, danke! Aber ich habe eine Frage, warum es nicht funktioniert, wenn ich 'if ($ error_occured = 0)' 'anstelle von' ($ error_occured! = 1) 'setze? – gosi123

+2

Sie brauchen '=='. Das ist, wie Sie prüfen, ob gleich ist. In meinem Beispiel überprüfe ich, ob das anders ist, weil du 1/0 hast. Wenn es mehr Fehler wie 2, 3, 8 usw. gibt, ist es besser, '==' –

+1

Vielen Dank, ich verstehe jetzt. – gosi123

Verwandte Themen