В настоящее время я изучаю PHP, но сталкиваюсь с проблемами. На данный момент я создаю средство проверки почтовых индексов, которое проверяет, поддерживает ли мы (наша компания) локальный совет в этой области. Проблема заключается в сообщениях об ошибках, у меня есть сообщение "Успех" и "Ошибка", но мне также должно появиться сообщение об ошибке "Извините, мы не поддерживаем ваш Совет". Любая помощь будет высоко ценится!
PHP
if (isset($_POST['submitlogin']) && empty($_POST["postcode"])) {
echo '<div class="redalert">'."Please enter a Postcode".'</div>';
echo '<style>' .".enter {display:none;}". '</style>';
}
else {
if (isset($_POST['submitlogin'])) {
echo '<style>' .".enter {display:none;}". '</style>';
$postcodes = array("SW16","BN2","BN3","BN1","BN42");
if (in_array($input, $postcodes)) {
echo '<div class="alert">' . $brighton . '</div>';
}
$postcodes = array("PO18","RG14","GU29","PO20","GU28","PO19");
if (in_array($input, $postcodes)) {
echo '<div class="alert">' . $chichester .'</div>';
}
$postcodes = array("BN22","G42","G31","BN23","BN21","BN20","BN24");
if (in_array($input, $postcodes)) {
echo '<div class="alert">' . $eastbourne . '</div>';
}
$postcodes = array("SO32","SO50","SO30","SO31","SO53","SO16","SO21","SO52");
if (in_array($input, $postcodes)) {
echo '<div class="alert">' . $eastleigh . '</div>';
}
$postcodes = array("KT12","KT14","KT10","KT11","KT8","KT6","KT13","KT22","KT7");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$elmbridge.'</div>';
}
$postcodes = array("PO12","PO13","PO14");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$gosport.'</div>';
}
$postcodes = array("GU15","GU3","GU7","KT11","GU2","GU5","GU1","GU24","TW20","GU3","GU23","GU10","GU7","GU4","GU5","GU2","GU10","GU7","GU21","GU3","GU4","GU3","GU1","GU5","GU3","GU12","GU1","GU7","GU4","GU8","GU23","GU4","GU7","GU4","GU3","KT24","GU23","GU3","GU7","GU5","GU23","GU5","RH5","GU4","KT24","GU7","GU8","GU1");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$guildford.'</div>';
}
$postcodes = array("GU17","GU52","GU10","GU51","RG27","GU10","GU51","RG29","GU46");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$hart.'</div>';
}
$postcodes = array("TN34","TN33","TN38","TN35","TN37");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$hastings.'</div>';
}
$postcodes = array("BN8","BN6","BN7","BN9","BN10","BN25","RH17");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$lewes.'</div>';
}
$postcodes = array("KT15","KT16","TW20","TW18","KT15","GU25");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$runnymede.'</div>';
}
$postcodes = array("GU11","GU17","GU14","GU9");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$rushmoor.'</div>';
}
$postcodes = array("BN26","TN33","TN22","BN8","TN6","RH17","RH18","BN27","TN21","BN24","TN5","TN7");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$wealden.'</div>';
}
$postcodes = array("KT14","GU24","GU21","GU22","GU4");
if (in_array($input, $postcodes)) {
echo '<div class="alert">'.$woking.'</div>';
}
}
}
?>
Я попытался добавить Else после каждого, но не добился успеха. Любое руководство было бы замечательным.
С уважением
Вам просто нужно отслеживать, если ЛЮБОЙ из тех операторов if()
нашел совпадение:
$found = false;
if(in_array(...)) {
$found = true;
}
if(in_array(...)) {
$found = true;
}
... lots more ifs() ...
if (!$found) {
die("Council not supported");
}
Вы можете сделать это с помощью инструкций elseif
:
if (in_array($input, $postcodes = array("SW16","BN2","BN3","BN1","BN42"))) {
echo '<div class="alert">' . $brighton . '</div>';
} elseif (in_array($input, $postcodes = array("PO18","RG14","GU29","PO20","GU28","PO19"))) {
echo '<div class="alert">' . $chichester .'</div>';
} elseif (in_array($input, $postcodes = array("BN22","G42","G31","BN23","BN21","BN20","BN24"))) {
echo '<div class="alert">' . $eastbourne . '</div>';
} //a lot more else ifs
else { //none of the above if conditions were met
echo '<div class="alert">Invalid postal code!</div>';
}
Поскольку все блоки if
/elseif
/else
состоят только из 1 строки в этом примере, вы можете оставить фигурные скобки:
if (in_array($input, $postcodes = array("SW16","BN2","BN3","BN1","BN42")))
echo '<div class="alert">' . $brighton . '</div>';
elseif (in_array($input, $postcodes = array("PO18","RG14","GU29","PO20","GU28","PO19")))
echo '<div class="alert">' . $chichester .'</div>';
elseif (in_array($input, $postcodes = array("BN22","G42","G31","BN23","BN21","BN20","BN24")))
echo '<div class="alert">' . $eastbourne . '</div>';
else
echo '<div class="alert">Invalid postal code!</div>';
Обратите внимание, что когда вы используете фигурные скобки, вы можете использовать либо else if
либо elseif
- но когда вы оставляете фигурные скобки, используя else if
(с пробелом между ними) будет сбой с ошибкой синтаксического анализа.