【问题标题】:php query string server variable never populatedphp查询字符串服务器变量从未填充
【发布时间】:2023-03-22 23:05:01
【问题描述】:

我有一个相当奇怪的问题。我创建了一个简单的 php 脚本,它使用 GET 方法生成一个表单,并且只有一个框供任何人输入任何内容。然后在其下方列出了服务器环境变量。

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

问题是,无论我输入什么,$_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();
?>

【问题讨论】:

  • 我刚刚在 XAMPP 中运行了您的代码(输入 abcdef),我得到了 $_SERVER['QUERY_STRING']Array ( [Q] => abcdef 的 QS=Q=abcdef )print_r($_GET)。它似乎正在工作。您在什么环境中运行代码?

标签: php arrays get environment-variables


【解决方案1】:

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

我的 .htaccess 文件中有以下内容,它从请求中删除了所有查询字符串。

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

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

【讨论】:

    猜你喜欢
    • 2014-04-25
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多