2014-11-04 69 views
0

我有一个奇怪的问题,找不到原因。

我有网址

http://example.com/cp/user_detail?userID=2

所以如果我打印的代码

  print_r($_REQUST); 

它不应该打印

   Array ([userID] => 2 ...... ? 

但它的打印这个数组

 Array ([userID] => 84ac17a3690b4ecd8c8abfba8687e750 [_pk_id_2_2fa0] => 
     26c324a269691d77.1410515405.1.1410515405.1410515405. [__utma] => 
     24293118.939351632.1410515405.1410515405.1410515405.1 [__utmz] => 
     24293118.1410515405.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) 
     [PHPSESSID] => 0394dedd26422eedc400b6b5) 

这不奇怪吗?

我对获得GET或POST值

function chf($value) 
    { 
    if(isset($_REQUEST[$value])) 
    { 
     if(isset($_POST[$value])) 
     { 
      $value=$_POST[$value]; 
     } 

     else 

     { 
     $value=$_REQUEST[$value]; 
     } 

     $keywords=array(); 

     $keywords=array('update','delete','select'); 

     foreach($keywords as $key=>$val) 

     { 

      $value= str_replace($val,'',$value); 

     } 

     return $value; 

    } 
    else 
    { 
     return ''; 

    } 
} 

一般的功能,我应该如何改变它,它给了我正确的字符串值?

+0

你为什么要这么做? – IROEGBU 2014-11-04 08:53:02

回答

1

$ _REQUEST默认包含Cookie:http://php.net/manual/en/reserved.variables.request.php。 PHPSESSID,__utm *是饼干。如果你只想要URL参数使用$ _GET。

+0

那么它覆盖$ _GET值? – 2014-11-04 08:58:04

+0

它不会覆盖$ _GET中的值。但是,如果URL参数和cookie/POST参数的名称发生冲突,则$ _REQUEST使用的值由PHP配置指令variables_order或request_order确定。 – lmz 2014-11-04 09:02:21

1

如果你想从你的URL数据,你应该使用

print_r($_GET); 

此西港岛线给你喜欢的数组:

Array(
    [userID] => 2 
)