什么可能导致在$ _SERVER中的$ _COOKIE中没有设置cookie [英] What could cause cookie to not be set in $_COOKIE when it's in $_SERVER
问题描述
我设置了一个cookie很好,并且cookie在请求头中,但当我在PHP超全局 $ _ COOKIE
中访问该cookie时,它不是组。转储 $ _ COOKIE
显示其他cookie,但只有一个,并且都在请求标头中。
code> $ _ SERVER 我可以看到 $ _ SERVER ['HTTP_COOKIE']
中的cookie。 PHP将所有的cookie设置为 $ _ COOKIE
但只有一个。
什么原因可能导致此问题, / p>
服务器正在运行PHP 5.3.3。
更新:
在我的索引的顶部。在下一行上的php I var_dump($ _ SERVER);
,然后 var_dump($ _ COOKIE);
这是我请求的Cookie部分
/ p>
Cookie:SESSe00cd0d8b79da0906c77d52ed6e26907 = 2f9fhsomr2skcfmivagb1i8gj7; __utma = 172891446.852439441.1310775539.1310775539.1310775539.1; __utmc = 172891446; __utmv = 172891446.%3A; __utmb = 172891446.4.10.1310780296; OATMEAL =%9Ey%EE%C9J%956%C0%06%B3%EBZ%83%D1%80%C0%AC%D2%D0T%86%9A%2A%2A%A2E%B7f%86%D7i%C1 %28%19L%1F1%920%3CE%10%B6%C9c%1D%E3%A7H%D9%E1%29%1C%7E5%C8q%CC3%21C%0C%DC%CC%A5%F3i%10 %F7%DCJjF%EE%B9%80%3C%C6Jy%A2%0E%3F%E3%BD%7B%BF%CD%84%85%91%BB3%B9%EA%CB%92%89%AC %FBc%BA%A32s%B5L%3E%DF%9B%CDk%08%DEZ%13%5Da1Q%B0%1CJ%90%AE%AF%3F%15%98%1B%E1%C1g%A9%BBzR %F5Q%82%8F%81%1A%D1%0E%87%DC%F3%3B%FF%B7%8E%09%0F%BF%DFK%A3t%D1%F3%DA_%ECKt%01%00x %D2%CCE%24%BB0%C2w%B4%82%F0Q%00O%F1v%19%11%0A%3A%BB%9Fy%B1%BC9hgy%C4%DC%DEN%C4%A4%3B%7D %E8%84h%07%E3 +%0B%85y%8B%B5y%1B%FC%CE%86B%F55%ED%E0%01%EB%18%13%B0%09%CA%F9%3D%26 %05%FC%A7%F8%E4%CD%3C%9E%D7%24%B1%BF%27t%B4%3C%89%D76%F0%CF%C0%D4%E7Z%A6%02%19j %D7%60%28%82%DF%DF%9C%05%25%CB%CA%04%B9%21N%D2r%A76%DD%D1%CB%97%B0%A9%13%29%3C %D6kdm%D1%14%EA%D4%1Fz%F9%CF%21i%BD%19RN%C3%8Dh%27R%15%99%13%FAv%13%8F%BBd%7B%F5%AD%D5 %22%13q%13Z%F219%B9%B0_%AB%16%7B%D2%18%E3%F0%F6%9D%A4X
删除的Cookie名为OATMEAL。
Update3:此PHP错误类似 https://bugs.php.net/bug.php?id=52018
$ b $感谢大家,但离线从这个线程另一个dev建议base64编码的cookie数据发送时。这工作,并保持数据活着,我能够base64解码服务器端,并继续。I've set a cookie just fine, and the cookie is in the request header, but when I access that cookie in the PHP superglobal $_COOKIE
it isn't set. Dumping $_COOKIE
shows the other cookies but one, and all were in the request header.
If I dump $_SERVER
I can see that cookie in $_SERVER['HTTP_COOKIE']
. PHP sets all of the cookies into $_COOKIE
but one.
What could cause this and whats a fix?
Server is running PHP 5.3.3.
Update:
At the top of my index.php I var_dump($_SERVER);
and then var_dump($_COOKIE);
on the next line, and an expected cookie isn't printed from the second dump.
Update2:
Here's the Cookie part of my request
Cookie:SESSe00cd0d8b79da0906c77d52ed6e26907=2f9fhsomr2skcfmivagb1i8gj7; __utma=172891446.852439441.1310775539.1310775539.1310775539.1; __utmc=172891446; __utmv=172891446.%3A; __utmb=172891446.4.10.1310780296; OATMEAL=%9Ey%EE%C9J%956%C0%06%B3%EBZ%83%D1%80%C0%AC%D2%D0T%86%9A%2A%2A%A2E%B7f%86%D7i%C1%28%19L%1Fl%920%3CE%10%B6%C9c%1D%E3%A7H%D9%E1%29%1C%7E5%C8q%CC3%21C%0C%DC%CC%A5%F3i%10%F7%DCJjF%EE%B9%80%3C%C6Jy%A2%0E%3F%E3%BD%7B%BF%CD%84%85%91%BB3%B9%EA%CB%92%89%AC%FBc%BA%A32s%B5L%3E%DF%9B%CDk%08%DEZ%13%5Da1Q%B0%1CJ%90%AE%AF%3F%15%98%1B%E1%C1g%A9%BBzR%F5Q%82%8F%81%1A%D1%0E%87%DC%F3%3B%FF%B7%8E%09%0F%BF%DFK%A3t%D1%F3%DA_%ECKt%01%00x%D2%CCE%24%BB0%C2w%B4%82%F0Q%00O%F1v%19%11%0A%3A%BB%9Fy%B1%BC9hgy%C4%DC%DEN%C4%A4%3B%7D%E8%84h%07%E3+%0B%85y%8B%B5y%1B%FC%CE%86B%F55%ED%E0%01%EB%18%13%B0%09%CA%F9%3D%26%05%FC%A7%F8%E4%CD%3C%9E%D7%24%B1%BF%27t%B4%3C%89%D76%F0%CF%C0%D4%E7Z%A6%02%19j%D7%60%28%82%DF%DF%9C%05%25%CB%CA%04%B9%21N%D2r%A76%DD%D1%CB%97%B0%A9%13%29%3C%D6kdm%D1%14%EA%D4%1Fz%F9%CF%21i%BD%19RN%C3%8Dh%27R%15%99%13%FAv%13%8F%BBd%7B%F5%AD%D5%22%13q%13Z%F219%B9%B0_%AB%16%7B%D2%18%E3%F0%F6%9D%A4X
The cookie that's dropped is named "OATMEAL".
Update3: This PHP bug sound similar https://bugs.php.net/bug.php?id=52018
Thanks everyone, but offline from this thread another dev suggested base64 encoding the cookie data when sent. That worked and kept the data alive and I was able to base64 decode server-side and continue on.
这篇关于什么可能导致在$ _SERVER中的$ _COOKIE中没有设置cookie的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!