? ? ? ? 如題,本人小白,剛開始學(xué)就拿了這個教程,不知是不是起點有點高了。在第五章的時候遇到問題,希望老師或者兄弟姐妹們給于幫助。? ? ? ? 第五章中一共提到三個文件 ? ? admin.php ? 代碼如下:<?php
namespace?app\modules\models;
use?yii\db\ActiveRecord;
use?YIi;
class?Admin?extends?ActiveRecord{
public?$rememberMe?=?true;
public?static?function?TableName(){
return?"{{%admin}}";
}
public?function?rules(){
return[
['adminuser','required','message'=>'管理員帳號不能為空'],
['adminpass','required','message'=>'管理員密碼不能為空'],
['rememberMe','boolean'],
['adminpass','validatePass'],
];
}
public?function?validatePass(){
if(!$this->hasErrors()){
$data?=?self::find()->where('adminuser?=?:user?and?adminpass?=?:pass',[":user"=>$this->adminuser,":pass"=>md5($this->adminpass)])->one();
if(is_null($data)){
$this->addError("adminpass","用戶名或者密碼錯誤");
}
}
}
public?function?login($data){
if($this->load($data)?&&?$this->validatePass()){
//做點有意義的事
$lifetime?=?$this?->rememberMe???24*3600?:?0;
$session?=?Yii::$app->session;
session_set_cookie_params($lifetime);
$session['admin']=['adminuser'=>$this->adminuser,'isLogin'=>1,];
return?(bool)$session['admin']['isLogin'];
}
return?false;
}
}? ? ? ?PublicController.php文件中的代碼:<?php
namespace?app\modules\controllers;
use?yii\web\Controller;
use?app\modules\models\Admin;
use?yii;
class?PublicController?extends?Controller{
public?function?actionLogin(){
$this->layout=false;
$modle?=new?Admin;
if?(Yii::$app->request->isPost){
$post=?Yii::$app->request->post();
//var_dump($post);
if($modle->login($post)){
$this->redirect(['default/index']);
Yii::$app->end();
}
}
return?$this->render("login",['model'=>$modle]);
}
}
? ? ? ? 前臺login.php文件中用到的代碼:<?php?$form=ActiveForm::begin(['fieldConfig'=>['template'=>'{error}{input}',],]);?>
????????<div?class="span4?box">
????????????<div?class="content-wrap">
????????????????<h6>慕課商城?-?后臺管理</h6>
????????????????<?php?echo?$form->field($model,'adminuser')->textInput(["class"=>"span12","placeholder"=>"管理員賬號"]);?>
????????????????<?php?echo?$form->field($model,'adminpass')->passwordInput(["class"=>"span12","placeholder"=>"管理員密碼"]);?>
???????????????<!--?<input?class="span12"?type="text"?placeholder="管理員賬號"?/>
????????????????<input?class="span12"?type="password"?placeholder="管理員密碼"?/>-->
????????????????<a?href="#"?class="forgot">忘記密碼?</a>
????????????????<?php?echo?$form->field($model,'rememberMe')->checkbox(["id"=>"remember-me","template"=>"<div?class='remember'>{input}<label?for='remember-me'>記11住我</label></div>",]);?>
?????????????<!--???<div?class="remember">
????????????????????<input?id="remember-me"?type="checkbox"?/>
????????????????????<label?for="remember-me">記住我</label>
????????????????</div>-->
????????????????<?php?echo?Html::submitButton('登錄',['class'=>'btn_glow?primary?login']);?>
???????????????<!--?<a?class="btn-glow?primary?login"?href="index.html">登錄</a>-->
????????????</div>
????????</div>
<?php?ActiveForm::end();?>上面是我看視頻書寫的代碼,問題如下: ?當(dāng)提交的用戶名與密碼 錯誤的時候,會正常報錯。但當(dāng)提交正常的用戶名和密碼的時候,就沒有反映,不跳轉(zhuǎn)到default/index頁中。看了好多遍還是沒有發(fā)現(xiàn)問題。望大神們給答復(fù)。是不是我回頭先去看基礎(chǔ)課去。。。。。。
3 回答

天使之翼死神之鐮
TA貢獻(xiàn)81條經(jīng)驗 獲得超102個贊
? if($modle->login($post))這個判斷應(yīng)該為假,從而判斷?if($this->load($data)?&&?$this->validatePass())這個判斷也為假,進(jìn)而推斷?$this->load($data)和 $this->validatePass())都為假,突然發(fā)現(xiàn)admin.php中并沒有l(wèi)oad()方法,是沒貼上來還是本身就沒有;$data是否為空,validatePass()方法為何執(zhí)行結(jié)果為假,一步步判斷,一步步排錯,多用var_dump()加exit組合,慢慢找到原因。
- 3 回答
- 0 關(guān)注
- 2211 瀏覽
添加回答
舉報
0/150
提交
取消