【问题标题】:Cookie crashes a Wordpress websiteCookie 使 Wordpress 网站崩溃
【发布时间】:2017-11-23 19:40:51
【问题描述】:

我为 WordPress 开发插件已经有一段时间了,到目前为止一切正常。我在个人网站上测试了我的插件很多次,都成功了。

尽管现在,我已将我的插件移至另一个现有网站。当我的插件创建 cookie 时,整个网站崩溃并给我错误:“ERR_TOO_MANY_REDIRECTS”。

当我检查我的 cookie 浏览器时,我可以看到 cookie 已成功制作。但是,在我清除该 cookie 之前,网站上的每个页面都无法访问...

cookie 名为 cart,在路径 / 上创建,包含以下内容: [{"product_id":"19","firstName":"Test","lastName":"Test","city":"Amsterdam","brand":"KTM","number":0 ,"licence":"","transponder":0,"match":""}]

我通过创建一个空的 JavaScript 对象、向它添加值并使用 document.cookie 推送 cookie 来添加 cookie:

var item = {};
item.product_id = product_id;
item.firstName = firstName;
item.lastName = lastName;
item.city = city;
item.brand = brand;
item.number = number;
item.licence = hasLicence == 1 ? licence : "";
item.transponder = hasTransponder == 1 ? transponder : 0;
item.match = isMatch;
cart.push(item);

document.cookie = "webshop_cart=" + JSON.stringify(cart) + ";path=/";

这可能是什么?我真的没有这个想法,这让我很紧张!

【问题讨论】:

  • 现在无法回答您的问题,因为没有 cookie 会阻止您的网站加载。您使用什么代码(minimal reproducible example)来检查该 cookie?
  • 好的。我会尝试发布一些最小的代码。
  • 我添加了用于创建 cookie 的代码。我看不出 cookie 是如何使网站崩溃的,因为没有一个页面正在加载!即使是不使用我的插件的页面...
  • 用于检查 cookie 的 PHP 代码怎么样?
  • 即使我注释掉使用 cookie 的每一行代码,它仍然会导致网站崩溃。

标签: javascript php wordpress


【解决方案1】:

尝试使用 URI 对您的 cookie 进行编码:

var item = {};
item.product_id = product_id;
item.firstName = firstName;
item.lastName = lastName;
item.city = city;
item.brand = brand;
item.number = number;
item.licence = hasLicence == 1 ? licence : "";
item.transponder = hasTransponder == 1 ? transponder : 0;
item.match = isMatch;
cart.push(item);

document.cookie = "webshop_cart=" + encodeURIComponent(JSON.stringify(cart)) + ";path=/";

然后在您再次需要时使用 decodeURIComponent 解码您的 cookie。

【讨论】:

  • 虽然我真的希望这能奏效,但不幸的是它给了我完全相同的结果。 :( 我正在尝试加密我的 cookie,它可以工作并且可以防止网站崩溃。不幸的是,我还没有找到可以在我的 PHP 后端轻松再次解密的加密方法...
猜你喜欢
  • 2022-06-10
  • 2017-05-07
  • 2018-06-22
  • 2017-01-06
  • 1970-01-01
  • 2021-08-18
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多