Клуб Элитных Пользователей (КЭП) Саратов - Социально-политический форум России. Политика и общественная жизнь страны. Клуб Элитных Пользователей

Клуб Элитных Пользователей (КЭП) Саратов - Социально-политический форум России. Политика и общественная жизнь страны.
Вернуться   Форум КЭП > Мир компьютера > Web технологии > PHP


Имя
Пароль

Нужна помощь ребенку!!!

Партнеры форума
-->


    Ответ
     
    Опции темы Опции просмотра
    Старый 11.08.2008, 15:31   #1
    Programmist
    Основатель Клуба
     
    Аватар для Programmist
     
    Регистрация: 23.06.2006
    Адрес: Еноты, еноты, кругом одни еноты...
    Возраст: 37
    Сообщений: 3,367
    Programmist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнутьProgrammist , такую репутацию нельзя пошатнуть
    По умолчанию magic_quotes_gpc или экранирование запросов сервером

    [bgcolor="#000080"]
    .
    magic_quotes_gpc - это одна из настроек хранящиеся в php.ini, имет два значения:
    magic_quotes_gpc=0;magic_quotes_gpc=1;
    Вчем разница? При равной нуле, никаких действий не происходит, а при единице, происходит автоматическое экранирование полученных данных от пользователя в масивах $_GET, $_POST, $_COOKIE;

    Экранирование происходит следующем оброзом:
    " заменяются на \"' заменяются на \'

    Существует скрипт который автоматически определяет наличие включенных магических кавычек, и начинает обратывать все полученные данные приводя их к первоначальному виду, снимая тем самым результат работы функции
    magic_quotes_gpc=1;

    Схема обработки достаточно проста и реализуется в несколько этапов:

    1.Определяеться включены ли магические кавочки по средством условия:
    if(get_mageic_quotes_gpc()){Возращает true если magic_quotes_gpc=1;}

    2.Если нужна обработка, начинаем перебирать масив заменяя все строки с помощью стандартной функции:
    stipslashes($stroka);
    .
    [/bgcolor]
    PHP код:
    function delslashes_for_array(&$arr)
    {
       foreach(
    $arr as $k=>$v)
       {
           if (
    is_array($v))
           {
               
    delslashes_for_array($v);
               
    $arr[$k] = $v;
           }
           else
           {
               
    $arr[$k] = stripslashes($v);
           }
       }
    }

    function 
    fix_magic_quotes_gpc()
    {
       if (
    get_magic_quotes_gpc())
       {
           
    delslashes_for_array($_POST);
           
    delslashes_for_array($_GET);
           
    delslashes_for_array($_COOKIE);
       }
    }

    fix_magic_quotes_gpc(); 
    [bgcolor="#000080"]
    .
    Первый скрипт хорош для новичков, но лучше наооборот не убирать ковычки, а добавлять. Функция магические ковычки преднозначены для защиты от sql иньекции. Следующий скрипт противоположен первому, если магические ковычки выключены происходит автоматическое их добавление:
    .

    [/bgcolor]

    PHP код:
    function addslashes_for_array(&$arr)
    {
       foreach(
    $arr as $k=>$v)
       {
           if (
    is_array($v))
           {
               
    addslashes_for_array($v);
               
    $arr[$k] = $v;
           }
           else
           {
               
    $arr[$k] = addslashes($v);
           }
       }
    }

    function 
    fix_magic_quotes_gpc()
    {
       if (!
    get_magic_quotes_gpc())
       {
           
    addslashes_for_array($_POST);
           
    addslashes_for_array($_GET);
           
    addslashes_for_array($_COOKIE);
       }
    }

    # экранирует при необходииости строки в $_GET, $_POST, $_COOKIE
    fix_magic_quotes_gpc(); 
    __________________
    Тьмак вас всех.......
    FV4H6WPRMLQBEIRBJQM432RPK66KM6QF35NFSQA
    Programmist вне форума IP: 77.94.196.36  
    Ответить с цитированием
    Ответ
    Загрузка...


    Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
     
    Опции темы
    Опции просмотра

    Ваши права в разделе
    Вы не можете создавать новые темы
    Вы не можете отвечать в темах
    Вы не можете прикреплять вложения
    Вы не можете редактировать свои сообщения

    BB коды Вкл.
    Смайлы Вкл.
    [IMG] код Вкл.
    HTML код Выкл.

    Быстрый переход


    Часовой пояс GMT +3, время: 00:00.


    Яндекс цитирования

    Powered by vBulletin® Version 3.8.0 Beta 3
    Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
    The design belongs to EX_isTentiA