[tp版本3.2.3]

我在Controller里面写了一个公共类CommonController.class.php,写了一个构造方法来判断是否登录,没登录就重定向到登陆页:

namespace Admin\Controller;

use Think\Controller;

class CommonController extends Controller

{

public function __construct()

{

$isLogin = session('islogin');

if (!$isLogin) {

$this->redirect('Login/index');

return;

} else {

session('islogin', $isLogin); // 如果登录刷新一下?不知道是不是这样去刷新,因为可能出现登录了后过期的情况。

}

}

}

这样做有一个问题,就是没有登录的时候始终会重定向。报错127.0.0.1 将您重定向的次数过多。

于是我改成了

class CommonController extends Controller

{

public function isLogin()

{

$isLogin = session('islogin');

if (!$isLogin) {

$this->redirect('Login/index');

return;

} else {

session('islogin', $isLogin); // 如果登录刷新一下?不知道是不是这样去刷新

}

}

}

接着在其它继承CommonController的文件每一个都去加一个构造函数,如

ArticleController.class.php

namespace Admin\Controller;

use Think\Controller;

class ArticleController extends CommonController

{

function __construct()

{

parent::isLogin(); // 这样写会报错,不知道为什么,报错提示如下

}

public function dolist()

{

$this->show("hallo world");

}

}

报错提示:

Call to a member function display() on null

错误位置

FILE: X:\domainX\ThinkPHP\Library\Think\Controller.class.php  LINE: 69

最后这样写才不报错:

namespace Admin\Controller;

use Think\Controller;

class ArticleController extends CommonController

{

public function dolist()

{

parent::isLogin(); // 这样写

$this->show("hallo world");

}

}

问题:

为什么继承CommonController.class.php的类也不能再__construct里面判断呢?

继承CommonController.class.php的类如果都要判断是否登录,就需要在每一个方法里面写parent::isLogin();,这样做合理吗?还是说这样做本来就是合理的?

php判断有没有登录,请问thinkphp 怎么在每个方法里面判断是否登录?相关推荐

  1. android使用post方法登录,使用REST API使用POST方法在Android中登录示例

    如果您熟悉库,则完成此任务的简单方法是使用库.我推荐 Ion,因为它小而且易于使用.添加库并将以下代码段添加到您选择的方法中. Ion.with(getApplicationContext()) .l ...

  2. 明日之后 找不到服务器,明日之后登录服务器错误怎么办 登录服务器错误请重试解决方法...

    明日之后官方版v1.0安卓版 类型:角色扮演大小:0KB语言:中文 评分:6.6 标签: 立即下载 明日之后今天开启安卓测试,玩家下载游戏就能玩啦,不过很多玩家在进入游戏界面显示登录服务器错误请重试, ...

  3. php判断几维数组的方法,php判断是几维数组

    php判断是几维数组的方法:首先获取需要进行判断的数组:然后使用自定义的"aL"方法实现判断数组是几维数组:最后通过"max($al)"方法获取数组的维度即可. ...

  4. ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)

    MD5加密,Parameters防止SQL注入: protected void btnLog_Click(object sender, EventArgs e)     {         //获取验 ...

  5. php 微信第三方登录demo,第三方登录 - 快速接入微信、QQ、微博等第三方登录方式 – 基于ThinkPHP和Bootstrap的极速后台开发框架...

    此插件基于FastAdmin和Thinkphp5开发的第三方登录插件,可用于对接微.微博.QQ等第三方登录,目前CMS中的小程序账号登录绑定就是基于此插件开发,在使用CMS中的小程序登录功能之前请务必 ...

  6. html表单提交不判断,请问jquery有方法可以判断一个表单提交之后结果是成功或不成功吗?...

    具体是这样的,今天在做项目的时候用到layer弹出插件,我弹出的是一个iframe层.我用了ajax提交,通过ajax提交后的回调判断提交是否成功,成功就调用parent.layer.close(in ...

  7. access突然需要登录_早知道早好,微信小程序登录开发需要注意的事项

    最近公司要做一个企业微信的小程序,方便企业内的成员来登录,以便一些公司内的业务,只限于公司内的成员来操作,因为有微信小程序的开发经验,所以先当作微信小程序来开发了! 首先来讲一下这个企业微信小程序与微 ...

  8. aspnet登录界面代码_SPA+.NET Core3.1 GitHub第三方授权登录

    GitHub第三方授权登录 有许多文章都讲过GitHub第三方授权登录,但就是没有.NET Core配合前后端分离的项目(Vue,React)的实践.所以本文以前后端分离项目中如何在授权登录后,生成T ...

  9. spring interceptor 拦截方法,判断用户是否存在

    2019独角兽企业重金招聘Python工程师标准>>> //基于spring mvc+spring +mybatis的一个拦截方法,判断用户是否存在,从而进行页面跳转的小demo 核 ...

最新文章

  1. 解密淘宝网的开源架构(转)
  2. 使用友盟的社会化组件,发新浪微博的 error:redirect_uri_mismatch的解决方法
  3. 嵌入式linux实时化技术,嵌入式Linux实时化技术
  4. android静态类保存context,Android:静态获取Context是一个好习惯吗?
  5. 20年来从不涨价,这个地方用1块钱的打火机,垄断了全球70%的市场
  6. linux下ssh/sftp配置和权限设置
  7. (转)log4j(二)——如何控制日志信息的输出?
  8. 使用JSP做一个小小的项目(一)
  9. koolproxy无法下载https证书的解决方法
  10. 易点易动助力企业年中固定资产盘点
  11. 免费的在线PDF转换word网站推荐
  12. kali破解wifi 密码(仅供学习)
  13. word文档替换技巧(空行替换、空格替换、软回车替换成硬回车)
  14. Django 表单 AuthenticationFrom自动检测user的name 和 password , has no attributes cleaned_data
  15. 谷歌 Android 12 Go 正式发布!
  16. SpringBoot项目端点配置
  17. docker基础(11):自定义tomcat镜像启动与访问
  18. GraphQL的了解和简单使用
  19. python数学建模--线性规划问题案例及求解
  20. 2-15 微信小程序array数据类型(附带方法解析)

热门文章

  1. js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?
  2. 壁式框架内力计算_4种类型剪力墙的计算要点
  3. Win11怎么设置桌面软件小图标 Win11设置桌面软件小图标教程
  4. centos6.5安装bugzilla超详细教程
  5. sql语句优化总结 mysql_MySQL-SQL优化总结
  6. 后端开发 java_Java后端开发三年,你不得不了解的JVM
  7. python 3.9.0a0_Python 3.9.0 稳定版发布
  8. php实现小说字典功能_PHP实现生成数据字典功能示例
  9. python变量类型有几种_python十种变量类型
  10. Android adb 启动APP