2016-08-08 10 views
0

Ich habe ein HTML-Formular und ich isset verwenden, um zu überprüfen, ob POST Variablen festgelegt sind, dann verarbeite ich sie (per E-Mail oder an eine Google-Tabelle). Manchmal Ich erhalte leere Ergebnisse, wie wenn die Variable (n) null oder leer ist, nicht einmal ein leeres Leerzeichen. Warum passiert dies? Fehle ich etwas?

<?php if(isset($_POST["name"]) && isset($_POST["tel"])){ 
     $name = $_POST["name"]; 
     $phone = $_POST["phone"]; 
     $message="Name: $name \nPhone : $phone \n"; 

     require 'PHPMailer/PHPMailerAutoload.php'; 

     $mail = new PHPMailer; 
     $mail->setFrom('[email protected]', 'From Name'); 
     $mail->addAddress('[email protected]', 'To Name'); 
     $mail->Subject = 'Message Subject'; 
     $mail->Body  = $message; ?> 

<form enctype="multipart/form-data" action="#" method="post">      
    <input id="name" type="text" name="name" title="Enter your name" placeholder="Name" required >  
    <input id="phone" type="phone" name="phone" pattern="0(6|5)([-. ]?[0-9]{2}){4}" title="Enter your phone" placeholder="Phone" required > 
    <button type="submit" id="submit" name="submit">Send</button>      
</form> 

P.S. Die Felder können manchmal arabische RTL-Einträge enthalten. Ich verwende auch clientseitige Javascript-Validierung, um zu überprüfen, ob die Felder gültig und nicht leer sind. Ich verstehe, dass clientseitige Validierung kann überflutet werden, da es Client-Seite ist und da Browser voneinander unterscheiden, jedoch kann ich nicht herausfinden, wie leere Einträge noch true von if(isset($_POST[]) zurückgeben! Ist das ein normales Verhalten von isset($_POST[]), wenn die Felder input leer sind? Wird überprüft, ob !empty($_POST[]) in meinem Fall korrekt und relevant ist? .

Antwort

Verwandte Themen