我正在为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];
但是不要返回任何值...
我发现了问题,我已经测试了所有这些选项,但是从不工作,问题是我正在测试网站主页内的功能,而在主页(mysite.com)上却没有获取参数(?page = nossuport),所以当我在GET中使用变量或使用echo $ GET [$ my_var]进行测试时,总是返回null值。这是我的粗心大意,永远不会工作...
顺便说一下,两个参数正常工作:
$_GET[$url_before]
$_GET["$url_before"]
问题已解决,谢谢您的帮助。
if($_GET[$url_before] != ""){
if($_GET[$url_before]=="nosupport"){ // note no "" here
// my function goes here...
}
}
在您的解决方案中,键被视为字符串,未评估任何变量。
您忘记了在第二种情况下取出'。
您写道:
$_GET['$url_before']
我猜应该是:
$_GET[$url_before]
foreach($ _ GET as $ key => $ value){if($ key ==“ nosupport”){
}}