2013-08-16 20 views
2

什麼是最好的(長期運行最快/最安全/最好)檢查會員是否在Joomla中籤名的方式。Joomla 2.5 - 如何正確檢查用戶是客人還是會員

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

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

或另一種方式?

這些是自定義腳本中的片段,用於檢查用戶是否是來賓,告訴他註冊以及他是否登錄歡迎他。

我使用Joomla 2.5

我已經閱讀Joomla 2.5 check user logged in一些代碼根據我使用的PHP版本有什麼不同?我感到困惑。

感謝

回答

2

您可以使用假設你正在運行PHP 5.3,但是,如果你正在運行下面的東西,然後使用:

$user = JFactory::getUser(); 

if($user->id!=0){ 
    //your code goes here 
} 

就個人而言,我會去第二方法,因爲它通過Joomla API並且更加徹底。

在附註中,如果確實使用第一種方法,則可以刪除&

+0

謝謝Lodder再次提供了一個很好的答案,如果if語句檢查成員是否登錄導致網站變慢,會有太多的調用(5-7)? (Im在每個模塊上顯示不同的內容,基於他是否是成員) 是否會更好?如果他已登錄併爲$ member變量執行if檢查,那麼將值設置爲變量$ member == true而不是調用Joomla API?網站已經很慢了。 :/ –

+0

@StanMarsh - 你**不會注意到網站速度的任何不同。如果你使用'$ member'變量,它不會有任何不同。它仍然會通過Joomla API每次,因爲你必須在我的回答中用代碼定義'$ member' – Lodder

+0

你是對的,最後一個問題是方法一和方法二之間會有什麼不同?另外,如果我更換服務器,並運行到5.2服務器,第二個例子會在那裏工作嗎? 再次感謝! –

1

/*關於登錄用戶當前的顯示,但只有當用戶在實際登錄的一些信息。*/

$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 />'; 
} 
1

爲Joomla有兩種方法可以檢查用戶是否在loged

$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 

} 

我個人比較喜歡,因爲它滿足TW第二個o可用性在同一時間。

相關問題