0

我正在为 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

4 回答 4

1

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

顺便说一句,这两个参数工作正常:

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

问题已解决,谢谢帮助。

于 2013-10-02T14:34:35.050 回答
0
if($_GET[$url_before] != ""){ 
    if($_GET[$url_before]=="nosupport"){ // note no "" here
        // my function goes here...
    }
}

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

于 2013-10-01T21:22:34.263 回答
0

您忘记在第二种情况下取​​出 ' 。

你写了:

     $_GET['$url_before']

我猜应该是:

     $_GET[$url_before]
于 2013-10-01T21:22:55.143 回答
0

foreach($_GET as $key => $value){ if($key == "nosupport"){

} }

于 2020-06-04T02:03:19.407 回答