php后台登陆地址,tp框架防止登陆后敲地址进入后台

namespace AdminController;

use ThinkController;

class IndexController extends Controller {

public function index(){

$this->display();

}

public function login(){

$username = I('username');

$password = I('password');

$user = D('User');

$res = $user->where(array('username'=>$username))->find();

// dump($res);die;

if(!$res || md5($password) != $res['password']){

$this->error('用户名或密码错误');

}else{

session('username',$res['username']);

session('id',$res['id']);

session('create_time',$res['create_time']);

//dump(session());die;

$this->redirect('/Admin/Main/index'); //跳转到后台管理

}

}

//清空

public function loginout(){

session(null);

//dump(session());

$this->redirect('/Admin/Index/index');

}

}<?php

//后台页面的控制器

namespace AdminController;

use ThinkController;

class MainController extends Controller {

public function index(){

$this->display();

}

}

应该怎么判断,在地址栏敲地址不能随意进入登陆页或后台系统

回复内容:<?php

namespace AdminController;

use ThinkController;

class IndexController extends Controller {

public function index(){

$this->display();

}

public function login(){

$username = I('username');

$password = I('password');

$user = D('User');

$res = $user->where(array('username'=>$username))->find();

// dump($res);die;

if(!$res || md5($password) != $res['password']){

$this->error('用户名或密码错误');

}else{

session('username',$res['username']);

session('id',$res['id']);

session('create_time',$res['create_time']);

//dump(session());die;

$this->redirect('/Admin/Main/index'); //跳转到后台管理

}

}

//清空

public function loginout(){

session(null);

//dump(session());

$this->redirect('/Admin/Index/index');

}

}

namespace AdminController;

use ThinkController;

class MainController extends Controller {

public function index(){

$this->display();

}

}

应该怎么判断,在地址栏敲地址不能随意进入登陆页或后台系统

在Index控制器的__initialize方法中,判断你的session有没有被赋值。没有跳转到登录。

具体参考

TP框架__initialize方法

看你的意思应该是不想让别人进入后台 也就是登陆页都不让进吧?如果是可以试试配置可以访问的模块 如果想判断这个人登陆没登陆 那就是判断session了

给你点资料 你试试 如果可以你就部署到服务器的设置下 本地就不要设置了

禁止访问模块3.2对模块的访问是自动判断的,所以通常情况下无需配置模块列表即可访问,但可以配置禁止访问的模块列表(用于被其他模块调用或者不开放访问),默认配置中是禁止访问Common模块和Runtime模块(Runtime目录是默认的运行时目录),我们可以增加其他的禁止访问模块列表:

// 设置禁止访问的模块列表

'MODULE_DENY_LIST' => array('Common','Runtime','Api'),

设置后,Api模块不能通过URL直接访问,事实上,可能我们只是在该模块下面放置一些公共的接口文件,因此都是内部调用即可。

设置访问列表

如果你的应用下面模块比较少,还可以设置允许访问列表和默认模块,这样可以简化默认模块的URL访问。

***'MODULE_ALLOW_LIST' => array('Home','Admin','User'),***

'DEFAULT_MODULE' => 'Home',

设置之后,除了Home、Admin和User模块之外的模块都不能被直接访问,并且Home模块是默认访问模块(可以不出现在URL地址)。

登录页都不让进,后台系统怎么登录呢

其实是判断有无验证的问题.

TP可以写一个基类(BaseController), 然后所有需要验证的控制器, 都应该继承这个基类.isAuth()) {

$this->redirectToLogin();

}

}

private function isAuth()

{

//验证是否登录

}

private function redirectToLogin()

{

//跳转到登录页面

}

}

例如, 后台有一个管理员控制器class AdminController extends BaseController

{

public function __construct()

{

parent::__construct();

}

}

这是TP的做法, 但是像symfony这样的框架, 自带了验证类, 可以很方便地进行http验证, accesstoken验证和自定义验证方式.

登录页不让进是不可能的,否则你的业务人员都登不上去。如果你的前后台是同一套用户系统,那就验证前台登录用户是否有进入后台的权限,没登录就正常显示登录页就好了,只要别让搜索引擎把你的后台登录地址抓过去就行

写个公共函数判断是否是登录状态function isLogin(){

if(I('session.uid')){

return true;

}else{

return false;

}

}

然后在后台控制器的__initialize方法里写if(!isLogin()){

$this->redirect('/login') //重定向到登录页

}

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值