2016-08-08 1 views
0

J'ai un formulaire HTML et j'utilise isset pour vérifier si les variables POST sont définies, puis je les traite (envoyez-les par e-mail ou dans une feuille de calcul Google). Parfois Je reçois le (s) résultat (s) vide (s), comme si la/les variable (s) est/sont nulle ou vide, pas même un espace vide. Pourquoi cela arrive-t-il? Est-ce que je manque quelque chose?

<?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. Les champs peuvent parfois contenir des entrées RTL Arabic. J'utilise également la validation Javascript côté client pour vérifier si les champs sont valides et non vides. Je comprends que la validation côté client peut être inondée car elle est côté client et puisque les navigateurs sont différents les uns des autres, cependant, je ne peux pas comprendre comment les entrées vides retournent encore true de if(isset($_POST[])! Est-ce un comportement normal de isset($_POST[]) lorsque les champs input sont vides? Va vérifier si !empty($_POST[]) être correct et pertinent dans mon cas? .

Répondre