我正在使用Joomla2.5,在我的站点中,我有一个模块,其代码如下:
<?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时创建,如果我认为这在站点性能/速度方面会更好的话,纠正我的错误。
我试过这个:
<?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书籍,但是找不到错误。任何帮助都很感激。
发布于 2013-08-30 15:23:34
您已经在调用$user->guest,所以请尝试更改:
$user = JFactory::getUser()->guest;对此:
$user = JFactory::getUser();作为一种选择,您还可以使用以下方法:
$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';
}发布于 2013-08-31 02:46:02
您可以在一行中完成此操作,重构代码将是
$member = (JFactory::getUser()->id) ? true : false ;https://stackoverflow.com/questions/18536338
复制相似问题