我没有在10年内完成cookies。我有一个简单的php登录脚本,它根据MySQL数据库中的值检查用户名和密码。如果成功了,我创建了我设置的cookie ...尝试,无论如何。PHP setcookie()问题
我可以得到setcookie()返回true,但没有设置cookie。我大部分时间都意识到这是B/C头文件已被发送。编辑:headers_sent()返回false,所以这不是问题。
会话代码(不要与一个PHP会话()相混淆):
function create_session(&$user_id, &$ip, &$proxy_ip)
{
global $mysqli_auc;
$hash = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$query = "INSERT INTO user_sessions(user_id,ip,proxy_ip,session_hash)
VALUES('$user_id','$ip','$proxy_ip','$hash')";
$result = $mysqli_auc->query($query);
$already_sent = "false";
if (headers_sent()) {
$already_sent = "true";
}
// print "This definitely sends headers";
if (!setcookie("my_hash",$hash,time()+2000)) {
print "Unable to set cookie.<br>";
} else {
print "Set cookie. " . $_COOKIE['my_hash'] . "<br>"; // blank
print "Should be " . $hash . "<br>"; // this holds an md5 hash string
print "Headers sent " . $already_sent "<br>"; // false
}
}
Cookie不会立即出现在当前调用'$ _COOKIE'中,而是在下一次HTTP往返之后。 – mario 2015-04-04 15:42:49
谢谢。不过,值得一提的是,我正在检查我的浏览器,他们不在那里。肯定是一个错误,因为它现在在那里。谢谢。不确定它是否有资格作为答案,但如果您将它作为一个整体提供,我会接受它! – 2015-04-04 16:07:02