【发布时间】:2019-05-03 18:57:59
【问题描述】:
我正在为 wordpress 编写一个插件,该插件的第一步是将 cookie 设置为 url 参数 ?r= 的值(如果存在)。
public function init_query_params() {
if(!isset($_GET['r'])) {
return;
}
$cookie_name = 'waitlist_referrer_id';
$cookie_value = $_GET['r'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
}
问题是$_GET 是空的,即使参数确实存在。该参数在$_SERVER['REQUEST_URI'] 中可见,但在$_SERVER['QUERY_STRING'] 中不可见。
此问题仅在此特定客户端的 staging/prod 上持续存在,它适用于我的本地环境和另一个客户端 prod 环境。
目前,我只是从 REQUEST_URI 解析它,但很想帮助追查真正的问题。
【问题讨论】:
-
$_SERVER['QUERY_STRING'] 是否存在(有任何值)?
-
这里是否涉及到 URL 重写?
-
尝试使用 $_REQUEST['r'] 它包含所有 POST GET 和 COOKIE 的内容
标签: php wordpress query-parameters