tp框架防止登陆后敲地址进入后台
<?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'); } }
<?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'); } } <?php //后台页面的控制器 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') //重定向到登录页 }

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c
