首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查访问者是否登录,如果是,设置一个变量以确定进一步的操作

如何检查访问者是否登录,如果是,设置一个变量以确定进一步的操作
EN

Stack Overflow用户
提问于 2013-08-30 15:17:32
回答 2查看 176关注 0票数 0

我正在使用Joomla2.5,在我的站点中,我有一个模块,其代码如下:

代码语言:javascript
复制
        <?php
$user =JFactory::getUser()->guest;
    if ($user->guest) {
      echo 'Please sign up or sign in to view this'
    }
    else {
      echo 'Here is the content';
    }
       ?>

我尝试但没有奏效的是在第一个if语句中添加一个变量$member。如果此人没有登录以显示回显,但也将$member设置为== true。

我为什么要这么做?我认为,如果我检查$member的状态,就会使站点的加载速度比调用Joomla来确定用户是否登录更快。

决定访问者是否是会员的电话大约是5-7。当我使用JFactory::getUser()函数(上面所有的代码) 5-7次时,它确实会减慢网站的速度。这就是为什么我想在第一次调用$member == true时创建,如果我认为这在站点性能/速度方面会更好的话,纠正我的错误。

我试过这个:

代码语言:javascript
复制
        <?php
$user =JFactory::getUser()->guest;
    if ($user->guest) {
      echo 'Please sign up or sign in to view this'
      $member == true;
    }
    else {
      echo 'Here is the content';
    }
       ?>

我在头模块中有上面的代码。但是,当我稍后在同一页中的其他模块中或在本文中使用php代码时,它不会识别$member的状态,并且总是将用户确定为未登录。

我做错了什么?我猜它有变量范围,我检查了我的PHP书籍,但是找不到错误。任何帮助都很感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-30 15:23:34

您已经在调用$user->guest,所以请尝试更改:

代码语言:javascript
复制
$user = JFactory::getUser()->guest;

对此:

代码语言:javascript
复制
$user = JFactory::getUser();

作为一种选择,您还可以使用以下方法:

代码语言:javascript
复制
$user =& JFactory::getUser();
if($user->id=0){
    echo 'Please sign up or sign in to view this'
    $member == true;
}
else {
    echo 'Here is the content';
}
票数 1
EN

Stack Overflow用户

发布于 2013-08-31 02:46:02

您可以在一行中完成此操作,重构代码将是

代码语言:javascript
复制
  $member = (JFactory::getUser()->id) ? true : false ;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18536338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档