php – $_SERVER不返回查询字符串
发布时间:2020-12-13 17:09:03 所属栏目:PHP教程 来源:网络整理
导读:我只是试图存储用户在数据库中查看的当前页面.页面加载时,我插入$_SERVER [‘REQUEST_URI’]. $_SERVER [‘QUERY_STRING’]进入我的数据库,但只显示了页面(例如index.php?),没有查询字符串(我已经确认URL中有查询字符串). 我用同样的结果尝试了$_SERVER [‘
我只是试图存储用户在数据库中查看的当前页面.页面加载时,我插入$_SERVER [‘REQUEST_URI’]. $_SERVER [‘QUERY_STRING’]进入我的数据库,但只显示了页面(例如index.php?),没有查询字符串(我已经确认URL中有查询字符串).
我用同样的结果尝试了$_SERVER [‘PHP_SELF’]. 编辑添加: Array ( . . . [REQUEST_METHOD] => GET [QUERY_STRING] => view=scores&yr=2010&wk=1 [REQUEST_URI] => /index.php?view=scores&yr=2010&wk=1 . . . ) 因此查询字符串存在于数组中,即使是REQUEST_URI的一部分.所以我的查询…… mysql_query("insert into clickstream (user_id,page) values (" . $_SESSION['user_id'] . ",'" . mysql_real_escape_string($_SERVER['REQUEST_URI']) . mysql_real_escape_string($_SERVER['QUERY_STRING']) . "');") or die('mysql error: ' . mysql_error()); …实际应该插入两次查询字符串,而不是没有时间! 思考? 添加了一个想法:MySQL DB是否有可能从输入中删除所有内容?该字段是varchar. 更新W / PARTIAL SOLUTION:将SQL输入更改为$_SERVER [‘QUERY_STRING’](不带REQUEST_URI)成功输入查询字符串.因此,它让我相信PHP或MySQL正在从?之后的输入字符串中剥离所有内容.所以输入参数是正确的;结果刚被截断. 有谁知道为什么会这样? 解决方法
不同的服务器将不同的$_SERVER全局变量传递给页面.我假设您使用的是Apache而不是NGINX,您可能需要检查是否在FASTCGI_PARAMS中定义了QUERY_STRING.
解决方案是像@hakre那样做,只看到哪个$_SERVER键有你想要的. <?php print '<pre>'; print_r($_SERVER); print '</pre>'; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |