2015-03-19 2 views
1

У меня есть этот HTMLPHP санировать данные о местоположении

<select name="country"> 
    <option value="Iraq">1</option> 
    <option value="Texas">2</option> 
    <option value="Paris">3</option> 
    ... 
    <option value="n">nnn</option> 
</select> 

Есть действительно адски много вариантов в этом элементе выбора, и я бы не очень хотел, чтобы дать людям возможность изменять значения опций и Я не могу остановить их делать это, хотя, мне интересно, есть ли эффективный PHP способ проверить, если значение законны, например, я мог бы сделать это:

<?php 
    $country = $_POST['country']; 
    if(($country == "Iraq") && ($country == "Texas") && ($country == "Paris) ....($country == "n")) 
{ 
    allow stuff; 
} 
?> 

Но это потребует очень огромное количество утверждений if, не существует ли еще один волшебный способ решить эту проблему?

+0

Sidenote: Страны никогда не будут 'AND/&&', но 'OR/||'. –

+1

Вы должны хранить эти значения параметров где-нибудь в массиве (или базе данных) и эхом их при создании формы и использовать тот же массив для фильтрации ввода. –

+0

Кстати, похоже, что у вас есть свои ценности и тексты. – jeroen

ответ

3

Конечно, использовать in_array:

$countries = ['Iraq','Texas',...]; 
if(in_array($_POST['country'], $countries)) { 
    // allow stuff 
} 

Создайте свой $countries массив один раз, а затем использовать его для создания своих <select> HTML-код и для подтверждения представления. Бонус!

Сторона примечания: мне нужно посетить страну Техас. Не понимали, что они отделились!

+0

Не думал, просто набрал случайно, глупый я: D Я приму твое А в купе минут – Donny123

0

Это далеко от волшебного, но один (несколько эффективного) способа проверки будет использовать in_array http://php.net/manual/en/function.in-array.php

После того, как у вас есть массив из ваших стран, вы можете также использовать его для создания выпадающего.

Смежные вопросы