研修(PHP入力フォームのエラーチェック)
作成した入力フォームに対し、エラーチェックを行う。
以下、抜粋。
■エラーチェック項目と対処法
入力していない:!mb_strlen($test); 文字数が0
○○文字以内で記入:mb_strlen($test) > ○○; 文字数が○○文字以上
半角⇔全角:mb_convert_kana($test, option); 半角全角を変換(optionで指定)
入力文字制限:!preg_match("/^[0-9]+$/", $_POST['f_code']); 0〜9のみ入力可能
チェックボックスにチェックを付けてるかどうか:
チェックボックスの値を配列で受け取る。
count($_POST['hobby']) == 0; 配列の中身が0個だったらエラー
追記
前後のスペース削除:
スペース削除はtrimを用いる。
trimは半角スペースしか削除できない。(全角スペースを消そうとすると文字が消えたり化けたり)
なのでmb_convert_kana($test, "s")で全角スペースを半角スペースに変換し、
trim($test)で全角半角スペースを削除
文字列のhtmlタグ:
入力にbrなどのhtmlタグを入力すると、タグが反映されてしまう。
htmlspecialchars($test); タグがそのまま表示される。
"、'、\などの無効化:
入力に"、'、\などを入力すると、マジッククォート機能で"→\"のように変換されてしまう。
php.iniでマジッククォート機能を全てOffにする。
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off