気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPサンプルコード
  2. 10 view

フォーム入力値の数値チェックがうまくいかないとき

フォームに入力された値が数値かどうかチェックしたい場合、is_int関数でチェックするとうまくいきません。次の例では、テキストボックスに10などの数値を入力しても、「数値が入力されていません」と表示されます。

<html>
<body>
<?php
if (!is_int(@$_POST["num"])) {
    echo "数値が入力されていません";
}
else {
    echo "数値が入力されました";
}
?>
<form method="POST" action="<?php echo $_SERVER["SCRIPT_NAME"]?>">
    <input type="text" value="10" name="num">
    <input type="submit" value="送信">
</form>
</body>
</html>

○実行結果
フォーム入力値の数値チェックがうまくいかない

この原因は、フォームから送信された値は「文字列」だからです。フォームから送信された「10」は見た目は数値ですが形式は文字列の「数値文字列」というタイプの値になります。

上で紹介した数値チェックを機能させるには、数値文字列も含めて数値だと判断するis_numeric関数を使う方法があります。

<html>
<body>
<?php
if (!is_numeric(@$_POST["num"])) {
    echo "数値が入力されていません";
}
else {
    echo "数値が入力されました";
}
?>
<form method="POST" action="<?php echo $_SERVER["SCRIPT_NAME"]?>">
    <input type="text" value="10" name="num">
    <input type="submit" value="送信">
</form>
</body>
</html>

○実行結果(チェック結果)

数値が入力されました

PHPサンプルコードの最近記事

  1. PHPでアラートを表示する

  2. ランダムなパスワードを自動生成する

  3. 配列をランダムに並べ替える(おみくじ・抽選プログラムを例に)

  4. n番目の文字を取得する

  5. 13日の金曜日を表示する

関連記事

PAGE TOP