Пакетная проверка данных в PHP - PullRequest
1 голос
/ 04 декабря 2010

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

Мой первоначальный подход состоял в том, чтобы пропустить входящие данные через функцию проверки, которая проверила бы значения, специфичные для этой формы, и удостоверилась бы, что и необходимые поля присутствуют, правильное имя / значения ввода предоставлены для некоторых форм, электронные письма действительны для некоторые поля, целые числа для других и т. д., но мой код начал выходить из-под контроля. Мне интересно, должен ли я использовать базу данных для такого типа вещей, так как через мое приложение поступает большое количество пользовательских данных.

Обычно пользователь может выбрать три различных пути, и каждый путь имеет минимум 3 шага и максимум 6 шагов, в зависимости от того, какой путь выбран.

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

Я очень благодарен за любые предложения.

Ответы [ 2 ]

1 голос
/ 04 декабря 2010

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

Можно было бы настроить функции валидатора для каждого типа валидации (например, требуемый текст, номер, телефон, электронная почта и т. Д.) И указать в самих элементах формы в HTML, что нужно проверять в каждом из них, анализируя их на представление. Вам нужно будет использовать name поле <input>, так как кроме value это единственное другое, что отправлено с формой.

Допустим, у вас есть поле для номера телефона, которое необходимо заполнить. Вы можете написать это в HTML так:

<input type="text" name="officephone[required_phonenumber]" value="">

Тогда вам нужно будет правильно проанализировать его в сценарии отправки, где он будет находиться в $_POST['officephone']['required_phonenumber'], и исходя из этого вы будете знать, какие средства проверки запускаются по его значению.

Это довольно грубый способ, который может быть достаточен, если вам нужно разрешить произвольное именование входов пользователем. Ваш мастер форм просто добавит к имени соответствующие теги валидатора, основываясь на потребностях пользователя.

В более общих замечаниях по отправке формы, как и во всем, что конечный пользователь может отправить вручную в POST, следует помнить, что входные имена могут быть изменены, чтобы получить что-то проверенное по-другому или вообще не проверяться, просто изменяя теги валидатора ,

В идеале вы должны разрешать только специально именованные входные данные (возможно, с уникальным идентификатором, добавленным к ним), а присвоение имен будет сопровождаться соответствующей проверкой. Например, мастер форм может назвать входные данные так:

<input type="text" name="phone_1" value="">

и ваш обработчик форм будет знать, что все, что начинается с «телефона», должно быть проверено как номер телефона, а затем использовано соответствующим образом. Таким образом, вам не нужно показывать, как вы проверяете данные в своем HTML.

0 голосов
/ 04 декабря 2010

я опубликую ответ, надеюсь, это поможет;

<?php

if(isset($_POST)) {
  foreach ($_POST as $key => $val) {
    if ($val == "") {
      echo "u no leave null main";
    } else if ($key == "name" && $val == "restricted_value") {
      echo "you are not permited";
    }
  }
}
?>

с этим вы можете проверить каждое значение, а затем выполнить запрос ... не знаю, насколько это помогает

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