1.前台表单2. 后台验证及添加动作
function add(){
$user=new Model('user');
if($vo=$user->create()){
$user->password=md5($user->password);
if($user->add()){
$this->success('添加成功');
}else{
$this->error('添加失败');
}
}else{
dump($vo);
$this->error($user->getError());
}
}
问题: 首先我将前台的页面,静态化保存。
然后多次刷新提交到服务器。
本该有create()方法会自动验证,阻止掉,但是为啥每次都能成功插入数据库。
create()方法失效了吗?
问题出在哪了?
function add(){
$user=new Model('user');
if($vo=$user->create()){
$user->password=md5($user->password);
if($user->add()){
$this->success('添加成功');
}else{
$this->error('添加失败');
}
}else{
dump($vo);
$this->error($user->getError());
}
}
问题: 首先我将前台的页面,静态化保存。
然后多次刷新提交到服务器。
本该有create()方法会自动验证,阻止掉,但是为啥每次都能成功插入数据库。
create()方法失效了吗?
问题出在哪了?
改成
$user=D('user');
拿来与大家分享解决办吧@Quicknine'TOKEN_ON'=>true, // 是否开启令牌验证
'TOKEN_NAME'=>'__hash__', // 令牌验证的表单隐藏字段名称
'TOKEN_TYPE'=>'md5', //令牌哈希验证规则 默认为MD5
'TOKEN_RESET'=>true, //令牌验证出错后是否重置令牌 默认为true
然后多次刷新提交到服务器。
本该有create()方法会自动验证,阻止掉,但是为啥每次都能成功插入数据库。
create()方法失效了吗?
问题出在哪了?
=====================================
对不起 ,竟然看漏了 【静态化保存】
生成静态文件?还是伪静态
如果是直接生成静态文件,那么你还得AJAX获取令牌
如果是伪静态,系统会自动生成令牌的,当返回值是添加失败时,你必须刷新页面,如果不刷新,那你必须调用重新生成令牌这个函数, THINKPHP 重新生成令牌函数你要改动才可以外部调用~!