我在我的 Twitter 应用程序的回调页面中定期设置 cookie。一切正常。
现在,使用 jQuery,我提交了一个表单,回调函数激活了一个 PHP 脚本。该脚本只需将一个 cookie 设置为 $_POST 的序列化值;并且值运行良好(序列化和正常,我将它们回显以进行调试)。到期时间设置为提前 1 年。但由于某种原因,cookie 不会出现在任何地方。这是代码:
// js/main.js
$('#settings-form').live('submit', function() {
$.post('controllers/settings.php', $(this).serialize(), function(data) { // Everything here works.
if (data == 'OK') // no errors spits out "OK". this works
changeView({'msg': 'Your settings were saved successfully.'}); // This just resets the view and adds a message div at the top. This works
else
changeView({'msg': data}); // This echoes the error if any exists. Doesn't happen, no errors arise
});
return false; // Cancels redirecting after submitting form
});
// controllers/settings.php
setcookie('user_settings', serialize($_POST), strtotime('+1 year'));
我检查了所有变量,甚至尝试设置虚拟变量进行测试(例如“boo”而不是序列化($_POST)。由于某种原因不起作用。
任何想法为什么会发生这种情况?我试着做一个 chdir('..'); 使 cookie 目录转到正确的位置,但这似乎不是问题,检查我的浏览器中的 cookie 似乎根本不起作用,对于任何路径。它根本不起作用。我也只是尝试手动更改域和路径,但这些也不起作用。