2017-04-24 17 views
2

データを取得するPHPファイルが1つあり、$ _POSTメソッドを使用して表示します。私は、PHPを使用してフォームの入力を検証する方法を知っています:入力が検証されないときにフォームの提出を停止する(1ページのPHPフォームとプロセッサ)

私はデータを送信するフォームを避ける方法を知りません。このif文に新しい行を追加しますか?私はヘッダーと関係がある:このポストの場所 - Stop Submit With Empty Input Values Using PHPを見ましたが、フォームとプロセッサーが1つのファイルになっているため、これは私のためにはうまくいかないと思います。私はこれが簡単だと確信していますが、Webをブラウズするときに何か答えを見つけるのは非常に難しいです。任意の助けをありがとう:)

答えて

1

これはフロントエンド(クライアント側の検証)ですので、PHP(サーバー側)でもフォームを検証する必要があります。しかし、html5とjsを使用すると、検証されていない場合はフォーム送信を防ぐことができます。

PHPの場合、サーバー側で検証する必要があります。有効でない場合は、データベースに保存せず、ユーザーをリダイレクトしないでください。いくつかのエラーメッセージを返し、より多くのデータ/必須フィールドを尋ねます。

例:

$error = []; 

if ($offer['year'] < 2014) { 
    $error['year'] = 'must be later than 2014'; 
} 
... 

if (count($error)) { 
    echo "your error msg here" 
} else { 
    $db->insert('formtable', $form); 
} 

$(document).ready(function() { 
 
    // loader (after submit) 
 
    $('button[type="submit"]').click(function(e) { 
 
    let formValidity = $('#myform')[0].checkValidity(); 
 
    if (formValidity) { 
 
     console.log('Submitted yep!'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<form id="myform"> 
 
    <input type="text" value="" required> 
 
    <button type="submit" value="submit">SUBMIT</button> 
 
</form> 
 
<div id="other"> 
 
    Trigger the handler 
 
</div>

0

ここでは、PHPを使用してフォームを検証するための簡単な例です。

PHPの:

$con = mysqli_connect("localhost","root","","db"); 

if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

if (isset($_POST['submit'])) { 

    if (isset($_POST['submit'])) { 
     $fn = mysqli_real_escape_string($con,$_POST['fn']); 
     $ln = mysqli_real_escape_string($con,$_POST['ln']); 
     $tnc = mysqli_real_escape_string($con,$_POST['tnc']); 

     // validation 
     if (!empty($fn && $ln)) { 
      if ($tnc == 1) { 
       echo "Succeed.!"; 
      }else{ 
       echo "You must Accept Out T&C.!"; 
      } 
     }else{ 
      echo "Please fill the required field.!"; 
     } 
    } 
} 

HTML:

<form action="" method="post"> 
    <input type="text" name="fn" /> 
    <input type="text" name="ln" /> 
    <input type="checkbox" name="tnc" value="1" >Accept T&C.</input> 
    <input type="submit" name="submit" /> 
</form> 

これは正確に何をしたいかもしれません。

関連する問題