我编写了PHP代码,使用jQuery的$.post
方法注册用户。我有以下文件方案:
index.php(主页)> functions.php(注册表单位于此处,我使用 include 将我的注册表单包含在index.php中)> jquery.js(将$ .post请求发送到php.php)> php.php(所有php的东西都在这里)。
现在我想在注册成功后在php.php中设置cookie。但是,我的cookie在index.php中不可用。
是什么让这个问题发生?
答案 0 :(得分:0)
要设置Cookie,需要触发器。
注册:
if (isset($_POST['Submit'])){
setCookie('Test'); // Testing cookie
}
现在,这是您的示例触发器,更新将在刷新/重定向后追加并完成。这将允许您查看您的cookie。
由于您提供的内容,我现在可以提供这一切。
答案 1 :(得分:0)
我可能预测发生了什么,但有些代码会证实这一点。 Web服务器首先发送标题(包括“Content-Type:HTML”和“Expires:Someday”)。 “Set-Cookies”就是其中之一,需要在任何实际的HTML内容之前发送。如果您在发送内容后尝试设置cookie值,则会失败。
$_COOKIE['val1'] = 'This will theoretically get through.';
echo '<p>This is HTML!</p>';
$_COOKIE['value'] = 'And this will not get through.';
(我在一段时间内没有专门做过PHP,所以实际上我可能忘记了setcookie
是否是必需的方法)