0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

入力フォームの整数判定【PHP】

Last updated at Posted at 2024-05-21

はじめに

bdrccです。
ポートフォリオに掲載する、PHPの制作物を作っています。
今回の記事は、フォームに入力された内容で四苦八苦した経緯を書いていきます。

整数がほしい

パスワードの桁数と個数をフォームに入力し、PHPで実行することで、英数字から作成されたパスワードを、複数個自動生成するWebアプリを作成しています。
数字入力の枠のエラー対応を行いました。

入力されていない 場合

-> HTML の inputタグに required を追加して対応

数値ではない または 負の数 の場合

-> PHP の is_numeric(入力内容) で判定可能

ここまでは順調でした。
問題はここからです。

桁数を6〜10、個数を1〜10としていたのですが、範囲内小数の場合、小数部分を切り上げて自動判断していました・・・。

対応

1.is_int() を使用
->文字列扱いで認識され、正しい自然数でも作動せず
2.is_numeric() and $x==intval($x) を使用
->無事、範囲内整数のみで指定ができました。
3.mb_convert_kana()を使用
->if文の前で変換しておくと、全角数字の場合も判定が可能 他の文字が入っても影響を受けず

<?php 
$num = mb_convert_kana($_POST['num'],"n");
if(is_numeric($num) and 
$num == intval($num) and 
1 <= $num and 
$num <= 10){
// 1から10までの整数だけ通す場合
...
}
?>

終わりに

Qiitaでの投稿の方法、大体わかってきました。
何事もまずはやってみないと、ですね。

引き続き頑張ります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?