Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 2.5-如何正确检查用户是客人还是会员_Joomla_Joomla2.5_Membership - Fatal编程技术网

Joomla 2.5-如何正确检查用户是客人还是会员

Joomla 2.5-如何正确检查用户是客人还是会员,joomla,joomla2.5,membership,Joomla,Joomla2.5,Membership,检查成员是否已在Joomla登录的最佳(最快/最安全/长期而言更好)方法是什么 1#方式:$user=&JFactory::getUser(); 如果($user->id!=0){ 2方式:$user=JFactory::getUser()->guest; 还是另一种方式 这些是来自自定义脚本的片段,用于检查用户是否是来宾,以告诉他注册,以及他是否登录以欢迎他 我正在使用Joomla 2.5 我读到一些代码根据我使用的php版本的不同而有所不同?我感到困惑 谢谢如果您运行的是PHP5.3,您可以

检查成员是否已在Joomla登录的最佳(最快/最安全/长期而言更好)方法是什么

1#方式:
$user=&JFactory::getUser();
如果($user->id!=0){

2方式:
$user=JFactory::getUser()->guest;

还是另一种方式

这些是来自自定义脚本的片段,用于检查用户是否是来宾,以告诉他注册,以及他是否登录以欢迎他

我正在使用Joomla 2.5

我读到一些代码根据我使用的php版本的不同而有所不同?我感到困惑


谢谢

如果您运行的是PHP5.3,您可以使用以下两种方法之一,但是,如果您运行的是PHP5.3以下的任何内容,请使用:

$user = JFactory::getUser(); 

if($user->id!=0){
    //your code goes here
}
就个人而言,我会选择第二种方法,因为它通过了JoomlaAPI,而且更加彻底


另一方面,如果确实使用了第一种方法,则可以删除
&

假设您正在运行PHP5.3,则可以使用,但是,如果您正在运行低于该值的任何内容,则可以使用:

$user = JFactory::getUser(); 

if($user->id!=0){
    //your code goes here
}
就个人而言,我会选择第二种方法,因为它通过了JoomlaAPI,而且更加彻底


另一方面,如果确实使用第一种方法,则可以删除
&

/*仅当用户实际登录时,才会显示有关当前登录用户的一些信息*/

$user =& JFactory::getUser();

if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
}
$user=&JFactory::getUser();
如果(!$user->guest){
echo“您以以下身份登录:
”; 回显“用户名:”。$User->username.
; 回显“真实姓名:”.$user->name.“
”; 回显“用户ID:”。$User->ID。“
”; }
/*仅当用户实际登录时,才会显示有关当前登录用户的一些信息*/

$user =& JFactory::getUser();

if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
}
$user=&JFactory::getUser();
如果(!$user->guest){
echo“您以以下身份登录:
”; 回显“用户名:”。$User->username.
; 回显“真实姓名:”.$user->name.“
”; 回显“用户ID:”。$User->ID。“
”; }
对于Joomla,有两种方法可以检查用户是否登录

$user = JFactory::getUser();

if($user->guest = 1){
//User in not logged in
}
else
{
//User is logged in
} 
或者第二个是

$user = JFactory::getUser();

if($user->id != 0){
//User is logged in
$id = $user->id; // You can use this ID for further Use
}
else
{
//User is no logged in

} 

我个人更喜欢第二个,因为它同时满足两个可用性。

对于Joomla,有两种方法可以检查用户是否登录

$user = JFactory::getUser();

if($user->guest = 1){
//User in not logged in
}
else
{
//User is logged in
} 
或者第二个是

$user = JFactory::getUser();

if($user->id != 0){
//User is logged in
$id = $user->id; // You can use this ID for further Use
}
else
{
//User is no logged in

} 

我个人更喜欢第二个,因为它同时满足了两个可用性。

再次感谢Lodder提供了一个很好的答案,如果有太多的if语句调用(5-7次)来检查该成员是否登录,会导致网站速度变慢吗?(我会根据他是否是成员在每个模块上显示不同的内容)如果他登录并对$member变量执行if检查,而不是调用Joomla API,我会更好地将一个值设置为$member==true吗?站点已经很慢了。:/@StanMarsh-您不会注意到站点速度的任何差异。如果使用
$member
变量,也不会有任何不同。它会我每次都会浏览Joomla API,因为你必须在我的回答中用代码定义
$member
,你是对的,最后一个问题是方法一和方法二在速度上会有什么不同吗?另外,如果我更换服务器并运行到5.2服务器,第二个示例会在那里工作吗?再次感谢!!我不完全确定是哪一个一个更快,但是差异会很小,你甚至不会注意到。我想你可以运行一些测试,看看哪一个先执行。我相信第二个示例会抛出一个错误,因为
getUser()中的
instanceof
功能。但是我还没有测试它。再次感谢房客给了我一个很好的回答,如果有太多的关于if语句的调用(5-7次)来检查该成员是否登录,是否会导致网站速度变慢?(我会根据他是否是成员在每个模块上显示不同的内容)如果他登录并对$member变量执行if检查,而不是调用Joomla API,我会更好地将一个值设置为$member==true吗?站点已经很慢了。:/@StanMarsh-您不会注意到站点速度的任何差异。如果使用
$member
变量,也不会有任何不同。它会我每次都会浏览Joomla API,因为你必须在我的回答中用代码定义
$member
,你是对的,最后一个问题是方法一和方法二在速度上会有什么不同吗?另外,如果我更换服务器并运行到5.2服务器,第二个示例会在那里工作吗?再次感谢!!我不完全确定是哪一个一个更快,但是差异会很小,你甚至不会注意到。我想你可以运行一些测试,看看哪一个先执行。我相信第二个示例会抛出一个错误,因为
getUser()
函数中的
instanceof
。但是我没有测试它。