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

yipeiwu_com7年前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{
$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()返回"令牌表单错误"
*/
}
?>

相关文章

php中socket通信机制实例详解

本文实例讲述了php中socket通信机制及用法。分享给大家供大家参考。具体分析如下: 一、socket是什么 什么是socket 所谓socket通常也称作"套接字",用于描述ip地址...

php小技巧 把数组的键和值交换形成了新的数组,查找值取得键

复制代码 代码如下: $cityname = array_flip($city_DB[name]); //把数组的键和值交换形成了新的数组 $city_name = array_sear...

PHPStorm+XDebug进行调试图文教程

PHPStorm+XDebug进行调试图文教程

笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件)。 一、XDebug安装配置 (1)下...

PHP实现HTML页面静态化的方法

PHP实现HTML页面静态化的方法

随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 一般情...

基于xcache的配置与使用详解

一、安装Xcache复制代码 代码如下:# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz#...