如何在Magento中设置cookie

Man*_*mar 11 magento

我正在尝试为在magento主页中弹出时事通讯的用户设置一个cookie

当用户订阅时事通讯时,我在magento主页上有一个popletter订阅时事通讯选项卡设置为时事通讯不会在下次访问时显示

这是代码如何设置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);

?>
Run Code Online (Sandbox Code Playgroud)

上面的代码设置了一个coookie

订阅后,用户重定向到同一页面,我检查是否设置了cookie,然后执行弹出代码,否则会出现非弹出窗口

但它仍然显示了订阅后的弹出窗口

我正在使用此代码来检查cookie

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

哪里做错了?

Man*_*mar 32

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

这是答案

  • 期限不应包括当前时间.它应该是`$ cookie-> set('cookiename','cookievalue',86400,'/');` (3认同)

小智 7

这是解决方案:

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

有7个参数,其中名称和值是必需的; 其他参数是可选的,可以设置为null.我们一个一个地看.

$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
Run Code Online (Sandbox Code Playgroud)