2016-08-08 4 views
0

HTML 양식이 있고 isset을 사용하여 POST 변수가 설정되어 있는지 확인한 다음 전자 메일 또는 Google 스프레드 시트를 통해 처리합니다. 가끔 변수가 null이거나 비어 있거나 빈 공간이 아닌 것처럼 공백 결과를받습니다. 왜 이런 일이 일어나는 걸까요? 내가 놓친 게 있니?

<?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. 필드에 때로는 RTL 아랍어 항목이있을 수 있습니다. 또한 필드가 유효하고 비어 있는지 확인하기 위해 클라이언트 측 Javascript 유효성 검사를 사용하고 있습니다. 브라우저 측은 서로 다르므로 클라이언트 측 유효성 검사가 클라이언트 측에 넘쳐 흐를 수 있음을 이해합니다. 그러나 공백 항목이 여전히 에서 if(isset($_POST[])으로 반환되는 방식을 파악할 수 없습니다! input 필드가 비어있을 때 정상적인 동작이 isset($_POST[])입니까? 내 경우에 !empty($_POST[])이 올 바르고 관련이 있는지 확인 하시겠습니까? .

답변

2

isset()은 변수가 설정되어 있고 NULL이 아닌지 확인합니다. 이 설정하고 비어있는 경우

http://php.net/manual/en/function.isset.php

이는 isset()는 TRUE를 반환합니다.

빈 값을 확인하려면 empty()를 사용해야합니다. 당신이 확인하는 것을 알고있는 경우

http://php.net/manual/en/function.empty.php

또한 값에 대한 엄격한 검사를 수행 할 수 있습니다에 대한 :

if (isset($_POST['name']) && $_POST['name'] !== '')