2011-02-04 67 views
2

我有这样一个简单的链接:<a href="?wp_accept_function=10">Accept</a>如何调用GET参数中指定的函数?

这个想法是,这将运行一个函数称为wp_accept_function和传递在10我如何做到这一点?谢谢

这是我到目前为止的代码,但我觉得我会出错,需要将数字传递给函数,然后才能在函数内使用它。由于

if (isset ($_GET ['wp_accept_function'])) 
     { 
      function wp_accept_favor ($id) 
      { 

       // JAZZ 

      }   
     } 

回答

7

我想你想要这样的:

首先,你需要定义函数。

function wp_accept_favor($id) { 
    // do something 
} 

然后,你必须检查,如果该参数设置和调用该函数。

if (isset($_GET['wp_accept_function'])) { 
    // call the function passing the id casted to an integer 
    wp_accept_favor((int)$_GET['wp_accept_function']);    
} 

演员阵容到(int)是避免将非整数类型wp_accept_favor()功能,但你可以处理它,只要你想。

+0

尝试过,但是当?wp_accept_favor被添加到url时函数没有被调用。用简单的回声测试,没有骰子? – Cameron 2011-02-04 00:41:52

+0

只是注意到你在GET中改变了功能 – Cameron 2011-02-04 00:44:52

2

如果你正在试图建立一些通用...

// Add a white list of functions here which can be called via GET. 
$safeFunctions = array('wp_accept_function'); 

foreach($_GET as $function => $argument) { 
    if (in_array($function, $safeFunctions) 
     AND function_exists($function)) {  

     $function($argument); 

    } 
} 

但是,请确保您有安全功能的白名单中,否则您的应用程序毫无疑问将有安全问题。

相关问题