이 글은 주로 ThinkPHP 자동 검증 실패에 대한 해결 방법을 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들은 참고할 수 있습니다.
ThinkPHP 2.0 개발 매뉴얼 인용: 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()返回"令牌表单错误" */ } ?>
관련 권장 사항:
ThinkPHP에 내장된 ThinkAjax를 사용하여 비동기 전송 기술 구현
위 내용은 ThinkPHP 자동 확인 실패에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!