GPC перезапись массивов GET, POST, COOKIE

Статус
В этой теме нельзя размещать новые ответы.

esomkin

Новичок
GPC перезапись массивов GET, POST, COOKIE

Доброго времени суток

Захотел сделать замену одинарных и двойных кавычек в GET, POST, COOKIE данных централизовано, т.е. в одном месте. Для этого написал функцию:
PHP:
 function GPC_cplx()
  {
   global $_GET, $_POST, $_COOKIE;

   foreach($_GET as $var_name=>$value)
    {
     $_GET[$var_name]=quotes_replace($value);
    }

   foreach($_POST as $var_name=>$value)
    {
     $_POST[$var_name]=quotes_replace($value);
    }

   foreach($_COOKIE as $var_name=>$value)
    {
     $_COOKIE[$var_name]=quotes_replace($value);
    }
  }
После запуска функции, запускаю import_request_variables("GPC", "b_") и получаю результат - значения полученные из GPC_cplx() перезаписы первозданными значениями - такими какими они были до запуска GPC_cplx(). Объясните откуда они перезаписываются. $_REQUEST также пробовал изменять в GPC_cplx() - не помогло

С уважением Евгений
 

esomkin

Новичок
Ну заменить, экранировать слешем - дело не в этом, важно что вместо quotes_replace() можно вставить любую функцию обработки, а скрипт все равно работает неверно
 

dimagolov

Новичок
esomkin
данные полученные от пользователя надо обрабатывать там, где в них есть необходимость, перед включением конкретные структуры. потому что для разных надобностей их надо по-разному обрабатывать.

исходя из этого, вопрос смысла не имеет.
 

Фанат

oncle terrible
Команда форума
на самом деле хотя бы одно применение у этой функции есть.

-~{}~ 04.12.07 21:29:

другое дело - не надо хотеть импортировать входящие данные в глобальные переменные автоматом.
тебе туда такого напихают, что мама родная не узнает.

-~{}~ 04.12.07 21:33:

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

cDLEON

Онанист РНРСlub
Мне кажется он собрался не заменять, а экранировать)
Просто название функции дал немног не правильно)
 

Фанат

oncle terrible
Команда форума
давай не будем фантазировать за автора.
желающих заменить здесь всегда находится в достатке.

а говорить за других - неблагодарное занятие
 

quad_4

Новичок
данные от пользователя оставь - это ведь его данные, может они ещё где-то пригодятся :)
создай свои массивы $get $post итд и туда суй че хошь.
 

cDLEON

Онанист РНРСlub
давай не будем фантазировать за автора.
Ну я не фантазирую...По себе сужу...8)
На ранней стадии, когда только программировать учился, со своим хреновым английским, называл очень похоже функции...=)))
 

mak_sim2001

Новичок
Совет, просто делаешь функцию которая подготавливает масив например к записи в БД и когда это необходимо делаешь function_nume($_POST) если не ошибаюсь даже в мануале есть примеры таких функций.
 

fixxxer

К.О.
Партнер клуба
я признацо одного тут не понимаю, почему желающие иметь такой сомнительный сервис просто не пользуются magic quotes
 

Духовность™

Продвинутый новичок
esomkin
короче, массивы GPC нужно обрабатывать следующим образом:

PHP:
function clearREQUEST(&$in)
{
    foreach ($in as $key => $value)
    {
        if (is_array($value)) {
            clearREQUEST($in[$key]);
        }
        else
        {
            $value = trim($value);
            
            // Если включены магические кавычки,
            // то очищаем данные от слэшей.
            if (get_magic_quotes_gpc()) {
                $value = stripslashes($value);
            }
        	
			$in[$key] = $value;
        }
    }
}
эта функция отрезает все не нужные пробелы и убивает слэши, если магические кавычки включены.

Больше никаких операция с GET, POST, COOKIE и REQUEST массивами делать НЕ НУЖНО.

Вопрос экранирования данных - это вопрос API БД.
 

asterisk

Новичок
triumvirat
еще один бред :)

htaccess:
php_value magic_quotes_gpc 0

ps. "не работают php флаги" - меняем хостинг.
 

Фанат

oncle terrible
Команда форума
asterisk
меня начинает напрягать экстремизм на этом форуме.
и я, пожалуй, буду бороться с ним этими самыми методами.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху