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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: PHP Класс для работы с MYSQL

Сообщения:  [1-10]   [11-13] 

 
 автор: Trianon   (17.02.2010 в 14:25)   письмо автору
 
   для: Николай2357   (17.02.2010 в 13:56)
 

А если даже внешние, то не факт, что очистка массивов от magic quotes к моменту обращения к БД уже не была проведена.

  Ответить  
 
 автор: Николай2357   (17.02.2010 в 13:56)   письмо автору
 
   для: cheops   (17.02.2010 в 13:52)
 

Потому что не факт, что это внешние данные.

  Ответить  
 
 автор: cheops   (17.02.2010 в 13:52)   письмо автору
 
   для: Loki   (15.02.2010 в 18:01)
 

Почему? Многие кстати, именно этот способ пропагандируют - он более безопасен в плане повторного экранирования.

  Ответить  
 
 автор: Loki   (15.02.2010 в 18:01)   письмо автору
 
   для: pavluxa09   (14.02.2010 в 20:31)
 

>if (get_magic_quotes_gpc()) $v = stripslashes($v);
убило наповал

  Ответить  
 
 автор: pavluxa09   (15.02.2010 в 17:12)   письмо автору
 
   для: ddhvvn   (14.02.2010 в 21:20)
 

Не моглибы помочь составить функцию которая будет фильтровать строку чтоб потом её можно было безопасно использовать при SQL запросе?

  Ответить  
 
 автор: vtos   (15.02.2010 в 11:35)   письмо автору
 
   для: pavluxa09   (14.02.2010 в 20:48)
 

Из всего вышеприведенного реальную пользу можно получить вот от этого (даже догадываюсь, откуда этот код... :) :
 
    function db_make_query()
    {
        $tml = $this->args;
        $tml[0] = str_replace('%', '%%', $tml[0]);
        $tml[0] = str_replace('?', '%s', $tml[0]);
        foreach ($tml as $i => $v)
        {
            if (!$i) continue;
            if (is_int($v)) continue;
            if (get_magic_quotes_gpc()) $v = stripslashes($v);
            $tml[$i] = "'" . mysql_real_escape_string($v,$this->connect) . "'";
        }
        for ($i = $c = count($tml) - 1; $i < $c + 20; $i++)
        {
            $tml[$i + 1] = "UNKNOWN_PLACEHOLDER_$i";
            return call_user_func_array("sprintf", $tml);
        }
    } 

Правда этот код еще нужно "почистить".

Только зачем эту функцию реализовывать через класс и методы? Можно было просто написать эту функцию отдельно и потом подключать. Вот именно она-то и может помочь защититься от SQL-вставок...

Скока раз уже говорили: класс для БД нужно разрабатывать так, чтобы он мог работать с разными БД (MySQL, PostgreSQL и др.)...
Только тогда он имеет смысл. Зачем писать просто обертки для стандартных функций PHP? В них нет никакого смысла и уж тем более удобства.

  Ответить  
 
 автор: ddhvvn   (14.02.2010 в 21:20)   письмо автору
 
   для: pavluxa09   (14.02.2010 в 20:31)
 

>Хотел поделится хорошим классом для работы с MYSQL

http://php.net/mysqli

  Ответить  
 
 автор: Trianon   (14.02.2010 в 21:20)   письмо автору
 
   для: pavluxa09   (14.02.2010 в 20:42)
 

Для начала следует убрать вот эту строку

 if (get_magic_quotes_gpc()) $v = stripslashes($v); 

  Ответить  
 
 автор: pavluxa09   (14.02.2010 в 20:48)   письмо автору
 
   для: Тень&   (14.02.2010 в 20:47)
 

Предложи что лучше. Я же не просто так создал тему в помощь молодежи, а чтоб узнать что есть получше.

  Ответить  
 
 автор: Тень&   (14.02.2010 в 20:47)   письмо автору
 
   для: pavluxa09   (14.02.2010 в 20:42)
 

[поправлено модератором]

  Ответить  

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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