【问题标题】:How to set GET POST and REQUEST strings dynamically如何动态设置 GET POST 和 REQUEST 字符串
【发布时间】:2015-06-25 20:29:22
【问题描述】:

好的,有一段时间我一直在尝试动态设置 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];
}

【问题讨论】:

  • 当它运行时,它不会将动态 var 放入 get var 中。我做错了什么或者可以这样做吗?
  • 我知道这行得通,因为我在脚本的其他地方以不同的方式使用它。我没有设置获取帖子或请求,而是使用它来设置 nvp 数组

标签: php post dynamic get request


【解决方案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 配置指令定义的。

【讨论】:

  • 工作!!!!非常感谢您发布对此的答案。这让我发疯了。
【解决方案2】:

听起来你需要使用variable variable

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

【讨论】:

  • 警告 请注意,变量变量不能在函数或类方法中与 PHP 的超全局数组一起使用。变量 $this 也是一个特殊的变量,不能动态引用。
  • 查看 Nathan Hammond 的示例以更好地理解上述评论。 php.net/manual/en/language.variables.variable.php
【解决方案3】:

您的问题有点令人困惑,但您可以将其提升到第 n 级。

示例代码的想法:

$sReq = $pb['net_req_type'];

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

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

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

}

现在有点晚了,我有点醉了,但我想那可能很接近了。不过还没执行...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2016-06-22
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    相关资源
    最近更新 更多