0

2つの入力フィールドがあり、ページを開くたびに、開始時にユーザーがどのフィールドにも入力を入力していないため、エラーが表示されます(&エラーは、ユーザー入力がSQLクエリでデータを取得するために使用されるため表示されます)。エラーではなく、ページの最初にこれら2つのフォームを表示したいだけです。Compareボタンを実行するには、両方の入力が必要です。ユーザーがいずれかの入力を入力していない場合、スクリプト作成のために php にリクエストを送信するべきではありません。ボタンは、両方の入力が満たされている場合にのみリクエストを送信する必要があることを意味します。Compareそれ以外の場合は、ユーザーにメッセージを送信する必要がありますType the required fields。これを行う方法?

$trimUser= trim ($_POST['name']);
if(empty($name) || empty($name2))
{
echo "Enter a name ";
}
else if (isset($_POST['name']))
{   
$name=$_POST['name'];
}
else if (isset($_POST['name2']))
{
$name2=$_POST['name2'];
}

&ここに私のフォームがあります:

<form action="index.php" method="POST">
<input class="span3 search-query" placeholder="Type User A" type="text" name="name" id="field"/
<input class="span3 search-query" placeholder="Type User B"  name="name2" type="text"
id="field2"/>
<button class="btn btn-primary" data-loading-text="Loading..." >Compare</button>
4

7 に答える 7

1

Ehs4n は正しいですが、私はより具体的に次のようにします。

if(!empty($_POST['compare'])) {
   #validation
}

ボタンのコードを次のように変更する必要があります。

<button name="compare" value="1" class="btn btn-primary" data-loading-text="Loading..." >Compare</button>

私がこれを行う理由は 2 つあります。

  1. !empty() を使用すると、 $_POST['compare'] が空の場合にエラーが発生しなくなります
  2. $_POST の代わりに $_POST['compare'] をチェックすると、誰かがボタンをクリックした場合にのみエラーが表示されるようになります。

ページに複数のフォームがある場合や、別の場所で $_POST 変数を設定した場合でもエラーが表示されるため、この最後の点が重要です。

于 2013-01-05T10:05:41.603 に答える
1

error_reporting(E_ERROR | E_PARSE);コードの先頭にこれを追加することで、すべてのエラーをすべて取り除きました。しかし、ディスプレイ検証エラーメッセージを確認したい場合は、他の人が言及した方法で簡単に行うことができます。つまり、if($_Post) を使用します。とにかく、助けてくれてありがとう。

于 2013-01-05T13:03:04.210 に答える
1

両方のフィールドが空でないことを検証するには、java スクリプトまたは jQuery を使用する必要があります。例えば..

<form action="index.php" method="POST" onsubmit="return validate()">
  <input class="span3 search-query" placeholder="Type User A" type="text" name="name"     id="field"/>

   <input class="span3 search-query" placeholder="Type User B"  name="name2" type="text"
id="field2"/>

   <button class="btn btn-primary" data-loading-text="Loading..." >Compare</button>
</form>

<script type="text/javascript">
   function validate(){
       var field1 = document.getElementById('field').value;
       var field2 = document.getElementById('field2').value;

        if(field1 != '' && field2 != '' ){
           return true;
         } else{
            alert('Type the required fields');
            return false;
         }
    }
</script>

ここで、両方のフィールドが空でない場合、フォームの送信が許可されます。そしてPHPスクリプトに追加

if(isset($_POST) && !empty($_POST)){
     //code comes here
}

お役に立てば幸いです。

ありがとう

于 2013-01-05T10:48:56.250 に答える
1

リクエストが投稿リクエストかどうかを確認するチェックを追加できます。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     // Place your error checking code here
}
于 2013-01-05T09:28:23.900 に答える
1

post.ie をロードする前に isset($_POST) で if 条件を使用します。

if (isset($_POST)) {
if(empty($name) || empty($name2))
{
echo "Enter a name ";
}
else if (isset($_POST['name']))
{   
$name=$_POST['name'];
}
else if (isset($_POST['name2']))
{
$name2=$_POST['name2'];


}
于 2013-01-05T10:45:55.593 に答える
0

エラーの後で人々を同じページにリダイレクトすることを考えてみてください:

    echo '<script>location.href=\'example.php\'</script>';
于 2015-07-03T12:17:44.620 に答える
0

ifのような句を追加

if($_POST) {
...your validation code
}
于 2013-01-05T09:24:46.427 に答える