Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用GET data在PHP中调用特定函数?_Php - Fatal编程技术网

是否可以使用GET data在PHP中调用特定函数?

是否可以使用GET data在PHP中调用特定函数?,php,Php,我有一个文件functions.php,它有多个函数,如: function do_this(){ } function do_that(){ } 现在,我想做一些奇怪的事情,比如从URL调用该函数: functions.php?func=这样做吗 现在,我将这行代码添加到functions.php if(isset($_GET["func"])){ $func = $_GET["func"]; //How to call that function with name "$

我有一个文件functions.php,它有多个函数,如:

function do_this(){
}

function do_that(){
}
现在,我想做一些奇怪的事情,比如从URL调用该函数:

functions.php?func=这样做吗

现在,我将这行代码添加到functions.php

if(isset($_GET["func"])){
    $func = $_GET["func"];
    //How to call that function with name "$func"

}

有什么好头脑吗?让我知道。如果那不可能,那也让我知道。因为我必须在我的工作中想出一种新的方法。

您需要做的就是在获得$\u get变量时调用函数,如下所示:

if(isset($_GET["func"])){
    $func = $_GET["func"];
    $func();

}

我会让你知道这是可能的,因为我做到了。:)享受这在PHP中称为a。要格外小心!仅执行包含可接受值的数组(白名单)中的函数。否则,您将引入代码注入漏洞(严重的)是的。您可以使用call_user_func();建议您执行类似于
$allowed=array('do_this'、'do_that');如果(!in_array($\u GET['func',$allowed)){//ERROR,不要执行!}
这并不是所需的全部。需要更多的保护来限制对可接受函数的调用。例如,
script.php?func=phpinfo
会将服务器信息转储到屏幕上。