2011-02-04 65 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); 

    } 
} 

但是,請確保您有安全功能的白名單中,否則您的應用程序毫無疑問將有安全問題。

相關問題