2017-11-17 7 views
0

私はHTMLフォームを作成したいと思います。ユーザーは自分の名前を入力して送信することができますが、ユーザーは入力した名前を入力しないので、警告メッセージにエラーメッセージが表示されません。ここでブラウザのデバッグツールからフォームの入力値を変更できないようにするにはどうすればよいですか?

がform.php

<form name="myForm" action="b.php" method="post"> 
Name: <input type="text" name="fname"> 
<input type="submit" value="Submit" onclick="return validateForm()"> 
</form> 

<script> 
function validateForm() { 
    var x = document.forms["myForm"]["fname"].value; 
    if (x == "") { 
     alert("Name must be filled out"); 
     return false; 
    } 
} 
</script> 

についての私のコードで、成功提出し、情報が

<?php 
echo $_POST[fname]; 
?> 

しかし、ユーザーの使用ブラウザb.phpこのページb.php に行きますデバッグツール(chromeなど)は、フォーム入力 "name" "id" "class" .etc値を変更できます。この場合、ユーザーがフォーム名の値を変更すると、フォームは名前を記入せずに送信できます。

この問題を解決するにはどのようなアイデア.....または検証にjavascriptを使用するとよい選択ではありませんか?おかげenter image description here

は、ここでは画像の説明サーバー側の検証はこれを処理します

enter image description here

enter image description here

+0

あなたはサーバー側の検証について聞いたことがありますか? – madalinivascu

+0

実際にはすべてのフォームをループすることができます。検証でフォームの名前を指定しないでください。ドキュメント上のすべてのフォームをチェックするだけです。私はこれを個人的にはしません、悪いことはバックエンドの検証だけです。 – Eddie

+0

人がフォームを変更するのを止めることは決してできません。誰でもHTMLを保存し、変更し、代わりにcURLを使って投稿することができ、JSの検証などは役に立たなくなります。 JSの検証は、ユーザーにとって便利なだけです(無効なフィールドなどのヒントを得るためにサーバーにデータを送信する必要はありません)。あなたは常にサーバ上でそれを検証する必要があります。基本的には、クライアントからは何も信じられません。 –

答えて

2

を入力してください。入力値が空であれば、ページをフォームに戻します。