2015-11-05 103 views
0

我有一个相当奇怪的问题。我创建了一个简单的php脚本,它使用GET方法生成一个表单,而任何人都可以输入任何内容。然后在下面列出服务器环境变量。php查询字符串服务器变量从未填充

当我点击提交按钮时,我应该看到QS=Q=x其中x是我输入的文本,print_r的第一个数组应该包含索引Q等于x。

问题是,无论我输入什么,$_SERVER['QUERY_STRING']永远不会填充,并且print_r($_GET);始终输出一个空数组。

为什么会发生这种情况,我该如何解决?

<?php 
echo "<!DOCTYPE HTML><html><head><title>Test</title></head><body>"; 
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"GET\">"; 
echo "<input type=\"text\" name=\"Q\"><input type=\"submit\">"; 
echo "</form>"; 
echo "<h1>QS=".$_SERVER['QUERY_STRING']."</h1>"; 
echo "<pre>"; 
print_r($_GET); 
print_r($_SERVER); 
echo "</pre>"; 
echo "</body></html>"; 
exit(); 
?> 
+0

我只是跑你的代码在XAMPP(输入ABCDEF),我得到** QS = Q = ABCDEF **为'$ _ SERVER [ 'QUERY_STRING']'和**阵列 ( [Q] => ABCDEF )**为'print_r($ _ GET)'。它似乎在工作。你在什么环境下运行你的代码? – Kuya

回答

0

没关系......我找到了答案

我在其中修剪了请求所有查询字符串我的.htaccess中。

RewriteCond %{QUERY_STRING} !^$ 
RewriteRule ^(.*)$ /$1? [R=301,L] 

我现在删除它,一切正常。