За последние 24 часа нас посетили 18877 программистов и 1607 роботов. Сейчас ищут 875 программистов ...

Обработка переменных

Тема в разделе "PHP для новичков", создана пользователем allowance, 26 фев 2010.

  1. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Какой самый оптимальный вариант обработки переменных для внесения в БД?

    PHP:
    1. $text= htmlspecialchars($text);
    2. $text = mysql_escape_string($text);
    Этого к примеру достаточно?
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Нет.
    1. достаточно для чего?
    2. каких переменных?
     
  3. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    karakh
    пусть будет для текста и сифр.
     
  4. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    mysql_escape_string() deprecated, поэтому лучше mysql_real_escape_string()
    Для цифр это не нужно, для цифр нужна проверка типа или жесткое приведение к нему.
    Для запросов типа like или grant нужно что-то типа addcslashes($text, '%_');
    Если magic_quotes_gpc on - нужно stripslashes()
    htmlspecialchars() вообще не имеет отношения к базе данных, его надо использовать если ты не в базу вносишь, а браузеру отдаешь.
     
  5. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    $text = stripslashes($text);
    $text = mysql_real_escape_string($text);

    А очерёдность должна быть такая?
     
  6. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Как граммотней с точки зрения безопасности?
    Так:

    if (isset($_GET['text']))
    {
    $text = $_GET['text'];
    $text = stripslashes($text);
    $text = mysql_real_escape_string($text);
    }

    Или так?

    if (isset($_GET['text']))
    {
    $text = $_GET['text'];
    }
    $text = stripslashes($text);
    $text = mysql_real_escape_string($text);
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    allowance
    и в чём логика? напишите словами
    стоит посоветовать купить норм. книжку по пхп и читать =)
    почитать про XSS и Sql Injection. так же можно про Php Injection
     
  8. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Mr.M.I.T.
    Если заменить GET запрос на POST то в первом случае $text не обрабатывается!?
     
  9. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск