PHP:如何检查查询字符串或POST变量是否包含两次相同的变量

tho*_*ter 5 php post get query-string

这可能听起来很奇怪,但在我的PHP应用程序中,我需要检查在查询字符串或POST变量中是否多次声明了相同的变量名,并在这种情况下返回错误值.如果我的应用程序在这种情况下没有返回错误,则无法通过合规性检查.

使用$ _GET,$ _POST等访问变量时,PHP仅返回为每个变量名称指定的最后一个值.我找不到一种方法来判断是否有任何变量出现过多次.

我只需要查明查询字符串或POST主体中的变量是否包含多次相同的变量名,无论值是什么.

我的应用程序应该为此查询字符串返回错误:

verb=ListIdentifiers&metadataPrefix=oai_dc&metadataPrefix=oai_dc
Run Code Online (Sandbox Code Playgroud)

请注意,"metadataPrefix"定义了两次.

我的应用程序不应该为此查询字符串返回错误:

verb=ListIdentifiers&metadataPrefix=oai_dc
Run Code Online (Sandbox Code Playgroud)

jen*_*ram 10

POST请求

$input = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)

(或$HTTP_RAW_POST_DATA(文档))

获取请求

$input = $_SERVER['QUERY_STRING'];
Run Code Online (Sandbox Code Playgroud)

处理
explode('&', $input)和维护一个数组 - $foundKeys键(每个项的部分来自字符explode()之前=).如果您按下已定义的键$foundKeys,则抛出错误.