Javascript 以$.ajax作为特定PHP函数的目标

Javascript 以$.ajax作为特定PHP函数的目标,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,嘿,伙计们,我有一个设想 我想使用ajax$.get方法在一个单独的PHP文件中针对某个PHP函数。我对语法不是很确定 Javascript function all(){ $.get({ url: "functions.php THEN GET A CERTAIN FUNCTION ", success: function success(data){ paint(data) }, dataType: "html" }); }); fu

嘿,伙计们,我有一个设想

我想使用ajax$.get方法在一个单独的PHP文件中针对某个PHP函数。我对语法不是很确定

Javascript

function all(){

    $.get({
    url: "functions.php  THEN GET A CERTAIN FUNCTION  ",
    success:  function success(data){   paint(data) },
    dataType: "html"
    });


});
function.php

 <?php

function helloWorld(){

echo "Hello World";

};

    function helloMars(){

echo "Hello Mars";

};

数据
属性或URL查询字符串中传递一个变量,然后在PHP脚本中根据该变量选择一个函数

$.get({
   url: "functions.php",
   data: { "vname": "something" },
   success:  function success(data){   paint(data) },
   dataType: "html"
});

PHP:

这对你有帮助吗

$.get("test-ajax.php",function(data,status){

  $(".content").html(data);

});
“test ajax.php”文件

函数helloWorld()

{
echo“hello world”
}

函数helloMars()
{

echo“你好,火星”

}

helloWorld()

helloMars()

您需要做的是以某种方式指示您想要触发某个函数。可能在查询中。然后使用一些逻辑:
if/else
开关
并检测触发器是否已设置。如果是,则调用function.url:“functions.php?fname=helloWorld”,如果vname是函数名,则不必使用If/else$vname=$\u GET['vname']$vname();对我来说,这似乎是一个潜在的安全漏洞。如果有人猜到了正确的名字,他们可能会执行一个你不想执行的函数。因为我们不知道这是否适用于直接用户输入,所以我们不能确定。我认为值得注意的是,函数可以用变量调用。同样在您的代码中,如果“猜测”的人只是猜测helloMars将始终执行的任何内容。我认为这并不理想,但至少他们除了
helloWorld
helloMars
之外,什么都不能执行。你的方法不包含任何消毒,这总是一件坏事。永远不要给未知用户运行您不希望他们运行的代码的权力。@FunkDoc“因为我们不知道这是否适用于直接用户输入,所以我们不能肯定地说”这不重要,因为这是由浏览器执行的ajax请求,所以用户可以通过查看源代码随时调用此url。通过一些幻想和测试,他们可以执行您不希望执行的功能。
$.get("test-ajax.php",function(data,status){

  $(".content").html(data);

});