PHPのフォームの入力チェックを簡潔化する!

Posted in PHP

どうも、isamです。

前回のサニタイズに引き続き、今回はフォームの入力値の入力チェックを簡潔化する関数を紹介します。
使い方はブロックを参照!

/**
 * フォームの値をルールに従い走査しエラーがあった場合、エラーキー配列を返す
 *
 * <code>
 * $key_func = array(
 *     'id' => array("is_numeric" => array("%%_val_%%", array('error' => "数字以外の文字が入力されています"))),
 *     'pid' => array("is_numeric" => array("%%_val_%%", array('error' => "数字以外の文字が入力されています")))
 * );
 *
 * $error = queryValidateCheck($_REQUEST, $key_func);
 * </code>
 *
 * @param   $request       バリデイトを適用する配列
 * @param   $key_func      バリデイトをのルールを定義しているキーと関数の配列
 * @return array
 */
function queryValidateCheck($request, $key_func = array()) {
    $error = array();
    foreach ($request as $key => $val) {
        if (is_array($val)){
            if (isset($key_func[$key])) {
                $error[$key] = queryValidateCheck($request[$key], $key_func[$key]);
            }
        } else {
            if (isset($key_func[$key])) {
                foreach ($key_func[$key] as $func => $params) {
                    $new_params = array();
                    foreach ($params as $param) {
                        if (!is_array($param)) {
                            if ("%%_val_%%" == $param) {
                                $param = $val;
                            }
                            $new_params[] = $param;
                        } else {
                            $error_str = $param['error'];
                        }
                    }
                    if (!call_user_func_array($func, $new_params)) {
                        $error[$key] = $error_str;
                    }
                }
            }
        }
    }
    return $error;
}
Posted by isam   @   31 5月 2010

Like this post? Share it!

RSS Digg Twitter StumbleUpon Delicious Technorati

0 Comments

No comments yet. Be the first to leave a comment !
Leave a Comment

Name

Email

Website

Previous Post
«
Next Post
Powered by Wordpress   |   Lunated designed by ZenVerse