[英]PHP Cookies Won't Set
我在本地主机上。 关于cookie和localhost上的会话的讨论很多。 但是,我的情况似乎很特殊。 我尝试以不同的方式设置Cookie,但似乎没有任何效果,即使设置会话变量后,即使$_SESSION
数组也保持为空。 我尝试了以下组合以在本地主机上设置Cookie:
setcookie("name", "value")
setcookie("name", "value", 0)
setcookie("name", "value", 0, "/", false)
setcookie("name", "value", time()+86000, "/", false)
setcookie("name", "value", time()+86000)
setcookie("name", "value", time()+86000, ".localhost.com")
setcookie("name", "value", time()+86000, "localhost.com")
setcookie("name", "value", time()+86000, "localhost")
setcookie("name", "value", 0, "/", ".localhost.com")
setcookie("name", "value", 0, "/", ".localhost.com", false, false)
setcookie("name", "value", 0, "/", "localhost")
setcookie("name", "value", 0, "/", "localhost.com", false, false)
setcookie("name", "value", 0, "/", "localhost.com")
我还编辑了PHP.ini文件中的会话cookie值,以反映我对setcookie
徒劳尝试。 我还尝试了所有尝试将路径从“ /”更改为“ / user”。
我在Apache 2.4.33上使用PHP 7.1,并配置了“ localhost.com”以指向服务器文档根目录上的目录“ / app_support”。 我还配置了“ app.localhost.com”以指向“ / subdomains / app”目录,该目录也在服务器的根目录上。 我正在通过“ app.localhost.com”访问我的站点,然后使用AJAX访问“ localhost.com/user”。 在“ localhost.com/user”目录上,我有“ user.php”,这是一个带有User类的文件,我用于登录和设置cookie。
我已经在Firefox 60中验证过,正在为我的自定义Cookie和会话Cookie发送Cookie标头,因此很明显是由于某种原因浏览器拒绝了它们。 我在Chrome 68和Chromium 66中得到了相同的结果。
编辑 :这是我设置cookie的部分。
session_regenerate_id();
$_SESSION['user']['id'] = $user['investor_id'];
$_SESSION['user']['surname'] = $user['surname'];
$_SESSION['user']['name'] = $user['given_name'];
$_SESSION['user']['email'] = $user['email'];
$selector = $this->generateCode(9);
$authenticator = $this->generateCode(33);
$expiry = time() + 2592000;
setcookie("logged_in", $selector.':'.$authenticator, $expiry, '/', '.localhost.com');
编辑2 :在Firefox上,这是收到的Cookie标头:
logged_in
domain .localhost.com
expires 2018-09-15T08:35:07.000Z
path /
value F668B2928:417076134356498468FDA03D496336BDA
PHPSESSID
domain localhost.com
httpOnly true
path /user
value 77h432cjgu25mrnauktnc6s471
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.