【发布时间】:2011-04-02 21:15:44
【问题描述】:
我目前正在开发一个 PHP 网站。我正在尝试设置一个存储用户 ID 的 cookie。这是用于登录系统,我需要用户 ID 才能将其添加到 MySQL 数据库中的不同表中。
当用户成功登录时,它会创建一个 PHP 会话和一个 cookie,然后使用元标记刷新来定向到索引页面。
if ($row = mysql_fetch_array($result))
{
setcookie('id', $row['use_id']);
$_SESSION['user'] = $username;
setcookie('userID', $row['use_id']);
echo '<meta http-equiv="refresh" content="0;url=../index.php">';
}
如果我删除元刷新并仅使用$_COOKIE['userID'] 回显cookie,它可以正常工作,但是当我在完成元刷新后尝试在index.php 页面上使用$_COOKIE['userID'] 时,它不会显示任何内容。
【问题讨论】:
-
为什么不将刷新也作为标头发送?无需使用元标记 - 如果您可以发送 cookie 标头,您也可以发送刷新标头。
-
@ThiefMaster 如果我使用标题重定向它会出错,因为我正在将 HTML 输出到屏幕
-
你测试的是什么浏览器?有些浏览器只允许您在 POST 请求中设置 cookie。
-
@Naatan 我已经尝试过 Google Chrome Development Build、普通的 google chrome 和 IE9
-
你能告诉我们设置cookie的页面的响应头吗?