Перевірка введених даних

Скрипты, разработка, настройка, администрирование

Модераторы: dobs, ArniXXX, hostess, bj

Ответить
Сообщение
Автор
selb
Сообщения: 6
Зарегистрирован: Вт май 07, 2013 12:49
Откуда: Тернопіль
Контактная информация:

Перевірка введених даних

#1 Сообщение selb » Сб окт 18, 2014 12:05

Як краще перевіряти отримані дані?
Достатньо preg_replace(), чи краще робити додатково: htmlspecialchars(), stripslashes(), strip_tags()?
Изображение

bj
HO Moderators
Сообщения: 1445
Зарегистрирован: Вт фев 13, 2007 13:18
Контактная информация:

Re: Перевірка введених даних

#2 Сообщение bj » Сб окт 18, 2014 14:51

Подходите к вопросу комплексно.
Как говорил известный персонаж - "Лучше пережать, чем недожать"
В жизни не все так просто, а гораздо проще

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

Re: Перевірка введених даних

#3 Сообщение dobs » Вт окт 21, 2014 09:53

Смотря что валидировать
http://php.net/manual/en/function.filter-var.php - можно много чего проверить этим к примеру
Если знаем что должно быть точно число то проще конвертировать к числу (int).... + желательно указывать что за данные подаются тогда не будут ностисы валить если передать к примеру вместо строки массив...

selb
Сообщения: 6
Зарегистрирован: Вт май 07, 2013 12:49
Откуда: Тернопіль
Контактная информация:

Re: Перевірка введених даних

#4 Сообщение selb » Пт дек 05, 2014 21:34

Схоже, що я вибрав самий оптимальний для себе варіант :) .
Типова перевірка.

Код: Выделить всё

function check($var)
{
  $var = stripslashes($var);
  $var = htmlspecialchars($var);
  $var = strip_tags($var);
  return $var;
}

$a = substr($_POST['a'],0,30);// Ну не може бути, припустимо, імʼя, довжиною в 100 символів.
$a = check($a);
$a = preg_replace('/[^abcd]/','',$a);
$a = trim($a);
1. Я не параноїк?
2. Чи можна тут щось вдосконалити?
Изображение

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

Re: Перевірка введених даних

#5 Сообщение dobs » Ср дек 10, 2014 12:42

function check($var)
Это не чек а клир скорее всего + я бы сделал так

Код: Выделить всё

function clear($val, $make_html = 0) {
    $val = trim($val);
    $val = strip_tags($val);
    if (!$make_html)
        $val = htmlspecialchars($val);
    if (get_magic_quotes_gpc())
        $val = stripslashes($val);
    return $val;
}

substr($_POST['a'],0,30);// Ну не може бути, припустимо, імʼя, довжиною в 100 символів.
Это не проверка, а обрезание :D mb_strlen в помощь...

+ посмотрите в сторону http://php.net/manual/en/function.filter-var.php

И нет не параноик ;)

selb
Сообщения: 6
Зарегистрирован: Вт май 07, 2013 12:49
Откуда: Тернопіль
Контактная информация:

Re: Перевірка введених даних

#6 Сообщение selb » Пн дек 15, 2014 18:43

Не правильно назвав тему, через що заплутав народ :(. Треба було "Очищення та перевірка..."
Тому що спочатку все чищу, а вже потім роблю перевірки.
function.filter-var.php дивився. Але в якості універсального застосування я його для себе поки що не побачив.
Это не чек а клир
Згоден, назва не коректна. function clear($var) - так було би логічніше :D
Это не проверка, а обрезание
Так, це обрізка. Як я вже писав, "// Ну не може бути, припустимо, ім'я, довжиною в 100 символів."
Або при виборі "a|b|c" довжина не може бути >1.
Изображение

Ответить