2016-05-06 19 views
0

私はfromを作成し、PHPで検証しています。すべての検証が完了したら、フォームを非表示にして成功メッセージを表示したい。しかし、一度すべてvaldiation、私は、データベースへのすべてのエントリを提出する同じロジックで検証と成功メッセージ付きのPHPフォーム

 <?php 
// defining variables and set to empty values 
$nameErr = ""; 
$emailErr = ""; 
$numberErr = ""; 

$name = ""; 
$email = ""; 
$number = ""; 
$comment = ""; 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (empty($_POST["name"])) { 
    $nameErr = "Name is required"; 
    } else { 
    $name = test_input($_POST["name"]); 
    // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
     $nameErr = "Only letters and white space allowed"; 
    } 
    } 

    if (empty($_POST["email"])) { 
    $emailErr = "Email is required"; 
    } else { 
    $email = test_input($_POST["email"]); 
    // check if e-mail address is well-formed 
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     $emailErr = "Invalid email format"; 
    } 
    } 

    if (empty($_POST["number"])) { 
    $numberErr = "Contact Number is required"; 
    } else { 
    $number = test_input($_POST["number"]); 
    // check if number only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$number)) { 
     $numberErr = "Only letters and white space allowed"; 
    } 
    } 

    if (empty($_POST["comment"])) { 
    $comment = ""; 
    } else { 
    $comment = test_input($_POST["comment"]); 
    } 

    function form_submission_success(){ 
    echo 'Form submitted'; 
    } 

    function submit_database(){ 

    } 


    form_submission_success(); 
} else { 
?> 

     <p><span class="error">* required field.</span></p> 
      <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
       Full Name: <input type="text" name="name" value="<?php echo $name;?>"> 
       <span class="error">* <?php echo $nameErr;?></span> 

       <br><br> 

       Contact E-mail: <input type="text" name="email" value="<?php echo $email;?>"> 
       <span class="error">* <?php echo $emailErr;?></span> 

       <br><br> 

       Contact Number: <input type="text" name="number" value="<?php echo $number;?>"> 
       <span class="error">* <?php echo $numberErr;?></span> 

       <br><br> 

       Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea> 
       <br><br> 

       <input type="submit" name="submit" value="Submit"> 
      </form> 

      <?php } ?> 

:フォームは常に隠れていると、成功メッセージが表示されない理由はあなたが私を伝えることができ、私が使用していたコードです完了です。

+0

はあなたがすべてのエラーを取得しているかどうかを確認するためにエラー報告をオンにしましたか? – Epodax

+0

はい、エラーはありません –

+0

@GuruMadozlii入力した値を教えてください。あなたのコードをチェックし、すべてのフィールドを入力して「フォーム提出」を表示しています。 –

答えて

0

あなたはより多くの変更を必要とするが、あるかもしれ、これを試してみてくださいは、基本的な考え方かもしれ

<?php// defining variables and set to empty values 
$nameErr = ""; 
$emailErr = ""; 
$numberErr = ""; 
$name = ""; 
$email = ""; 
$number = ""; 
$comment = ""; 
function test_input($data) { 
$data = trim($data); 
$data =stripslashes($data); 
$data = htmlspecialchars($data); 
return $data; 
} 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
function form_submission_success($msg = 'Form submitted'){ 
echo $msg.'<br>'; 
} 
if (empty($_POST["name"])) { 
$nameErr = "Name is required"; 
form_submission_success($nameErr); 
} else { 
$name = test_input($_POST["name"]); 
// check if name only contains letters and whitespace 
if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
$nameErr = "Only letters and white space allowed"; 
form_submission_success($nameErr); 
} 
} 
if (empty($_POST["email"])) { 
$emailErr = "Email is required"; 
form_submission_success($emailErr); 
} else { 
$email = test_input($_POST["email"]); 
// check if e-mail address is well-formed 
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
$emailErr = "Invalid email format"; 
form_submission_success($emailErr); 
} 
} 
if (empty($_POST["number"])) { 
$numberErr = "Contact Number is required"; 
form_submission_success($numberErr); 
} else { 
$number = test_input($_POST["number"]); 
// check if number only contains letters and whitespace 
if (!preg_match("/^[a-zA-Z ]*$/",$number)) { 
$numberErr = "Only letters and white space allowed"; 
form_submission_success($numberErr); 
} 
} 
if (empty($_POST["comment"])) { 
$comment = ""; 
} else { 
$comment = test_input($_POST["comment"]); 
} 
function submit_database(){ 
} 
} else { 
?> 
<p><span class="error">* required field.</span></p> 
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
Full Name: <input type="text" name="name" value="<?php echo $name;?>" 
<span class="error">* <?php echo $nameErr;?></span> 
<br><br> 
Contact E-mail: <input type="text" name="email" value="<?php echo $email;?>"> 
<span class="error">* <?php echo $emailErr;?></span> 
<br><br> 
Contact Number: <input type="text" name="number" value="<?php echo $number;?>"> 
<span class="error">* <?php echo $numberErr;?></span> 
<br><br> 
Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea> 
<br><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 
<?php } ?> 
+0

まだ動作していないので、検証済みのPHPフォームの例を教えていただけますか? –

+0

@ GuruMadozlii多くの例があります。参考までに参照してください。http://www.w3schools.com/php/php_form_complete.aspまたはhttp://www.w3schools.com/php/showphp.asp?filename= demo_form_validation_complete –

関連する問題