通过一个表单实现提交并验证数据最终写入数据库的过程
先看表结构
表名是user
字段:
id | name | pass | ifadmin | createtime |
ip |
---|
看我的模板表单:
<form action="__URL__/add" method="post">姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
重复密码:<input type="password" name="repassword"><br>
邮箱:<input type="text" name="email" value=""><br>
<br>
验证码:<input name="verify" type="text" style="height: 23px; width: 60px;" />
<img id="verifyImg" SRC="__APP__/Public/verify/" BORDER="0" ALT="" onclick="fleshVerify()">
<br>
<input type="submit" value="注册"></form>
<script>function fleshVerify(){
//重载验证码
var timenow = new Date().getTime();
document.getElementById('verifyImg').src= '__APP__/Public/verify/'+timenow;
}
</script>
看我的IndexAction.class.php文件
<?php
class UserdbAction extends Action{
public function index(){
$user=M('User');
$list=$user->select();
$this->assign('title','thinkphp演示');
$this->assign('alist',$list);
$this->display();
}
public function add(){
//D是需要些Model的,M不需要写
$user=D('User');
if($data=$user->create())
{
//$data->ip = get_client_ip();
//$data->createtime=time();
if(session('verify') != md5($_POST['verify'])) {
$this->error('验证码错误!');
}
if(false!==$user->add())
{
$this->success('注册成功!','index');
}
else
{
$this->error('用户注册失败!');
}
}
else
{
$err=$user->getError();
$this->error($err);
}
}
public function del(){
//D是需要些Model的,M不需要写
$user=D('User');
if ($vo=$user->delete($_GET['id'])){
$this->success("用户删除成功");
}else{
$this->error($user->getError());
}
}
public function edit(){
$user=M('user');
$id=$_GET['id'];
$list=$user->where("id=$id")->find();
$this->assign('user',$list);
$this->assign('title','编辑用户');
$this->display();
}
public function update(){
$user=M('user');
if ($vo=$user->create()){
if ($lineNum=$user->save()){
$this->success("用户更新成功");
}else{
$this->error($user->getError());
}
}else{
$this->error($user->getError());
}
}
}
?>
验证码
<?php
class PublicAction extends Action{
//生成验证码
Public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
}
?>
UserModel.class.php
<?php
class UserModel extends Model{
protected $_validate = array (
array('username','require','用户名必须填写!',1,'regex',3),
array('username','','用户名已经存在!请重新填写!',1,'unique',3),
array('password','require','密码必须填写!',1,'regex',3),
array('repassword','require','请再次输入密码!',1,'regex',3),
array('repassword','password','两次填写的密码应该一致!',1,'confirm',3),
//array('email','require','邮箱必须填写!',1,'regex',3),
//array('email','email','邮箱格式不正确!',1,'regex',3),
//array( 'repassword','pass','确认密码不正确 ', 0 , ’confirm’ ),
array('email','require','邮箱必填!'),
array('email','email','邮箱格式错误!',2),
array('username','','姓名已存在!',0,'unique',self::MODEL_INSERT),
);
protected $_auto = array(
array( 'password','md5',3,'function') ,
//array('ifadmin','0',self::MODEL_INSERT),
array( 'ip','get_client_ip',3,'function') ,
array( 'createtime','time',3,'function') ,
);
}
?>