20)升级登录标志
(1)首先是升级登录标志:
目录展示:
然后是改动文件代码展示:
AdminC.controller.class.php
1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Interact 5 * Date: 2017/8/20 6 * Time: 14:22 7 */ 8 9 class AdminC extends Controller { 10 11 12 public function login(){ 13 // require 14 require APPLICATION_PATH.'back/view/login.html'; 15 } 16 /** 17 * 验证管理员是否合法 18 */ 19 public function check() { 20 // echo "MC天佑MC天佑MC天佑"; 21 // echo $_REQUEST['username']; 22 // 获得表单数据 23 /*echo $_REQUEST['username']; 24 echo '\n'; 25 echo $_REQUEST['password'];*/ 26 $temp=''; 27 $admin_name = $_REQUEST['username']; 28 $admin_pass = $_REQUEST['password']; 29 $admin_name=addslashes($admin_name); 30 $admin_pass=addslashes($admin_pass); 31 $admin_captcha=$_REQUEST['captcha']; 32 //从数据库中验证管理员信息是否存在合法 33 $m_admin = Factory::M('AdminModel'); 34 $Captcha=new Captcha(); 35 36 if(!$Captcha->checkCaptcha($admin_captcha)){ 37 38 $this->_jump('index.php?p=back&c=AdminC&a=login','验证码错误',3); 39 }else{ 40 $temp='yes'; 41 } 42 //用$admin_info来存储用户的所有新的,作为登录标志,这样就不是简陋的is_login了。 43 if (($admin_info=$m_admin->check($admin_name, $admin_pass))&&($temp==='yes')) { 44 // //验证通过,合法 45 46 session_start(); 47 // $_SESSION['is_login']='yes';//这是之前的 48 $_SESSION['admin']=$admin_info; 49 $this->_jump('index.php?p=back&c=BACkC&a=index'); 50 } else { 51 // 非法 52 // echo '非法, 提示,跳转到后台登陆页面index.php?p=back&c=Admin&a=login'; 53 $this->_jump('index.php?p=back&c=AdminC&a=login','用户名或密码错误'); 54 } 55 // 56 } 57 public function captcha(){ 58 //利用Captcha工具类 59 $t_captcha=new Captcha(); 60 $t_captcha->generate(); 61 } 62 /** 63 * 64 */ 65 }
BACKC.controller.class.php
1 class BACKC extends Controller { 2 /** 3 * 后台首页 4 */ 5 6 public function index(){ 7 session_start(); 8 //由之前的$_SESSION['is_login']==='yes',改为下面的这样子 9 if(isset($_SESSION['admin'])){ 10 require APPLICATION_PATH.'back\view\back_main\index.html'; 11 } 12 } 13 }
AdminModel.controller.class.php
1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Interact 5 * Date: 2017/8/21 6 * Time: 8:39 7 * 之前这里返回bool值,但是现在为了完善那个登录标志,就把返回值改为直接返回$row,其实row就是管理员的全部信息,这样,我们的登录信息存的就是管理员的信息了。 8 * 之前的这个return (bool) $row;-------->改为return $row; 9 */ 10 class AdminModel extends Model{ 11 /** 12 * @param $admin_name 13 * @param $admin_pass 14 *后台登录验证函数 15 * @return bool 16 */ 17 public function check($admin_name, $admin_pass) { 18 $admin_name=$this->_dao->escapeString($admin_name); 19 $admin_pass=$this->_dao->escapeString($admin_pass); 20 $sql = "SELECT * FROM `admin` WHERE admin_name='$admin_name' and admin_pass=md5('$admin_pass')"; 21 $row = $this->_dao->getRow($sql); 22 23 return $row; 24 } 25 }