Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция фильтрации вводимых данных
 
 автор: Петр   (07.07.2008 в 12:39)   письмо автору
 
 

Функция фильтрации вводимых данных:

<?php
// Фильтрация ввода;
function strips(&$a) {
    
// Проверка переменной;
    
if (isset($a) and is_array($a)) {
        foreach(
$a as $k=>$v) {
            
// Рекурсивный вызов функции;
            
strips($a[$k]);
        }
    } else {
        
// Удаление экранирования;
        
if (get_magic_quotes_gpc()) {
            
$a stripslashes($a);
        }
        
// Обработка строк для помещения в БД;
        
$a mysql_escape_string($a);
    }
}
?>


Пример использования функции:

<?php
// Фильтрация $_GET;
strips($_GET);
// Фильтрация $_POST;
strips($_POST);
// Фильтрация $_COOKIE;
strips($_COOKIE);
?>

   
 
 автор: Trianon   (07.07.2008 в 13:33)   письмо автору
 
   для: Петр   (07.07.2008 в 12:39)
 

Зачем?
Уже даже разработчики php поняли, что magic quotes - ересь мерзкая...

   
 
 автор: Петр   (07.07.2008 в 13:55)   письмо автору
 
   для: Trianon   (07.07.2008 в 13:33)
 

поэтому и есть проверка, т.к. на некоторых хостингах разные настройки этих кавычек

   
 
 автор: Trianon   (07.07.2008 в 14:16)   письмо автору
 
   для: Петр   (07.07.2008 в 13:55)
 

В подавляющем большинстве случаев отключение магических кавычек
решается посредством добавления одной строки в .htaccess :
php_flag magic_quotes_gpc Off


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

   
 
 автор: Петр   (07.07.2008 в 14:18)   письмо автору
 
   для: Trianon   (07.07.2008 в 14:16)
 

да это понятно, но всетаки не везда такое бывает.
а участок кода:

if (get_magic_quotes_gpc()) { 
 $a = stripslashes($a); 
}

как раз делаю эту функцию универсальной, и даже не нужно думать как настроен тот или иной сервер, она сама все сделает.
здесь принцып другой: если магические кавычки успользуются, то экранирование удалиться (только когда надо)

   
 
 автор: Trianon   (07.07.2008 в 14:34)   письмо автору
 
   для: Петр   (07.07.2008 в 14:18)
 

Если бы вы не написали $a = mysql_escape_string($a);
Я бы счел Вашу функцию полезной, и слова бы не сказал.
В конце концов в рамках серверов, где до переменных конфигурации php не дотянуться, это действительно выход из положения.

   
 
 автор: AcidTrash   (07.07.2008 в 21:48)   письмо автору
 
   для: Trianon   (07.07.2008 в 14:34)
 

>В конце концов в рамках серверов, где до переменных конфигурации php не дотянуться, это действительно выход из положения.
Вот Вы и ответили на вопрос. Некоторые хостинги обеспечивают для себя полную безопасность, отключая, что надо и что не надо. Хотя иногда с их точки зрения смотреть, это логично. Но в некоторых случаях они предоставляют возможность под пользователя, конфигурировать свой php.ini для запуска в cgi-режиме.

   
 
 автор: Trianon   (07.07.2008 в 22:12)   письмо автору
 
   для: AcidTrash   (07.07.2008 в 21:48)
 

>>В конце концов в рамках серверов, где до переменных конфигурации php не дотянуться, это действительно выход из положения.

>Вот Вы и ответили на вопрос.
Не надо передергивать мои слова.
Под выходом из положения подразумевался код без вызова mysql_escape_string()

   
 
 автор: AcidTrash   (07.07.2008 в 23:05)   письмо автору
 
   для: Trianon   (07.07.2008 в 22:12)
 

>Под выходом из положения подразумевался код без вызова mysql_escape_string()
Если имелся ввиду код
if (get_magic_quotes_gpc()) {  
 $a = stripslashes($a);  

то да.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования