日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

飞鸽传书mayfish 数据入库验证

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 飞鸽传书mayfish 数据入库验证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我飛鴿傳書專門為大家轉(zhuǎn)載最新技術文檔,謝謝!來自 YAGAS?的原創(chuàng)作品:

?

一般在把數(shù)據(jù)寫入數(shù)據(jù)庫之前,先對將要寫入的數(shù)據(jù)進行校驗,可以避免出現(xiàn)比較嚴重的安全問題(例如一般性的SQL注入攻擊)。

mayfish 可以靈活的自定義將要執(zhí)行寫入的數(shù)據(jù)內(nèi)容的校驗規(guī)則,以減少開發(fā)人員手動對每一個字段的數(shù)據(jù)進行校驗的麻煩。

例子如下:

一、首先定義數(shù)據(jù)庫模塊

?1?<?php
?2?class?MemberModel?extends?AppModel
?3?{
?4?????/**?設置數(shù)據(jù)庫表名稱?**/
?5?????protected?$tableName?=?"members";
?6?????
?7?????/**
?8??????*?數(shù)據(jù)驗證規(guī)則
?9??????*/
10?????protected?$verify?=?array(
11?????????array("NotEmpty",?"username",?"用戶名不能留空"),
12?????????array("hasOne",???"username",?"此用戶已經(jīng)存在,請換另一個用戶名稱再試一次"),
13?????????array("NotEmpty",?"password",?"密碼不能留空"),
14?????????array("NotEmpty",?"email",????"郵箱地址不能留空"),
15?????????array("isEmail",??"email",????"郵箱地址格式不正確"),
16?????????array("hasOne",??"email",?????"郵箱地址已經(jīng)被占用")
17?????);
18?????
19?????
20?
21?????/**
22??????*?覆蓋父類添加數(shù)據(jù)入庫的方法
23??????*?先對用戶密碼進行md5加密,再調(diào)用父類的方法寫入數(shù)據(jù)庫中
24??????*/
25?????public?function?create($data)?{
26?????????$data?=?array_map("addslashes",?$data);??//將數(shù)據(jù)中的標點符號(單、雙引號)進行安全轉(zhuǎn)義
27?????????$data["password"]?=?md5($data["password"]);
28?????????return?parent::create($data);
29?????}
30?????
31?????
32?}
33??>

?

二、執(zhí)行數(shù)據(jù)寫入操作

?1?????//執(zhí)行寫入數(shù)據(jù)的片段...
?2?
?3?????//執(zhí)行數(shù)據(jù)入庫的操作
?4?????private?function?PostData()?{
?5?????????$fields?=?array("username",?"password",?"email");
?6?????????$post???=?array_map("trims",?$_POST);?//清除所有數(shù)據(jù)兩邊多余的空格
?7?????????$post???=?parseHTML($post,?$fields);??//將指定的字段內(nèi)容進行清除HTML處理
?8?????????$data???=?parseFields($post,?$fields);??//提取可以寫入數(shù)據(jù)庫的字段(防止別人繞過你的頁面進行提交一些別有用心的數(shù)據(jù))
?9?
10?????????$DB?=?&?M("member");
11?
12?????????//進行數(shù)據(jù)驗證
13?????????if?(!$DB->verify($data))?{
14?????????????
15?????????????//驗證失敗,取出失敗的原因,并提交到模板頁面中
16?????????????$this->assign("error",?$DB->getVerifyError());
17?
18?????????????//把提交過來的數(shù)據(jù)也提交到模板中(用以實現(xiàn)用戶好像沒有離開過頁面的感覺)
19?????????????$this->assign("default",?$post);
20?????????????
21?????????????//渲染注冊頁面模板
22?????????????$this->display("/register.html");
23?????????}
24?????????else?{
25?????????????//寫入數(shù)據(jù)庫
26?????????????$result?=?$DB->create($data);
27?????????????
28?
29?????????????//返回布爾型,說明數(shù)據(jù)寫入失敗,渲染注冊頁面模板
30?????????????if?(is_bool($result))?{
31?????????????????$this->assign("default",?$post);
32?????????????????$this->display("/register.html");
33?????????????}
34?????????????else?{
35?????????????????//注冊成功,渲染注冊成功頁面模板
36?????????????????$this->assign("username",?$data["username"]);
37?????????????????$this->display("/reg_success.html");
38?????????????}
39?????????}
40?????}

?

?可執(zhí)行驗證的規(guī)則有

NotEmpty? 不能為空

Number???? 只能是整數(shù)

isEmail ? ??? 郵箱地址是否正確

hasOne???? 是否是唯一(是否重復,是否已經(jīng)存在)

Regex?????? 自定義正則表達式

?

驗證的格式為

array(驗證方法, 進行驗證的字段名稱, 驗證錯誤的提示信息)

?

對于正則表達示的驗證

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


這里是下載頁面: http://www.freeeim.com/

總結

以上是生活随笔為你收集整理的飞鸽传书mayfish 数据入库验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。