PHP无法获取JS设置的带横杠Cookie(WordPress+GoDaddy环境)
问题场景
使用PHP 8.0 + WordPress 6.1.1搭建站点,通过插件内置的JavaScript函数tourmaster_set_cookie设置名为tourmaster-room-cart的Cookie,浏览器控制台显示Cookie已成功设置,但PHP端调用$_COOKIE['tourmaster-room-cart']时触发「Undefined array key 'tourmaster-room-cart'」错误,执行print_r($_COOKIE)也找不到该Cookie项。
排查过程
- 测试设置简单Cookie(如
username=John Doe),PHP可正常通过$_COOKIE获取 - 仅通过
tourmaster_set_cookie设置的Cookie无法被PHP读取 - 新增多组测试Cookie后定位规律:只有名称包含横杠、且值经过
encodeURIComponent编码的Cookie,无法被PHP获取
结论与解决方法
移除Cookie名称中的横杠(例如修改为tourmasterroomcart)后,PHP即可正常读取该Cookie。推测此问题是GoDaddy服务器对包含横杠的Cookie名称存在兼容性限制导致。
内容的提问来源于stack exchange,提问作者user979331
相关产品推荐
相关产品推荐

