例如,如果请求网址的结尾类似于?id=1&id=abc
在处理程序中,当我使用$_GET[id]
时,它会返回abc
,因为我想先写入值,我认为这是覆盖的,是否可以获得具有相同名称的第一个?
PS,我无法更改params的名字,一些愚蠢的第三方服务器正在使用它们来打我。
答案 0 :(得分:1)
如果你对get变量有所控制。你可以做到以下几点。只需在名称中添加[]
即可使变量成为数组。
<?php
if(isset($_GET['name'])){
echo 'first item: ' . $_GET['name'][0] . '<br>';
echo 'second item: ' . $_GET['name'][1] . '<br>';
}
?>
<form methode="GET">
First name:<br>
<input type="text" name="name[]" value="Mickey"><br>
//---------------------------^ add [] in your form
Last name:<br>
<input type="text" name="name[]" value="Mouse"> <br><br>
//---------------------------^ add [] in your form
<input type="submit" value="Submit">
</form>
答案 1 :(得分:1)
作为解释,您最好使用唯一名称更改请求
对于您的任务...... $ get 中的这项工作将是您的请求
<?php
$string = $_SERVER['QUERY_STRING'];
$data = explode('&',$string);
$get = array();
if($data) {
$paired = $data[0];
$res = explode('=',$paired);
if(count($res)==2 && !isset($get[$res[0]])) $get[$res[0]]=$res[1];
}
var_dump($get);
die;
答案 2 :(得分:0)
最好你可以更改参数,否则你可以尝试使用你得到的输入值来爆炸功能