0

テストと試行メソッドで PHP を学習しようとしています。私は isset() に苦労しています。ここに私が持っているコードがあります:

<form action="validate.php" method="POST">
  <label title="User Input"> Custom Header Name</label>
  <input type="text" name="user_input">
  <button  type="submit" id="pageName">Submit</button>
</form>

PHPファイルは次のとおりです

<?php
  if(isset($_POST['user_input']))
    {
     echo "Input Is Set";
    } else{
           echo "Not Yet Set";
          }
?>

私は両方のケース(空の入力または入力された入力)の結果として、最初のメッセージ「入力が設定されています」を取得しています!なぜこれが起こっているのか教えてください。

4

5 に答える 5

2

これは、フォームが入力されuser_inputissetいない場合でも一度フォームが送信されるためです。エラーを回避するには、!emptyチェックを追加するだけです

if(isset(($_POST['user_input'])) && (!empty($_POST['user_input'])))
于 2013-05-27T22:39:40.850 に答える
1

isset の代わりに、これを行うことができます。

<?php
  if(isset($_POST['user_input']))
    {
    if (!empty($_POST['user_input'])) {
      echo "Input Is Set";
    } else {
      echo "Input is empty!";
    }
  } else{
   echo "Not Yet Set";
  }
?>

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

于 2013-05-27T22:40:46.667 に答える
0

次のようなものを試すことができます

<?php
  if($_POST['user_input'] != '')
    {
     echo "Input Is Set";
    } else{
           echo "Not Yet Set";
          }
?>

または他の使用if (!empty($_POST['user_input'])

値が保持されているかどうかを確認します。それはうまくいくはずです

于 2013-05-27T22:39:34.020 に答える
0

設定されているかどうかを確認しますが、空かどうかも確認する必要があります。

短縮版:

<?php
  echo isset($_POST['user_input']) && !empty($_POST['user_input'] ? "Input is set" : "not set";
?>
于 2013-05-27T22:42:47.693 に答える