• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-22) 51次浏览 已收录 0个评论
文章目录[隐藏]
<?phpnamespace 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();         }}

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

回复内容:

<?phpnamespace 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<strong>)本文来(源gaodai#ma#com搞@@代~&码*网2</strong><pre>搞代gaodaima码

//后台页面的控制器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') //重定向到登录页}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:tp框架防止登陆后敲地址进入后台

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址