首页 > php代码 > mayfish 数据入库验证代码

mayfish 数据入库验证代码


可执行验证的规则有 

NotEmpty 不能为空 

Number 只能是整数 

isEmail 邮箱地址是否正确 

hasOne 是否是唯一(是否重复,是否已经存在) 

Regex 自定义正则表达式

验证的格式为 

array(验证方法, 进行验证的字段名称, 验证错误的提示信息) 

对于正则表达示的验证 

array("Regex", "mobile", '/^13d{9}$/', "用户名不能留空")

//执行写入数据的片段... 

//执行数据入库的操作 

<?php
private function PostData() {
    $fields = array(
        "username",
        "password",
        "email"
    );
    $post = array_map("trims", $_POST); //清除所有数据两边多余的空格
    $post = parseHTML($post, $fields); //将指定的字段内容进行清除HTML处理
    $data = parseFields($post, $fields); //提取可以写入数据库的字段(防止别人绕过你的页面进行提交一些别有用心的数据)
    $DB = & M("member");
    //进行数据验证
    if (!$DB->verify($data)) {
        //验证失败,取出失败的原因,并提交到模板页面中
        $this->assign("error", $DB->getVerifyError());
        //把提交过来的数据也提交到模板中(用以实现用户好像没有离开过页面的感觉)
        $this->assign("default", $post);
        //渲染注册页面模板
        $this->display("./register.html");
    } else {
        //写入数据库
        $result = $DB->create($data);
        //返回布尔型,说明数据写入失败,渲染注册页面模板
        if (is_bool($result)) {
            $this->assign("default", $post);
            $this->display("/register.html");
        } else {
            //注册成功,渲染注册成功页面模板
            $this->assign("username", $data["username"]);
            $this->display("/reg_success.html");
        }
    }
}
?>

操作代码

<?php
class MemberModel extends AppModel {
    /** 设置数据库表名称 **/
    protected $tableName = "members";
    /** 
     * 数据验证规则
     */
    protected $verify = array(
        array(
            "NotEmpty",
            "username",
            "用户名不能留空"
        ) ,
        array(
            "hasOne",
            "username",
            "此用户已经存在,请换另一个用户名称再试一次"
        ) ,
        array(
            "NotEmpty",
            "password",
            "密码不能留空"
        ) ,
        array(
            "NotEmpty",
            "email",
            "邮箱地址不能留空"
        ) ,
        array(
            "isEmail",
            "email",
            "邮箱地址格式不正确"
        ) ,
        array(
            "hasOne",
            "email",
            "邮箱地址已经被占用"
        )
    );
    /** 
     * 覆盖父类添加数据入库的方法
     * 先对用户密码进行md5加密,再调用父类的方法写入数据库中
     */
    public function create($data) {
        $data = array_map("addslashes", $data); //将数据中的标点符号(单、双引号)进行安全转义
        $data["password"] = md5($data["password"]);
        return parent::create($data);
    }
}
?>


文章网址:http://www.phprm.com/code/9bbacd9d70b92b76f693310746e9e7c2.html

随意转载^^但请附上教程地址。

标签:none

发表留言