如何在参数$ _GET中使用变量?示例:($ _GET [$ my_var])

时间:2013-10-01 21:19:14

标签: php wordpress variables parameters get

我正在为wordpress开发一个插件,$ _GET的参数根据用户通过Wordpress管理面板的偏好记录在数据库中。以下验证必须通过$ _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];

但是不要回报任何价值......

4 个答案:

答案 0 :(得分:1)

我发现了问题,我已经测试了所有这些选项,但是从来没有工作,问题是我在我的网站主页面内测试功能,并在主页面上(mysite.com)没有得到参数(?page = nossuport),所以总是返回空值,当我在GET中使用变量或者使用echo $ GET [$ my_var]进行测试时..这是我的一个粗心大意,会从不工作......

顺便提一下,这两个参数可以正常工作:

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

问题解决了,谢谢你的帮助。

答案 1 :(得分:0)

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

在您的解决方案中,密钥被视为字符串,未评估任何变量。

答案 2 :(得分:0)

你忘了在第二个条件下取出'。

您写道:

     $_GET['$url_before']

我猜它应该是:

     $_GET[$url_before]

答案 3 :(得分:0)

foreach($ _ GET as $ key => $ value){ if($ key ==“ nosupport”){

} }