PHPコーディング

PHPのfilter_inputとfilter_var関数

2017年10月30日
ダイソーの洗濯槽クリーナーで、数ヶ月間頑張って開発してきたソフトの発売延期を決定して早一週間・・・
別のソフト開発に取り掛かっています。
今度のソフトはPHPでコーディングしているので、かなり楽に、楽しんでコーディングできます。

PHPとのお付き合いもかなり長いですが、まだまだ知らないことだらけです。かなり前に派遣で行っていた会社で学んだPHPが私のPHPスキルの基盤になっています。その会社で使っていなかった機能や目にしなかった機能はまだまだ沢山あり、毎日が勉強です。時にはなかなな理解できず苦しいこともありますが、分からなかった事、できなかった事ができるようになるのは楽しい事です。

PHPでは未定義変数や未定義配列インデックスから値を読もうとすると、Noticeが発生します。致命的ではないので、何事もなかったように続けて処理ができるため、今まではいつか何とかしようと先延ばしにしていましたが、今回良い機会かと思い、潰すことにしました。

今コーディングしているフォームからPOSTされたデータについてNoticeを潰してみました。その過程で新しく【filter_input】と【filter_var】関数を知りました。

例えば、$_POST['name']が未定義だった場合、これを変数に入れるため、
$strName = $_POST['name'];
とやると、Noticeが発生します。
【isset】関数などで、存在するかどうかをチェックしてから変数に代入しなくてはいけないのですが、これを一発でやってくれる関数が【filter_input】なんだそうです。
$strName = filter_input(INPUT_POST, 'name');
で、値があればその値を、未定義ならNullを返してくれます。Noticeを発生させずに値を読めるわけです。
$_POSTの他に、$_GET、$_COOKIE、$_SERVER、$_ENVで使えます。
PHP: filter_input - Manual

この関数で、一番使いたいと思ったのが、メールアドレスチェックです。
【filter_input】関数の第3引数でフィルタを渡すと、形式チェックをしてくれるというのです。
$strMail = filter_input(INPUT_POST, 'mail', FILTER_VALIDATE_EMAIL);

メールアドレスを正規表現でチェックするのは、とてつもなく大変なんだそうで・・・
ビジネス的には不可能ですね(元が取れないので)。

ということで、【filter_input】関数のお世話になろうと思ったのですが、この関数は多次元配列が扱えないそうなんです。ううん、不細工なソースになるけど仕方ないかなと思ったら、【filter_var】関数でもメールアドレスチェックができるのだそうです。
filter_var($strMail, FILTER_VALIDATE_EMAIL);
メールアドレスでなければFalseを返してきます。
PHP: filter_var - Manual
RFC 822 に沿った形式かどうかをチェックするので、ドコモの【docomo.@example.com】形式ではFalseになります。

今回はこれで十分です。RFC 822 に沿ったアドレスを入力して貰えばいいだけなので、十分です。
コメントの書き込み
コメント
2018年04月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
コメント
ミミ、どうしているかな?
2018-04-17 08:51:41
ミミ、どうしているかな?
たかこ さん
2018-04-16 19:42:12