|
|
|
| Всем привет.
Получаемые параметры:
$da = isset($_POST['da']) ? rawurldecode($_POST['da']) : '';
$id = isset($_POST['id']) ? $_POST['id'] : 0;
$iv = isset($_POST['iv']) ? $_POST['iv'] : '';
|
Вот их проверки:
if(!preg_match("/^[a-z0-9=+\/]+$/i", $da) || !preg_match("/^[0-9]+$/", $id) || !preg_match("/^[a-z0-9]+$/", $iv)){
$pmsg = -1;
$tmsg = $emsg.'полученные параметры не соответствуют шаблону.';
}else{
...........
}
|
Ошибка получается в результате если передать массив. Как от этого обезопасится? Там где числа прогоняем через floor(), а там где текст - конвертируем в стринг? Посоветуйте, как быть. | |
|
|
|
|
|
|
|
для: TetRiska
(07.10.2012 в 23:16)
| | Для того, чтобы убедиться в том, что данные это число, достаточно is_numeric(). Если "Как от этого обезопасится?" означает "как проверить входной массив данных?", то существуют фильтры. Используйте filter_input_array(). Версия РНР при этом должна быть не ниже 5.2.0.
Кроме этого, существуют итераторы, которыми вы можете обойти массив используя свои шаблоны, а на выходе получить булево значение - соответствует/не соответствует. | |
|
|
|
|
|
|
|
для: confirm
(08.10.2012 в 09:15)
| | спасибо, для чисел достаточно будет is_numeric(), а для массивов - is_array() | |
|
|
|
|
|
|
|
для: TetRiska
(08.10.2012 в 11:05)
| | Еще раз убеждаюсь, что не понять, чего же вам на самом деле надо - проверить значения, или убедиться к принадлежности типу. | |
|
|
|
|
|
|
|
для: confirm
(08.10.2012 в 11:13)
| |
$id = isset($_POST['id']) ? $_POST['id'] : 0;
$iv = isset($_POST['iv']) ? $_POST['iv'] : '';
|
if(!preg_match("/^[0-9]+$/", $id) || !preg_match("/^[a-z0-9]+$/", $iv)){
$pmsg = -1;
$tmsg = $emsg.'полученные параметры не соответствуют шаблону.';
}else{
...........
}
|
Мне в одну из переменных прислали массив. Вот я и получил ошибку в регулярке. Поэтому, чтобы не допустить этого, нужно сперва проверить приходит в переменные массив или нет, если нет - проверяем регулярками, иначе блочим. | |
|
|
|
|
|
|
|
для: TetRiska
(08.10.2012 в 15:55)
| | А сразу так и задать вопрос нельзя было? ) | |
|
|
|