接上篇
一、將用戶數據存入數據庫
public function runRegis(){
if(!$this->isPost()){
halt('頁面不存在');
}
$User= D('User');
$User->createTime=date('Y-m-d H:i:s',time());
$User->modifyTime=date('Y-m-d H:i:s',time());
$result = $User->add();
if($result) {
$this->success('操做成功!');
}else{
echo($result);
}
}
其中用到了TP的D函數,而且有手動給字段賦值的操做。可是若是在add()以前有用create()進行判斷,賦值操做就失效了,示例代碼以下:
if($User->create()) {
$result = $User->add();
if($result) {
$this->success('操做成功!');
}else{
echo($result);
}
}else{
$this->error($User->getError());
}
賦值操做應該在create以後,修改以下
public function runRegis(){
if(!$this->isPost()){
halt('頁面不存在');
}
$User= M('User');
if($User->create()) {
$User->createTime=date('Y-m-d H:i:s',time());
$User->pwd=$this->_post('pwd', 'md5');
$id = $User->add();
if($id) {
session('uid',$id);
//跳轉至首頁
header('Content-Type:text/html;Charset=UTF-8');
redirect(__APP__, 2,'註冊成功,正在爲您跳轉...');
}else{
halt('操做失敗');
}
}
}
二、判斷某一字段是否已經存在
/**
* 異步驗證字段是否存在是否已存在
*/
public function checkUnique(){
if (!$this->isAjax()) {
halt('頁面不存在');
}
$cName = $this->_get('cName');
$cValue = $this->_post($cName);
$where = array($cName=>$cValue);
if(M('user')->where($where)->getField('id')){
echo 'false';
}else {
echo "true";
}
}
TP3.1.3增長了I函數,聽說更爲安全,是官方推薦使用的,修改寫法以下
/**
* 異步驗證字段是否已存在
*/
public function checkUnique(){
if (!$this->isAjax()) {
halt('頁面不存在');
}
$cName = I('get.cName');
$cValue = I('post.'.$cName);
$where = array($cName=>$cValue);
if(M('user')->where($where)->getField('id')){
echo 'false';
}else {
echo "true";
}
}