从php读取一个javascript cookie

时间:2014-08-13 11:33:46

标签: javascript php

我有一项任务,可以比较产品列表中的五种产品。为了那个原因 我遵循了以下步骤:

第1步:

当我们点击添加到每个产品的比较按钮时设置onclick事件。在这种情况下,我使用此代码通过javascript设置了cookie。

// cookie is set by array because of we have to store 1 to 5 products
var comparearray  = [productid];
document.cookie = "compareitem" + "=" + comparearray;

成功设置了cookie值,该值保存了那些选择要比较的产品ID。

第2步:在我的PHP文件中,我尝试检索此cookie值.BY,

$cookie_val = $_COOKIE['compareitem '];

但它没有奏效。我不知道这种概念是值得的。如果知道,请告诉我如何解决我的问题。提前谢谢。

2 个答案:

答案 0 :(得分:0)

由于有些人写的是你不能在PHP中使用JS设置的cookie,我现在就回答这个问题。

请尝试使用cookieSet和cookieGet函数,您可以使用以下答案: How do I create and read a value from cookie?

var createCookie = function(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

注意写入cookie的最后一个参数..path-param设置为' /',所以根位置!在根位置使用php脚本,这样两者都使用根位置而不是其他位置。

接下来请尝试使用JSON对数组进行字符串化。

var cookiedata = JSON.stringify(comparearray);

然后你应该能够用PHP获取cookie并解析JSON以恢复数组。

答案 1 :(得分:0)

由于路径可能有问题,我建议以扩展方式设置/获取cookie:

document.cookie="foo=bar; path=/;"

或者您可以使用此功能:

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}