前端html+js如何直接調(diào)用后端php函數(shù)?
網(wǎng)友解答: 原則上前端html+js是不能直接調(diào)用后端php中的函數(shù)的并返回結果的。菜農(nóng)在學習網(wǎng)站編程后,就被此事困擾很長時間。因為前端的js可以通過ajax技術帶參數(shù)訪問后端的php過
原則上前端html+js是不能直接調(diào)用后端php中的函數(shù)的并返回結果的。
菜農(nóng)在學習網(wǎng)站編程后,就被此事困擾很長時間。
因為前端的js可以通過ajax技術帶參數(shù)訪問后端的php過程,并返回結果。
那么是否js也能帶參數(shù)訪問任意php函數(shù)并返回結果?
菜農(nóng)在網(wǎng)友的指點下完成此設想并測試通過!
其核心思想是通過js的ajax調(diào)用php的call_user_func_array()函數(shù),以實現(xiàn)任意php函數(shù)的調(diào)用。
特別注意:
為了網(wǎng)站的安全和防止黑客的攻擊,特別設立了$funclst數(shù)組,js只能調(diào)用$funclst數(shù)組內(nèi)的特定函數(shù)。
php核心代碼為:
$funclst = array("f0", "f1", "f2", "a1", "a2", "a3", "a4", "HotCount");
$func = $_REQUEST["function"];
if(in_array($func,$funclst) && function_exists($func)){//只能調(diào)用例程函數(shù)
if(isset($_REQUEST["age"]) && strpos(strtolower($_REQUEST["age"]), "http://")){
echo "函數(shù)$func()的參數(shù)中包含非法字符!!!";
} else {
$age =isset($_REQUEST["age"])? explode(",",$_REQUEST["age"]) : array();//參數(shù)以","分割
echo call_user_func_array($func,$age);
}
}else{
echo "函數(shù)$func()不存在!!!";
}
javascript通過Ajax直接調(diào)用任意PHP函數(shù)多參數(shù)例程
菜農(nóng)在網(wǎng)友的指點下完成此例程,非常感謝?。。?/p>
如圖所示,前兩個分別是html和php的源碼(csv內(nèi)存儲了訪問該測試函數(shù)的次數(shù),即網(wǎng)站訪問計數(shù)器。
網(wǎng)友解答:這個問題不是一兩句話能說的清楚,而且要寫出這個代碼來也不是兩段段。
你去騰訊課堂找吧,這是我找到的答案,貌似花幾塊錢購買才能觀看