2013-10-01 104 views
0

我正在開發wordpress的插件,根據用戶通過Wordpress管理面板的偏好將$ _GET的參數記錄在數據庫中。下面的驗證必須通過$ _GET,這是功能:

$db_url = get_option('my_get_url'); 
// returns the value of the database entered by User 
// on this case return --> page=nosupport 

$url_explode = explode("=", $db_url); 
$url_before = $url_explode[0]; // --> page 
$url_after = $url_explode[1]; // --> nosupport 

echo "Before: ".$url_before; // here are ok, return --> page 
echo "After: ".$url_after; // here are ok, return --> nosupport 

我的問題是在這裏:

// here $_GET no have any value, dont work on validate... 
if($_GET[$url_before] != ""){ 
    if($_GET['$url_before']=="nosupport"){ 
     // my function goes here... 
    } 
} 

我使用測試的參數:

echo $_GET[$url_before]; 

但不要返回任何值...

+3

'$ _GET ['$ url_before']!= $ _GET [$ url_before]',失去引號。 – Wrikken

+0

除了引用的東西,他確實說沒有加引號的版本仍然沒有返回 –

+0

你可能想檢查整個'$ _GET'數組是什麼,以防'$ url_before'設置不正確。 –

回答

1

我發現這個問題,我已經測試了所有這些選項,但永遠不工作,問題當時我正在測試我網站主頁內的函數,並且在主頁面(mysite.com)沒有得到參數(?page = nossuport),所以當我使用變量時總是返回空值在GET或使用echo $ GET [$ my_var]來測試..這是我的一個粗心大意,永遠不會工作...

順便說一下,這兩個參數正常工作:

$_GET[$url_before] 
$_GET["$url_before"] 

的問題都解決了,感謝您的幫助。

0
if($_GET[$url_before] != ""){ 
    if($_GET[$url_before]=="nosupport"){ // note no "" here 
     // my function goes here... 
    } 
} 

在您的解決方案中,密鑰被視爲字符串,未評估變量。

0

你忘了取出'在第二個條件。

您寫道:

 $_GET['$url_before'] 

我猜應該是:

 $_GET[$url_before]