thinkphp自动验证总报错怎么办

如题所述

ThinkPHP手册类型检查只是针对数据库级别的验证,所以系统还内置了数据对象的自动验证功能来完成模型的业务规则验证,而大多数情况下面,数据对象是由表单提交的$_POST数据创建。
代码如下:
/*
* 登陆
*/
public function Login(){
if($_POST['submit']){
$DB = D('Login');//自定义Model处理
//if里面就是ThinkPHP的自动验证了.
if(!$DB->create()){
$this->redirect('Index/Login', '', 3, '错误信息: '.$DB->getError().'<br/>系统将于3秒后返回重新登陆...');
}else{
$con['LoginName'] = $_POST['username'];
$con['LoginPwd'] = md5($_POST['userpwd']);
$list = $DB->where($con)->find();
if(count($list)>0){
echo 'ok';
}else{
$this->redirect('Index/Login', '', 3, '错误信息: 用户名或密码错误<br/>系统将于3秒后返回重新登陆...');
}
}
return ;
}
//这里只是将模板文件的地址封装了一下.
A('Public')->ShowPage('login');
}
代码如下:

<?php
class LoginModel extends Model {
// 设置数据表
protected $tableName = 'admin';
// 自动验证设置
protected $_validate = array(
array('username','require','用户名必须!', 1),
array('userpwd','require','密码必须!', 1),
);
/* 自动填充 如果不能自动验证,将这段代码取消注释看看.
protected $_auto = array(
array('status','1',self::MODEL_INSERT),
array('create_time','time',self::MODEL_INSERT,'function'),
);*/
/*引用ThinkPHP2.0开发手册:ThinkPHP手册类型检查只是针对数据库级别的验证,所以系统还内置了数据对象的自动验证功能来完成模型的业务规则验证,而大多数情况下面,数据对象是由表单提交的$_POST数据创建。需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性
*/
/*它这里说了,只需要在Model类里面定义$_validate属性,但是在使用ThinkPHP2.1的时候,的的确确不能通过验证,$DB->getError()无错误原因返回,且刷新的时候$DB->getError()返回"令牌表单错误"
*/
}
?>
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-08-29
查看一下自动验证的参数顺序写的对不对

thinkphp自动验证,写验证规则用正则表达式,会出现问题,求大神解答...
);错误原因:可能与编码有关,固使用模式修正符u:u (PCRE_UTF8) 此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。php匹配中文与js有所区别\\x后需加大括号,其中\\x表示十六进制...

thinkphp3.2 自动填充不成功是怎么回事
一般情况下,使用 M 方法实例化模型时,是无法实例化自定义模型类的,也就无法使用自动验证与自动完成功能,因此建议使用 D 方法来实例化模型类。如果必须要在 M 方法中实现自动验证或自动完成,参看《ThinkPHP 使用M方法(不创建模型类)时实现自动验证与自动填充》。

大神,ThinkPHP 自动验证 错误显示位置可以自定义吗
如果你是以普通方式post数据到这个页面的话,只会弹窗提示,但你以ajax方式post数据到这个页面时,就会以ajaxReturn的方式把错误传送回前一个页面,这里你就可以在数据输入页面获得这个错误信息并显示出来了!\/\/页面处理语句$.ajax({ url:'', dataType:'json', type:'POST', data:'post=ok...

thinkphp开启自动验证后无法连接数据库
需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如expire有效期规则是和表单字段无关的。2.验证规则 要进行验证的规则,需要结合附加规则,如果在使用正则验证的附加规则情况下...

thinkphp中加载自定义模块CommonModel出错
首先,两个参数跟一个参数是有区别的,一个参数的时候,为user时他会去匹配user数据表,为common时,它也去匹配数数据表,结果没找到,自然报错,而这个common我们只是用来做一些常用的自动验证和填充之类的工作,

Thinkphp3.2.3接入公众号响应微信发送的Token验证总是失败
不使用Thinkphp3.2.3的情况下可以验证成功,应用框架后不能通过,不知道是什么原因啊<?phpnamespaceHOME\\Controller;useThink\\Controller;define("TOKEN","weixin");\/\/定义你公众号自... 不使用Thinkphp3.2.3的情况下可以验证成功,应用框架后不能通过,不知道是什么原因啊<?phpnamespace HOME\\Controller;use Think\\...

thinkphp中如何自动验证,结束时间在开始之间之后
使用下面的规则:rule = [ 'end_date' => 'after:2016-3-18' \/\/2016-3-18是开始时间];详细的请参考thinkphp5手册-验证-验证规则的章节内容网页链接

ThinkPHP修改密码时自动完成怎么处理
thinkphp的自动验证格式 array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])验证条件默认是0存在字段就验证,而你需要的是2值不为空的时候验证 验证时间默认是3全部情况下验证,可以修改为1新增数据时候验证或2编辑数据时候验证 你可以去后盾人平台看看,里面的东西不错 ...

thinkphp怎么判断post提交是否为空
thinkphp判断post提交是否为空的方法如下:1、HTML中form代码: 验证码: 2、控制器部分代码:登陆处理类 \/ public function login(){ if (!IS_POST) { this->error('页面不存在');} Verify = new \\Think\\Verify(); \/\/这里开始校验参数是否为空 code =I('post.verify');if(!

在sae上发布thinkphp架构的微信平台代码,总是提示token验证失败
这样一试吧 public function auth(){ if($_GET ['timestamp'] !=''&&$_GET ['nonce']!='' &&$_GET ['signature']!='' && $_GET["echostr"]!=''){ echo $_GET["echostr"];exit;} } 这样验证应该是可以的呀

相似回答