• ベストアンサー

POSTされた時に入力されているか確認するには?

フォームから入力された時、送信先のPHPスクリプトで1bit以上入力されたことを確認する際、どのようにすればいいのでしょうか? 単純に isset($_POST['item']) では何も入力されなくてもtrueが返されます。なのでほかの関数で行いたいのですが、わかりません。(独自関数による処理以外でお願いします。)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

フォームから受け取った値は、PHPでは全て文字列として見なされます。(確か) そして$_POST["xxx"]という変数としては利用されている為、isset()、is_null()は利用出来ません。 なので以下のどちらかで可能になります。(他にもあるかも) ・if (!strcmp($_POST["abc"], "")) { } ・if (empty($_POST["abc"])) { } しかしempty()の説明にある通り文字列として「0」が入力されたとしても 空だと認識されてしまいます。 http://jp.php.net/manual/ja/types.comparisons.php (「表 R.1. $x PHP関数での$xの比較」あたりを参照) よって、前者での比較が厳密であると言えると思います。

その他の回答 (3)

  • ma2shin
  • ベストアンサー率41% (69/167)
回答No.4

if($_POST['item']==""){ echo "エラー"; } else{ echo "OK"; } のif文でいいのでは無いでしょうか?

  • maguro999
  • ベストアンサー率21% (59/273)
回答No.3

どっちを真に持って行きたいのかわからないので if($_POST['item']=="") if($_POST['item']!="") もしくは if(strlen($_POST['item'])==0) if(strlen($_POST['item'])>0)

noname#77845
noname#77845
回答No.1

!empty($_POST['item']) じゃだめ?

関連するQ&A