アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォームから入力された時、送信先のPHPスクリプトで1bit以上入力されたことを確認する際、どのようにすればいいのでしょうか?

単純に isset($_POST['item']) では何も入力されなくてもtrueが返されます。なのでほかの関数で行いたいのですが、わかりません。(独自関数による処理以外でお願いします。)

A 回答 (4件)

!empty($_POST['item'])


じゃだめ?
    • good
    • 0

フォームから受け取った値は、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の比較」あたりを参照)

よって、前者での比較が厳密であると言えると思います。
    • good
    • 0

どっちを真に持って行きたいのかわからないので


if($_POST['item']=="")
if($_POST['item']!="")
もしくは
if(strlen($_POST['item'])==0)
if(strlen($_POST['item'])>0)
    • good
    • 0

if($_POST['item']==""){


echo "エラー";
}
else{
echo "OK";
}
のif文でいいのでは無いでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!