我正在製作一個函數,以便我可以使用通用函數在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