时间:2021-07-01 10:21:17 帮助过:31人阅读
- <br><!--?php <BR-->class MemberModel extends AppModel <br>{ <br>/** 设置数据库表名称 **/ <br>protected $tableName = "members"; <br>/** <br>* 数据验证规则 <br>*/ <br>protected $verify = array( <br>array("NotEmpty", "username", "用户名不能留空"), <br>array("hasOne", "username", "此用户已经存在,请换另一个用户名称再试一次"), <br>array("NotEmpty", "password", "密码不能留空"), <br>array("NotEmpty", "email", "邮箱地址不能留空"), <br>array("isEmail", "email", "邮箱地址格式不正确"), <br>array("hasOne", "email", "邮箱地址已经被占用") <br>); <br>/** <br>* 覆盖父类添加数据入库的方法 <br>* 先对用户密码进行md5加密,再调用父类的方法写入数据库中 <br>*/ <br>public function create($data) { <br>$data = array_map("addslashes", $data); //将数据中的标点符号(单、双引号)进行安全转义 <br>$data["password"] = md5($data["password"]); <br>return parent::create($data); <br>} <br>} <br>?> <br> <br><strong>二、执行数据写入操作</strong> <br><span style="CURSOR: pointer" onclick="doCopy('code20644')"><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>//执行写入数据的片段... <br>//执行数据入库的操作 <br>private function PostData() { <br>$fields = array("username", "password", "email"); <br>$post = array_map("trims", $_POST); //清除所有数据两边多余的空格 <br>$post = parseHTML($post, $fields); //将指定的字段内容进行清除HTML处理 <br>$data = parseFields($post, $fields); //提取可以写入数据库的字段(防止别人绕过你的页面进行提交一些别有用心的数据) <br>$DB = & M("member"); <br>//进行数据验证 <br>if (!$DB->verify($data)) { <br>//验证失败,取出失败的原因,并提交到模板页面中 <br>$this->assign("error", $DB->getVerifyError()); <br>//把提交过来的数据也提交到模板中(用以实现用户好像没有离开过页面的感觉) <br>$this->assign("default", $post); <br>//渲染注册页面模板 <br>$this->display("/register.html"); <br>} <br>else { <br>//写入数据库 <br>$result = $DB->create($data); <br>//返回布尔型,说明数据写入失败,渲染注册页面模板 <br>if (is_bool($result)) { <br>$this->assign("default", $post); <br>$this->display("/register.html"); <br>} <br>else { <br>//注册成功,渲染注册成功页面模板 <br>$this->assign("username", $data["username"]); <br>$this->display("/reg_success.html"); <br>} <br>} <br>} <br> <br>可执行验证的规则有 <br>NotEmpty 不能为空 <br>Number 只能是整数 <br>isEmail 邮箱地址是否正确 <br>hasOne 是否是唯一(是否重复,是否已经存在) <br>Regex 自定义正则表达式 <br><br>验证的格式为 <br>array(验证方法, 进行验证的字段名称, 验证错误的提示信息) <br>对于正则表达示的验证 <br>array("Regex", "mobile", '/^13\d{9}$/', "用户名不能留空") <br><br>MayFish 下载</li><li><p></p></li><li><p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/321655.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/321655.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">一般在把数据写入数据库之前,先对将要写入的数据进行校验,可以避免出现比较严重的安全问题(例如一般性的SQL注入攻击)。 mayfish 可以灵...</span></p></li><li> </li></ol></pre>