2012-05-29 13 views
10

próbuję ustawić plik cookie dla użytkowników, którzy Zapis z pop newsletter stronie głównej magentoJak ustawić ciasteczko w Magento

mam pop w głównej magento z opcją subskrypcji biuletynu gdy użytkownik subskrybuje biuletyn cookie jest ustawiony, że biuletyn nie pokaże go na następnej wizycie

oto kod jak m ustawienie pliku cookie

<?php 
$value=$_POST['newslettertext']; 
setcookie("EmailCookie", $value); 
setcookie("EmailCookie", $value , time()+86400,"/"); 
function gotopage($url) 
{ 
    echo "<script language=\"javascript\">"; 
    echo "window.location = '".$url."'; \n"; 
    echo "</script>"; 
} 

$url="http://abc.com"; 
gotopage($url); 

?> 

powyższy kod ustawia coookie

po subskrypcji użytkownik przekierowuje do tej samej strony tam muszę sprawdzić, czy plik cookie jest ustawiony wtedy kod popup który zaciągnął w przeciwnym razie nie będzie non popup

ale jego wciąż pokazując popup po subsscription

używam tego kod do sprawdzania ciasteczka

<?php 
if(!isset($_COOKIE['EmailCookie'])) 
{ 
//popup code goes here 
} 
?> 

gdzie robię źle?

Odpowiedz

30
require_once 'Mage.php'; 
Mage::app(); 
$cookie = Mage::getSingleton('core/cookie'); 
$cookie->set('cookiename', 'cookievalue' ,time()+86400,'/'); 

tutaj jest odpowiedź

+0

Okres nie powinien zawierać aktualnego czasu. Powinien to być '$ cookie-> set ('cookiename', 'cookievalue', 86400, '/');' – Mikael

6

Oto rozwiązanie:

Mage::getModel('core/cookie')->set($name, $value, $period, $path, $domain, $secure,$httponly); 

Istnieje 7 Parametry gdzie nazwa i wartość są obowiązkowe; inne parametry są opcjonalne i można je ustawić jako null. Zobaczmy to jeden po drugim.

$name= Cookie name 

$value= Cookie Value 

$period= Cookie expire date (by default the period is set as 3600 seconds) 

$path= Cookies path 

$domain= Cookies domain 

$secure= Cookies Security 

$httponly= Http only when yes