Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für den Fehler bei der automatischen Verifizierung von ThinkPHP

Lösung für den Fehler bei der automatischen Verifizierung von ThinkPHP

不言
不言Original
2018-06-06 15:43:472047Durchsuche

Dieser Artikel stellt hauptsächlich die Lösung für das Scheitern der automatischen Überprüfung von ThinkPHP vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.

Zitieren des ThinkPHP2.0-Entwicklungshandbuchs. Die manuelle Typprüfung von ThinkPHP dient nur der Überprüfung auf Datenbankebene, daher verfügt das System auch über eine integrierte automatische Überprüfungsfunktion von Datenobjekten, um die Geschäftsregelüberprüfung des Modells abzuschließen. In den meisten Fällen werden die Datenobjekte durch $_POST erstellt Daten, die durch das Formular übermittelt werden.

Code kopierenDer Code lautet wie folgt:

/* 
* 登陆 
*/ 
public function Login(){ 
if($_POST['submit']){ 
$DB = D('Login');//自定义Model处理 
//if里面就是ThinkPHP的自动验证了. 
if(!$DB->create()){ 
$this->redirect(&#39;Index/Login&#39;, &#39;&#39;, 3, &#39;错误信息: &#39;.$DB->getError().&#39;<br/>系统将于3秒后返回重新登陆...&#39;); 
}else{ 
$con[&#39;LoginName&#39;] = $_POST[&#39;username&#39;]; 
$con[&#39;LoginPwd&#39;] = md5($_POST[&#39;userpwd&#39;]); 
$list = $DB->where($con)->find(); 
if(count($list)>0){ 
echo &#39;ok&#39;; 
}else{ 
$this->redirect(&#39;Index/Login&#39;, &#39;&#39;, 3, &#39;错误信息: 用户名或密码错误<br/>系统将于3秒后返回重新登陆...&#39;); 
} 
} 
return ; 
} 
//这里只是将模板文件的地址封装了一下. 
A(&#39;Public&#39;)->ShowPage(&#39;login&#39;); 
}

Code kopierenDer Code lautet wie folgt:

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

Verwandte Empfehlungen :

Verwendung des integrierten ThinkAjax von ThinkPHP zur Implementierung der asynchronen Übertragungstechnologie

Das obige ist der detaillierte Inhalt vonLösung für den Fehler bei der automatischen Verifizierung von ThinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn