1

这可能真的很简单,但我已经绕着圈子试图让它工作。我的强项是 HTML/CSS 而不是 PHP。

我有一个 3rd 方组件,我正在自定义它以在发布广告的用户在线时显示。到目前为止,我还无法让它工作。

我一直在将从组件获得的用户 ID 传递给 Joomla 用户对象。

$user =& JFactory::getUser($var_from_component);

然后我尝试检查是否设置了来宾标志,因为我知道如果用户登录它将为零,但如果用户没有登录则为空。

if($user->guest==0) {
  echo "User is online";
 } else {
  echo "User is offline";
 }

我还尝试了三个等号,因为我想检查该值实际上设置为零而不是空值,所以基本上我一直在弄乱这种方法的变体太久了。如果有人知道更好的检查方法,请说。我还尝试检查会话表中的用户 ID,但我对 mySQL 查询并不那么精通。

提前致谢!

4

2 回答 2

3

您可以查询会话表以检查用户是否登录 -

$db     =& JFactory::getDBO();
$query      = 'SELECT COUNT(userid) FROM #__session AS s WHERE s.userid = '.(int)$userid;
$db->setQuery($query);
$loggedin   = $db->loadResult();
if($loggedin){
    //echo 'User is logged in';
}
于 2013-02-05T11:29:36.697 回答
0

试试这个,

你可以检查像

$user = &JFactory::getUser($user_id);
//print_r($user);
if(isset($user->guest))
    echo "Online";
else
    echo "Offline";

希望这可以帮助你..

于 2013-02-05T11:16:44.077 回答