Подтверждение формы раскрывающегося списка стран - PullRequest
0 голосов
/ 14 февраля 2012

Прежде всего, я уже прочитал это: Проверка выпадающего списка форм в CodeIgniter

Но это не решает мою проблему:

Как вы знаете, <option>значение может быть подделано, например, с помощью firebug.

Мои параметры выбора выглядят так:

<option value="ger">Germany</option>
<option value="uk">United Kingdom</option>
<option value="usa">United States of America</option>
[...]

Теперь, как я могу проверить правильность выбранного и опубликованного значения?Эти значения построены на большом массиве.Это выглядит следующим образом:

$countries = array (
     'ger' => 'Germany',
     'uk'  => 'United Kingdom',
     'usa' => 'United States of America'
);

Так как я могу проверить правильность выбранного значения?Придется ли мне использовать array_key_exist с обратным вызовом функции при проверке формы?

Что в случае, если мои параметры выбора выглядят следующим образом?

<option value="0">Choose Something</option>
<option value="1">Select-1</option>
<option value="2">Select-2</option>
[..]

Как я могу проверить вышеуказанное с помощьюсредство проверки формы, чтобы я мог проверить правильность и правильность введенного значения, а также как предотвратить выбор значения 0?

На мой взгляд, лучшая идея для этого - создать функцию обратного вызова, котораябудет выглядеть следующим образом:

public function validate_values($input)
{
      $allowed = array(1, 2, 3, 4); //[..]
      if ( !in_array( $input, $allowed ) )
      {
           //throw error, and do the rest...
      }

}

С моими идеями все в порядке или есть более подходящие решения для этих случаев?

1 Ответ

1 голос
/ 14 февраля 2012

Обратный звонок - это именно то, что вам нужно. Я думаю, именно поэтому они были созданы. В руководстве пользователя:

"Система проверки поддерживает обратные вызовы для вашей собственной проверки функции. Это позволяет вам расширить класс проверки для соответствия ваши потребности. "

Так что, если вам нужно проверить, представлены ли отправленные значения из определенного диапазона, используйте его. Конечно, он должен возвращать false или true в зависимости от результата. руководство пользователя для обратных вызовов Для меня это лучшее решение. Тем более, что вам нужно проверить эти значения после отправки формы.

Что касается предотвращения выбора 0, не устанавливайте 0 в in_array или сначала проверьте, если $input, например, !empty, и установите правильное сообщение об ошибке. Если вы создаете свой собственный обратный вызов, вы можете проверить $input для чего угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...