程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ThinkPHP 表單自動驗證運用,thinkphp表單驗證

ThinkPHP 表單自動驗證運用,thinkphp表單驗證

編輯:關於PHP編程

ThinkPHP 表單自動驗證運用,thinkphp表單驗證


使用TP 3.2框架

public function add_post(){
        //驗證規則
        $rule=array(
            array('name','require','請輸入姓名',1),//必須驗證name
        );

        $m=M('user');

        //獲取name,sex,contact數據到模型,並驗證
        if(!$m->field('name,sex,contact')->validate($rule)->create())
            $this->error($m->getError());

        $result=$m->add();

        if(!$result)
            $this->error('添加失敗');

        $this->success('添加成功',U('dir'));
    }

  驗證規則也可以寫到模型裡,但我感覺有些麻煩,一是有時候不同頁面驗證的方式會不一樣,二是看到這個add_post事件裡的代碼,就清楚要接收什麼數據,如何驗證數據能夠在第一眼有個大致了解,所以總結出了此方式。


thinkphp 自動驗證出現這樣的錯誤提示:_TOKEN_ERROR_ 代表什意思?

ThinkPHP新版內置了表單令牌驗證功能,可以有效防止表單的遠程提交等安全防護。

表單令牌驗證相關的配置參數有:'TOKEN_ON'=>true, // 是否開啟令牌驗證'TOKEN_NAME'=>'__hash__', // 令牌驗證的表單隱藏字段名稱'TOKEN_TYPE'=>'md5', //令牌哈希驗證規則默認為MD5如果開啟表單令牌驗證功能,系統會自動在帶有表單的模板文件裡面自動生成以TOKEN_NAME為名稱的隱藏域,其值則是TOKEN_TYPE方式生成的哈希字符串,用於實現表單的自動令牌驗證。自動生成的隱藏域位於表單Form結束標志之前,如果希望自己控制隱藏域的位置,可以手動在表單頁面添加 標識,系統會在輸出模板的時候自動替換。如果在開啟表單令牌驗證的情況下,個別表單不需要使用令牌驗證功能,可以在表單頁面添加{__NOTOKEN__},則系統會忽略當前表單的令牌驗證。如果頁面中存在多個表單,建議添加標識,並確保只有一個表單需要令牌驗證。模型類在創建數據對象的同時會自動進行表單令牌驗證操作,如果你沒有使用create方法創建數據對象的話,則需要手動調用模型的autoCheckToken方法進行表單令牌驗證。如果返回false,則表示表單令牌驗證錯誤。例如:$User = M("User"); // 實例化User對象// 手動進行令牌驗證if (!$User->autoCheckToken($_POST)){// 令牌驗證錯誤
 

thinkphp自動驗證的問題

給你看我寫的一個例子:
//表單驗證
protected $_validate=array(
//array('驗證字段','驗證規則','錯誤提示',驗證條件,附加規則,驗證時間)
array('uname','require','用戶名必須驗證!',1,'regex',3),
//array('username','','用戶名已經存在',1,'unique',1),
array('pwd','require','密碼必須填寫!'),

array('pwd','checkPwd','密碼長度不少於6位',1,'callback'),
);

function checkPwd(){
$password=$_POST['pwd'];
if(strlen($password)>=6){
return true;
}else {
return false;
}
}
//表單映射
protected $_map=array(
'uname'=>'username',
'pwd'=>'password',
);
//自動完成功能
protected $_auto=array(
//array(填充字段,填充內容,填充條件,附加規則) 填充條件:1,插入 2,更新 3,所有的
array('reg_date','getDate',1,'callback'),
array('password','md5',3,'function'),
);
function getDate(){
return date('Y-m-d H:i:s');
}
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved