TP的验证码存放在session里面,它的键值对都是经过加密的,找到验证码的生成源文件,在源文件把验证码放入自己设定的session的键里面
将session里面记录的admin里面的name放到index.html页面
<span class="cut">|</span>{$admin.id}:<span class="mr10">{$admin.name}</span>
注销就是跳转个页面 清除对应的session
<a href="{:U('Index/logout')}">[注销]</a>
public function logout(){
session("admin",null); $this->success("退出成功,如果想继续操作,请重新登录",U('Login/index'),2);
}
我们后台的所有操作(除了登录外)其他的操作必须是在登录操作之后完成 所以每个页面(除了登陆) 都要判断是否登录
面向对象,但是我们想在每次操作之前判断是否登录过,所有我们选择在构造函数里面进行拦截判断是否登录过
所以在新建一个控制器 BackController extends Controller
class BackController extends Controller{
public function __construct(){ 会覆盖掉父类的构造方法
header("content-type:text/html;charset=utf-8");
//需要把父类的构造方法拿过来
parent::__construct();//执行一次父类的构造方法
if(!session("?admin")){ //没登录过
$this->error("你还没登陆,请先登录",U('Login/index'),3);
exit;
}
}
}
parent::__construct();//执行一次父类的构造方法
除了登录 ,其他所有控制器都去继承 BackController
CMS的菜单栏是写在xml 通过simplexml_load_file()进行加载读取
thinkphp是把菜单栏写在配置文件里面 admin->config.php
//设置后台的菜单栏
'MENU'=>array(
array(
'id'=>'1',
'name'=>'商品管理',
'son'=>array(
array('name'=>'分类管理','href'=>'Cate/index','id'=>'11'),
array('name'=>'商品管理','href'=>'Goods/index','id'=>'12'),
array('name'=>'幻灯片管理','href'=>'Banner/index','id'=>'13'),
array('name'=>'推荐商品管理','href'=>'Recom/index','id'=>'12'),
),
),
array(
'id'=>'2',
'name'=>'用户管理',
'son'=>array(
array('name'=>'会员管理','href'=>'Member/index','id'=>'21'),
array('name'=>'订单管理','href'=>'Order/index','id'=>'22'),
),
),
array(
'id'=>'3',
'name'=>'管理员管理',
'son'=>array(
array('name'=>'角色管理','href'=>'Power/index','id'=>'31'),
array('name'=>'管理员管理','href'=>'Admin/index','id'=>'32'),
),
),
),
读取配置文件
C("键")
//读取配置 在index/index
$menu_data = C("MENU");
$this->assign("menu_data",$menu_data);
视图层的循环 手册
<volist name="list" id="vo" key="key"></volist>
<foreach name="list" item="vo" key="key"></foreach>
等价于
foreach($list as $key=>$vo){}
标签里面的变量的取值方式和php一样
{:U($val['href'])} 在行间事件的小括号里面进行传参
<volist name="menu_data" id="val">
<h3 class="f14"><span class="J_switchs cu on" title="展开或关闭"></span>{$val.name}</h3>
<ul>
<foreach name="val.son" item="vo">
<li class="sub_menu" οnclick="change_url('{:U($vo['href'])}',this)"><a>{$vo.name}</a></li>
</foreach>
</ul>
</volist>
将session里面记录的admin里面的name放到index.html页面
<span class="cut">|</span>{$admin.id}:<span class="mr10">{$admin.name}</span>
注销就是跳转个页面 清除对应的session
<a href="{:U('Index/logout')}">[注销]</a>
public function logout(){
session("admin",null); $this->success("退出成功,如果想继续操作,请重新登录",U('Login/index'),2);
}
我们后台的所有操作(除了登录外)其他的操作必须是在登录操作之后完成 所以每个页面(除了登陆) 都要判断是否登录
面向对象,但是我们想在每次操作之前判断是否登录过,所有我们选择在构造函数里面进行拦截判断是否登录过
所以在新建一个控制器 BackController extends Controller
class BackController extends Controller{
public function __construct(){ 会覆盖掉父类的构造方法
header("content-type:text/html;charset=utf-8");
//需要把父类的构造方法拿过来
parent::__construct();//执行一次父类的构造方法
if(!session("?admin")){ //没登录过
$this->error("你还没登陆,请先登录",U('Login/index'),3);
exit;
}
}
}
parent::__construct();//执行一次父类的构造方法
除了登录 ,其他所有控制器都去继承 BackController
CMS的菜单栏是写在xml 通过simplexml_load_file()进行加载读取
thinkphp是把菜单栏写在配置文件里面 admin->config.php
//设置后台的菜单栏
'MENU'=>array(
array(
'id'=>'1',
'name'=>'商品管理',
'son'=>array(
array('name'=>'分类管理','href'=>'Cate/index','id'=>'11'),
array('name'=>'商品管理','href'=>'Goods/index','id'=>'12'),
array('name'=>'幻灯片管理','href'=>'Banner/index','id'=>'13'),
array('name'=>'推荐商品管理','href'=>'Recom/index','id'=>'12'),
),
),
array(
'id'=>'2',
'name'=>'用户管理',
'son'=>array(
array('name'=>'会员管理','href'=>'Member/index','id'=>'21'),
array('name'=>'订单管理','href'=>'Order/index','id'=>'22'),
),
),
array(
'id'=>'3',
'name'=>'管理员管理',
'son'=>array(
array('name'=>'角色管理','href'=>'Power/index','id'=>'31'),
array('name'=>'管理员管理','href'=>'Admin/index','id'=>'32'),
),
),
),
读取配置文件
C("键")
//读取配置 在index/index
$menu_data = C("MENU");
$this->assign("menu_data",$menu_data);
视图层的循环 手册
<volist name="list" id="vo" key="key"></volist>
<foreach name="list" item="vo" key="key"></foreach>
等价于
foreach($list as $key=>$vo){}
标签里面的变量的取值方式和php一样
{:U($val['href'])} 在行间事件的小括号里面进行传参
<volist name="menu_data" id="val">
<h3 class="f14"><span class="J_switchs cu on" title="展开或关闭"></span>{$val.name}</h3>
<ul>
<foreach name="val.son" item="vo">
<li class="sub_menu" οnclick="change_url('{:U($vo['href'])}',this)"><a>{$vo.name}</a></li>
</foreach>
</ul>
</volist>