2017-07-12 7 views
0

ユーザーがログインしているかどうか(ゲスト、登録ユーザーではない)の2種類のコードを使用しています。 以下は2つのソースコードです。2つのマゼンタログインチェックコードの違い

(1)

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
$customerId = Mage::getModel('customer/session')->getCustomerId(); 
if(!$customer || !$customerId) { 
    //user is logout 
} 
else{ 
    //user is logged-in 
} 

(2)

if(!Mage::getSingleton('customer/session')->isLoggedIn()) 
{ 
    //user is logged-in 
} 

私は両方のソースコードが同じことをやっているのかを知りたいです。 登録された顧客のみをチェックしているコードは、どちらもログインしているかどうかです。 登録されていない(ゲストユーザー)ユーザーが次のブロックにアクセスすることを拒否したいからです。

答えて

3

これは、お客様がログインしているかどうかを確認する正しい方法です。

if(!Mage::getSingleton('customer/session')->isLoggedIn()) 
{ 
    //user is logged-in 
} 

上記のコードは、お客様がログインしているかどうかを確認するためのmagento inbuilt関数です。

しかし、以下のコードは、ログインした顧客IDを取得するために使用されます。

$customerId = Mage::getModel('customer/session')->getCustomerId(); 

お客様がログインしている場合は顧客IDを返し、そうでない場合はnullを返します。したがって、ログインした小切手顧客にこれを使用しないでください。