У меня есть этот код, и он дает мне неопределенную ошибку, если страна не является переменной в URL. Раньше у меня никогда не было этой проблемы, поэтому это явно связано с настройками сервера, но я бы предпочел не изменять их, потому что это, вероятно, сделано для целей безопасности. Я искал Google и не могу найти обходной путь, хотя я уверен, что это ослепительно очевидно!
$country = $_GET['country']; if(!$country){ $incoming = $outgoing = $sms = $free = "---"; } else { get_rates($country); }
вы должны использовать следующий подход:
if (!isset($_GET['country'])) { $incoming = $outgoing = $sms = $free = "---"; } else { get_rates($_GET['country']); }
isset позволяет проверить, существует ли переменная (если мы не придаем ей значение false).
$country = isset($_GET['country'])? $_GET['country'] : false;
"Undefined index"
означает, что элемент не существует в массиве. Вероятно, ваш сервер должен сообщить об этих ошибках, пока вашей системы пока нет. Проверьте, существует ли элемент перед его доступом.
$country = null; if (!empty($_GET['country']) { $country = $_GET['country']; }
Вероятно, вы должны проверить, установлен ли $ _GET ['страна']. Я бы обернул весь блок кода, который вы разместили в инструкции if
которая проверяет, задано ли поле страны, используя функцию isset
.
Просто измените:
$country = $_GET['country'];
К этому:
$country = @$_GET['country'];
«@» – это оператор, который будет удалять ошибки.