我遇到了一个无法在运行LAMP的AWS EC2实例上设置cookie的问题。
我有两个简单的页面,cookie.php和show_cookie.php:
cookie.php
<?php
setcookie('test', 'test', time()+36000, '/');
?>
<a href="show_cookie.php">show me the cookies!</a>
show_cookie.php
<?php
print_r($_COOKIE);
?>
<a href="cookie.php">go back</a>
当我导航到Chrome中的cookie.php并点击该链接时,该页面回显了一个空数组。另外,如果我检查Cookies,那里什么都没有。
我正在使用Apache / 2.4.25(亚马逊)运行PHP 7.0.16。这是一种奇怪的行为。有没有人碰到类似的东西指向正确的方向?
答案 0 :(得分:0)
在我使用cookies的所有经历中,我总是将$_SERVER['SERVER_NAME']
作为第五个参数。我不相信你必须定义$ _Server。我相信它是在执行期间定义的。如果不是,您可能必须将其定义为您的域或IP地址。
setcookie("userid",$global['user-id'],time()+3600*2,'/',$_SERVER['SERVER_NAME']);
这是$ _Cookies的PHP指南的链接。 http://php.net/manual/en/function.setcookie.php
这是$ _Server的PHP指南的链接。 http://php.net/manual/en/reserved.variables.server.php
<强>域强>
Cookie可用的(子)域。将此设置为 子域名(例如&#39; www.example.com&#39;)将使Cookie可用 到该子域及其所有其他子域(即 w2.www.example.com)。使cookie可用于整个域 (包括它的所有子域),只需将值设置为域 名称(&#39; example.com&#39;,在这种情况下)。