如何动态设置GET POST和REQUEST字符串

时间:2015-04-19 03:27:19

标签: php post dynamic get request

好的,有一段时间我一直在尝试动态设置GET POST和REQUEST变量。

我存储了我希望它在sql表中获取或发布或请求的变量。每个变量都有自己的列。在同一行中,它记录了我希望它尝试使用的类型(GET,POST,REQUEST)。我告诉你这个,所以你看我想怎么做。

来源

$snmpbq=$os_DB->query("SELECT * FROM `spiders` WHERE site = '".$site_name."'") or die(mysql_error());
$num=$os_DB->num($snmpbq);
if($num == 1)
{
//get row as an associative array
$pb=$os_DB->fetch($snmpbq);
//data request type
$req_type = $pb['net_req_type'];
$a1       = $pb['a'];
$b1       = $pb['b'];
$c1       = $pb['c'];
$d1       = $pb['d'];
$e1       = $pb['e'];
$f1       = $pb['f'];
if($req_type == "get")
{
    $a   = $_GET[$a1];
    $b   = $_GET[$b1];
    $c  = $_GET[$c1];
    $d = $_GET[$d1];
    $e  = $_GET[$e1];
    $f   = $_GET[$f1];
}

3 个答案:

答案 0 :(得分:1)

您可以通过用1个块替换块来更清洁地完成此操作...而不是检查请求类型。

如果您删除所有块并替换为:

$a   = $_REQUEST[$a1];
$b   = $_REQUEST[$b1];
$c  = $_REQUEST[$c1];
$d = $_REQUEST[$d1];
$e  = $_REQUEST[$e1];
$f   = $_REQUEST[$f1];

根据PHP文档here

$ _REQUEST中的变量通过GET,POST和COOKIE输入机制提供给脚本,因此可以被远程用户修改并且不可信任。此数组中列出的变量的存在和顺序是根据PHP variables_order配置指令定义的。

答案 1 :(得分:0)

听起来你需要使用variable variable

$result = 'someDataBaseQueryResult';
$$result = 'cool'; // now $someDataBaseQueryResult === 'cool'

答案 2 :(得分:0)

你的问题有点令人困惑,但你可以把它带到n度。

示例代码的想法:

$sReq = $pb['net_req_type'];

foreach($pb as $key => $value) {

    if($key == 'net_req_type')
        continue;

     ${$key} = $_GET[$value];

}

有点晚了,我有点醉了,但我觉得这可能很接近。 Haven虽然执行了它......