2016-08-08 2 views
0

私はHTMLフォームを持ち、issetを使用してPOSTの変数が設定されているかどうかを確認して処理します(電子メールまたはGoogleスプレッドシートで送信)。 時々変数が空でも空でも、空のスペースでなくても、空の結果が返ってきます。なぜこうなった?何か不足していますか?

<?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.フィールドにRTLアラビア語のエントリが含まれることがあります。また、フィールドが有効で空でないかどうかを確認するために、クライアントサイドのJavaScriptの検証を使用しています。私は、クライアントサイドの検証ではクライアント側であるため、ブラウザが互いに異なるので、クライアント側の検証がフラッディングされる可能性があることを理解していますが、空のエントリがまだ返されている状態を把握できません。trueからif(isset($_POST[])inputフィールドが空の場合、これは正常な動作ですか、isset($_POST[])ですか?私の場合、!empty($_POST[])が正しく、適切であるかどうかチェックしますか? 。

答えて

2

isset()は、変数が設定されていてNULLでないことをチェックします。

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

それが設定され、空の場合は、ISSET()TRUEを返します。

空の値をチェックするには、empty()を使用する必要があります。

if (isset($_POST['name']) && $_POST['name'] !== '') 
:あなたはに対してチェックするために知っている場合にも価値に対する厳格なチェックを行うことができます

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

関連する問題