【发布时间】:2016-08-11 23:14:01
【问题描述】:
在页面上设置 cookie 是可行的,但是一旦我离开页面,cookie 就会被删除。浏览器设置设置为保留 cookie,仅使用此 php 代码的其他网站不会出现此问题:
<!DOCTYPE html>
<html>
<title>Authentication cookie</title>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Authentication code: <input type="text" name="authcode" value="<?php echo $_GET["authcode"]; ?>">
<input type="submit" name="submit" value="Submit">
</form><br>
<?php
$cookie_name = "authpi";
$cookie_value = $_POST["authcode"];
setcookie($cookie_name, $cookie_value, time() + (10 * 365 * 24 * 60 * 60), '/', '10.0.0.2'); // 86400 = 1 day
?>
<?php
if(!isset($_COOKIE["authpi"])) {
echo "Authentication Cookie named '" . $cookie_name . "' is not set!";
#//header("Location: http://www.google.at/");
} else {
echo "Authentication Cookie '" . $cookie_name . "' is set!<br>";
echo "Your authentication code is: " . $_COOKIE[$cookie_name];
}
?>
<p><strong>Note:</strong> After setting the Cookie reload the page to make sure it works!</p>
</body>
</html>
为什么离开页面后cookie会被移除?
PS:创建 cookie 不是问题。效果很好。
【问题讨论】:
-
浏览器离开页面后如何检查cookie是否存在?你的意思是离开去另一个域,还是离开页面但留在你的域上?
-
转到另一个域并再次访问该页面说 cookie 不存在。离开页面并转到同一域上的另一个页面,然后返回还说 cookie 不存在
-
听起来像是我帖子中的第 1 期。你说创建cookie不是问题。您如何确定 cookie 开始时已正确设置?
标签: php session firefox cookies session-cookies