Найти тип ввода с PHP - PullRequest
       7

Найти тип ввода с PHP

1 голос
/ 08 ноября 2019

Я прошу вашей помощи, потому что я хотел бы автоматизировать что-то при обработке моей формы в PHP.

Моя цель - узнать тип HTML переменной $_POST. Например, если это <input type="number" name="tata">, в моей обработке PHP я хотел бы преобразовать содержимое в (int) $_POST['tata'] и выполнить некоторую проверку.

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

Есть ли способ сделать это в PHP? Я знаю, что могу получить тип с помощью jQuery, но я бы хотел избежать этого метода.

Спасибо за ваши ответы

1 Ответ

2 голосов
/ 08 ноября 2019

Все значения, отправленные на сервер, будут анализироваться как строки независимо от значения. PHP не будет знать, пришло ли значение "1337" из поля ввода * type="number" или type="text". Эти типы просто для пользовательского интерфейса на клиенте.

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

Пример:

<input type="number" name="num[value]" value="1337" />
<input type="hidden" name="num[type]" value="number" />

Если вы сделаете это для каждого входа, то вы можете проверить каждое значение на сервере:

// Access a value directly
$type  = $_POST['num']['type'];
$value = $_POST['num']['value'];

// Or iterate through the items and do something
foreach ($_POST as $key => $param) {
    $type  = $param['type'];
    $value = $param['value'];

    // Do your thing...
}

Примечание

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

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