如何从请求中重复重复参数?

时间:2015-07-16 11:11:20

标签: php

例如,如果请求网址的结尾类似于?id=1&id=abc

在处理程序中,当我使用$_GET[id]时,它会返回abc,因为我想先写入值,我认为这是覆盖的,是否可以获得具有相同名称的第一个?

PS,我无法更改params的名字,一些愚蠢的第三方服务器正在使用它们来打我。

3 个答案:

答案 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)

最好你可以更改参数,否则你可以尝试使用你得到的输入值来爆炸功能