2012-10-03 7 views
1

방문자가 웹 사이트에서 처음 방문하는지 확인하고 국가 선택 (상점)을 통해 차단해야합니다. 쿠키에서 방문자 선택을 저장해야합니다 (쿠키로 저장하는 것이 옳다고 생각합니다). 어쩌면 누군가 그걸하고 \ 도움을 줄 수 있을까요?Magento. 방문자 저장소 선택을 쿠키로 저장하십시오.

감사합니다.

답변

2

사용자가 페이지를 방문하면 쿠키가 설정되었는지 확인한 후 쿠키 값을 기반으로 저장소보기로 리디렉션됩니다.

저는 Magento에 새로 입문 했으므로 아마이 방법을 사용하는 것이 더 좋을지 모르지만 저는 비슷한 것을 필요로했습니다.

사용자가 모든 스토어 뷰를 나열한 페이지에 착륙했을 때 팝업 상자에 선택 상자가 있습니다 (이 페이지는 index.php에 있었고 쿠키가 설정되지 않은 경우에만 표시됨). 제출 양식, 나는 다음 양식이 제출 된 후

if(isset($_POST['selectbox'])){ 
     $storeId = $_POST['selectbox']; 
     $store_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).$storeId; 
     $cookie = Mage::getModel('core/cookie'); 
     $period = time()+86400; 
     $cookie->set('country', $storeId,$period, '/'); 

     Mage::app()->getResponse()->setRedirect($store_url); 
    } 

그래서 내가 가게 코드 값을 잡고 쿠키라는 이름의 국가를 설정, 그때 특정로 사용자를 리디렉션하여 head.php 파일의 맨 아래에 다음을했다 스토어 뷰. 국가 쿠키 (다음 시간 동안 사용자가 방문하는 사이트)를 설정 한 경우

나는 다음이 코드 아래에 또 다른 검사는 현재 매장 코드가 같지 않으면 내가보고 확인

 if(isset($_COOKIE['country'])){ 
     $storeId = $_COOKIE['country']; 
     $magento_store_id = Mage::app()->getStore()->getCode(); 
     $redirect_to = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).$storeId; 

    if($storeId != $magento_store_id) 
    { 
     echo "<script type='text/javascript'>window.location.href='".$redirect_to."';</script>"; 
    } 

볼 수 않았다 쿠키에 저장된 값. 그렇지 않은 경우 해당 사용자를 올바른 저장소보기로 리디렉션합니다. 자바 스크립트 리디렉션 헤더를 이미 출력 오류로 인해 사용했다.

바라건대 그것은 당신에게 몇 가지 아이디어와 쿠키를 사용하는 방법을 줄 것이다 ..하지만 내가이 일을 더 나은 방법이 상상했다. 솔직히 나 자신이 올바른 방법으로 그것을 할 수있어서 기쁘다. 그래서 그것을 사용할 수있다.

+0

$ _POST [ 'selectbox']는 Magento입니다. Magento의 모든 보안 논리를 우회하여 해킹하기 쉽습니다. – oscprofessionals

+0

안녕하세요 Satish, 어떻게해야합니까? 다른 사람들이 사용할 수 있도록 위 예제의 수정 된 코드를 제공 할 수 있습니까? 감사 – iSrini