Ваши ф-ции для фильтрации данных.

Печать RSS
914

A

Чатланин
0
#19 регулярки очень тормозят скрипт, потому их использование оправдано только в крайних случаях.
---
Продолжу...
Для строковых данных, при занесении в базу MySQL надежно работает mysql_real_escape_string()
Как правильно заметили выше, эта функция правильно обрабатывает многобайтовые кодировки (UTF8)
Ну и желательно вначале проверить, включено ли magic_quotes если да, то использовать strip_slashes()
A

Чатланин
0
Только учтите, что mysql_real_escape_string() избавляет от SQL инъекции при хранении данных в базе.
НО!!!
Не избавляет от XSS и прочих скриптовых уязвимостей.
Потому, если Вы потом данные выводите в браузер, то нужна дополнительная обработка
htmlspecialchars() или htmlentities()
A

Чатланин
0
Если переменная используется в системных нуждах, особенно как в Моторе, определяет файл подключаемого модуля и др, то там нужна дополнительная фильтрация, возможно даже регулярными выражениями (чтоб исключить опасные команды).
С

Кодер
0
21, смотря еще какие регулярки юзать, во многих случаях лучше юзать PERL (preg), но и иногда даже лучше и POSIX (ereg) (=
Автор
Дух
0
24. а разница?
С

Кодер
0
24, разница в скорости и в регулярных выражениях
где-то была статейка про увеличение скорости скрипта, вот там рассматривались регулярки (=
Д

Чатланин
0
Олег +1, особенно про числа - всегда именно модуль+интвал юзаю и большего просто ненужно

Пацак
0
Вот альтернатива регулярки. Возвращает true, если каждый символ в text является буквой либо цифрой.
<?php
.  .  .
if (ctype_alnum($text))
    echo $text;
?>

Оранжевые штаны
0
Обьясните пожалуйста. Вот например я создаю файл conf.php и в нём прописываю переменные и их значения. потом эти переменные вставляю в страницы в нужном месте. Как правельно их отфильтровать, если переменные и символьное и цифровое значение имеют
N

Голубые штаны
0
29, если в файл пишешь скриптом то
$var = intval($var); для цифровых значений
$var = htmlspecialchars(); для символьных
Но если ты вручную вписываешь в файл conf.php, а он потом инклудится везде - эти переменные фильтровать не нужно - они являются внутренними, а не приходят из вне.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск