什么可能导致在$ _SERVER中的$ _COOKIE中没有设置cookie [英] What could cause cookie to not be set in $_COOKIE when it's in $_SERVER

查看:525
本文介绍了什么可能导致在$ _SERVER中的$ _COOKIE中没有设置cookie的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我设置了一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆