使用mage magento model php检索js cookie

时间:2013-08-19 13:34:31

标签: magento magento-1.7

使用javascript

创建了一个cookie
function (c_name,value,exdays) {
value = source ;
c_name = "Cookie" ;
var exdate=new Date();
exdays = exdate.setTime(exdate.getTime() + (30*24*60*60*1000));
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;

});

我可以使用Mage :: getModel('core / cookie') - > get(); ??

2 个答案:

答案 0 :(得分:0)

如果您在Mage_Core_Model_Cookie类中查看方法get的定义是:

/**
 * Retrieve cookie or false if not exists
 *
 * @param string $neme The cookie name
 * @return mixed
 */
public function get($name = null)
{
    return $this->_getRequest()->getCookie($name, false);
}

_getRequest()检索Mage_Core_Controller_Request_Http的一个实例,该类扩展了Zend_Controller_Request_Http,其中方法getCookie定义为:

/**
 * Retrieve a member of the $_COOKIE superglobal
 *
 * If no $key is passed, returns the entire $_COOKIE array.
 *
 * @todo How to retrieve from nested arrays
 * @param string $key
 * @param mixed $default Default value to use if key not found
 * @return mixed Returns null if key does not exist
 */
public function getCookie($key = null, $default = null)
{
    if (null === $key) {
        return $_COOKIE;
    }

    return (isset($_COOKIE[$key])) ? $_COOKIE[$key] : $default;
}

所以是的,您可以使用Magento类和方法,Zend或$ _COOKIE超全局来检索cookie。

答案 1 :(得分:0)

是的,您可以使用以下方式访问javascript Cookie:

$cookieValue = Mage::getModel('core/cookie')->get('Cookie');

此外,如果您不需要通过JavaScript设置cookie,则可以通过以下方式设置:

/*
* ->set('name', 'value', 'expDate', 'path', 'domain', 'secure', 'httpsOnly')
* Only Name and Value are required. expDate set for 24 hours below.
*/
Mage::getModel('core/cookie')->set('Cookie', source, time()+86400);