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,则抛出错误.