ThinkPHP自动验证失败的解决方法

复制代码 代码如下:

/*
* 登陆
*/
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()返回"令牌表单错误"
*/
}
?>

时间: 2024-11-05 19:36:07

ThinkPHP自动验证失败的解决方法的相关文章

ThinkPHP自动验证失败及解决方法

 /*  * 登陆  */ 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[

ThinkPHP自动验证失败的解决方法_php技巧

复制代码 代码如下: /* * 登陆 */ 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{ $

win8系统自动更新失败的解决方法

  win8系统自动更新失败的解决方法         首先以管理员身份打开命令提示符,输入命令DISM.exe /Online /Cleanup-image /Scanhealth并回车. 接着输入DISM.exe /Online /Cleanup-image /Restorehealth回车,等待修复完成重新启动电脑即可. 以下错误代码都是自动更新错误的代码 0x80070002 0x8007000D 0x800F081F 0x80073712 0x800736CC 0x800705B9 0

Fedora 16用root账户登录时提示验证失败的解决方法

环境:Fedora Linux 16 问题描述:Fedora linux16 用root用户登录 ,输入密码出现验证失败,即使你的密码是正确的,也会出现这种情况,这是因 为Fedora linux 默认禁止了root 超级用户. 解决办法: 最开始 尝试利用修复模式修改root用户密码,但是重启后仍然不奏效. 现在通过以下 修改: 进入修复模式,输入以下命令修改: 1.输入命令:vi /etc/pam.d/gdm,在文本编辑器中(输入i才能进入编辑模式)注释掉"auth required pam

Yii输入正确验证码却验证失败的解决方法

前言 最近在做一个需求时,发现输入正确验证码,但是都提示验证码错误 最后追踪代码发现,如果 Model 在 save 前,单独做了 validate 验证,则在验证结束后,会重新生成验证码 然后在我们 Model save 时,也会进行 validate 验证,验证时,验证码已经重新生成了,所以会匹配不上 // 如果这里用到了验证码,就会出问题 $model = new Test(); $model->validate(); $model->save(); // 这样是正确的 $model =

ThinkPHP自动验证功能详解

ThinkPHP自动验证 ThinkPHP内置了数据对象的自动验证功能来进行模型的业务规则验证.大多数情况下,数据是由表单提交的$_POST数据创建.则使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,它是由多个验证因子组成到得二维数组. 验证因子格式:  代码如下 复制代码 protected $_validate = array(   array(验证字段,验证规则,错误提示,[,验证条件][,附加规则][,验证时间]) ); 实例(以注册时验证注册信息):  代

thinkPHP自动验证机制详解_php实例

本文实例讲述了thinkPHP自动验证机制.分享给大家供大家参考,具体如下: array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]) 1.验证字段 需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等.有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如expire有效期规则是和表单字段无关的. 2.验证规则 要进行验证的规则,需要结合附加规则,如果在使用正则验证的附加规则情况下,系统还内置了一些常用正则验证的

thinkPHP自动验证、自动添加及表单错误问题分析_php实例

本文实例讲述了thinkPHP自动验证.自动添加及表单错误问题.分享给大家供大家参考,具体如下: 最近再做一个项目,想用thinkphp写验证,结果泪奔了几天.一开始就是令牌错误,后来有什么自动添加无效. 一直在测试,一直在查找,知道发现create()方法原来有两个参数, 第一个参数是大家都知道了数据参数,第二个是隐藏的$type参数,这个参数用来控制什么的呢?? 复制代码 代码如下: //$type = $type?$type!empty($data[$this->getPk()])?sel

SQL Server 2008 R2登录失败的解决方法

为大家分享SQL Server 2008 R2登录失败的解决方法 1.启动SQL Server 2008 Management Studio,会看到 2.里面有一个 身份验证.这个 身份验证 的下拉列表里面有两个选项: Windows 身份验证 和 SQL Server 身份验证. 它们有什么区别: Windows 身份验证是指:你可以使用你电脑Windows系统的用户名和密码进行登入.如果你的电脑没有设置密码,那么就不需要输入用户名和密码,直接点击连接就可以登入. 我们一般使用第二种身份验证: