16)用了session会话技术
为什么用session会话技术?
因为假如你进入后台,不可能随意进入,即使你的验证通过了,那么还需要一个变量来存一个标志,假如标志的值是yes,那么我们可以直接进入后台的首页,无需验证,但是,标志是no,那么就得跳回到登录界面。
假如没有这个变量,那么我们只要在地址栏输入后台首页的地址,那么可以直接进入后台首页,但是理论上这样做是不可以的,因为,只有你的登录验证通过了,才可以进入后台的,所以,没有那个变量,用户就可以随意进入后台----------------------只要是后台的操作,必须在登录验证后才可以进入后台,否则,即使你在地址栏输入了你的后台首页的地址,标志是no,也得跳到后台登录界面。
目录展示:
改动代码展示:
BACKC.controller.class.php
1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Interact 5 * Date: 2017/8/21 6 * Time: 12:23 7 */ 8 class BACKC extends Controller { 9 /** 10 * 后台首页 11 */ 12 13 public function index(){ 14 session_start();//这个必须有, 15 if($_SESSION['is_login']==='yes'){ 16 echo '这是后台首页'; 17 } 18 } 19 }
然后是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 class AdminC extends Controller{ 9 10 11 public function login(){ 12 // require 13 require APPLICATION_PATH.'back/view/login.html'; 14 } 15 /** 16 * 验证管理员是否合法 17 */ 18 public function check() { 19 // echo "MC天佑MC天佑MC天佑"; 20 // echo $_REQUEST['username']; 21 // 获得表单数据 22 /*echo $_REQUEST['username']; 23 echo '\n'; 24 echo $_REQUEST['password'];*/ 25 $admin_name = $_REQUEST['username']; 26 $admin_pass = $_REQUEST['password']; 27 28 29 30 //从数据库中验证管理员信息是否存在合法 31 $m_admin = Factory::M('AdminModel'); 32 if ($m_admin->check($admin_name, $admin_pass)) { 33 // //验证通过,合法 34 // echo '合法,直接跳转到后台首页'; 35 session_start(); 36 $_SESSION['is_login']='yes'; 37 $this->_jump('index.php?p=back&c=BACkC&a=index'); 38 } else { 39 // 非法 40 // echo '非法, 提示,跳转到后台登陆页面index.php?p=back&c=Admin&a=login'; 41 $this->_jump('index.php?p=back&c=AdminC&a=login','用户名或密码错误'); 42 } 43 // 44 } 45 }