javascript通過Ajax直接調用任意PHP函數多參數

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

前端html+js一般是不能直接調用後端php中的函數的並返回結果的。

菜農在學習網站編程後,就被此事困擾很長時間。

因為前端的js可以通過ajax技術帶參數訪問後端的php過程,並返回結果。

那麼是否js也能帶參數訪問任意php函數並返回結果?

菜農在網友的指點下完成此設想並測試通過!

其核心思想是通過js的ajax調用php的call_user_func_array()函數,以做到任意php函數的調用。

特別注意:

為了網站的安全和防止黑客的攻擊,特別設立了$funclst數組,js只能調用$funclst數組內的特定函數。

php核心代碼為:

$funclst = array(“f0”, “f1”, “f2”, “a1”, “a2”, “a3”, “a4”, “HotCount”);

$func = $_REQUEST[“function”];

if(in_array($func,$funclst) && function_exists($func)){//只能調用例程函數

if(isset($_REQUEST[“age”]) && strpos(strtolower($_REQUEST[“age”]), “http://”)){

echo “函數$func()的參數中包含非法字符!!!”;

} else {

$age =isset($_REQUEST[“age”])? explode(“,”,$_REQUEST[“age”]) : array();//參數以”,”分割

echo call_user_func_array($func,$age);

}

}else{

echo “函數$func()不存在!!!”;

}

javascript通過Ajax直接調用任意PHP函數多參數例程

菜農在網友的指點下完成此例程,非常感謝!!!

如圖所示,前三個分別是html,php和csv,最後一張圖是網站測試http://www.hotpage.com.cn/phptest/HotFunction.html運行的截圖。

csv內存儲了訪問該測試函數的次數,即網站訪問計數器。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!