我正在制作一个函数,以便我可以使用通用函数在Ajax中传递参数,以避免必须为每个Ajax函数创建一个php文件。PHP:如何在这里使用params?
这是我的功能看起来如何,现在在PHP端接收后,通过后,就可以在代码中看到的PARAMS:
$class_name = $_POST['class_name'];
$function_name = $_POST['function_name'];
$params = "'" . implode("','", $_POST['params']) . "'";
$model = new $class_name();
//Apply the function
echo $model->$function_name($params);
据工作除了从则params的一部分。 PHP将它解释为一个参数,我该怎么做才能让$ params不被解释为单个字符串?
这段代码允许执行相当危险的任意代码。我希望这是一个简化的例子,删除类和方法名称的白名单检查。 – johannes
不完全是任意的;它必须是一个定义(或自动加载)类的方法。 (例如,你不能调用一些全局的'makeMeAnAdmin()'函数)。但是,如果没有某种白名单(或者至少是类中的一个'isCallable'变量/方法,这可能是危险的,一种分布式白名单)。 – cHao