菜农在学习网站编程后,就被此事困扰很永劫光。
由于前真个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内存储了访问该测试函数的次数,即网站访问计数器。