Joomla 2.5-如何正确检查用户是客人还是会员
检查成员是否已在Joomla登录的最佳(最快/最安全/长期而言更好)方法是什么 1#方式: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,您可以
$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
。但是我没有测试它。