Я разрабатываю плагин для 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), поэтому всегда возвращаю null-значения, когда я использовал переменную в GET или использовал echo $ GET [$ my_var] для тестирования. Это была большая невнимательность, я бы никогда не работал. ..
Кстати, два параметра работают правильно:
$_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]