чем обработать <textarea> чтобы добавить в БД

Тема в разделе "PHP", создана пользователем ghostik32, 11 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ghostik32

    ghostik32 Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    40
    Симпатии:
    1
    HTML:
    
    <textarea name="podrobnosti_upakovki" id="comment1" style="width:400px; height:100px;" class="inp"></textarea>
    
    чем её обработать чтобы не поймать иньекцию какую-нибуть.
    обрабатываю mysql_real_escape_string, но там слэши добавляет.
    желательно в примерах.
     
  2. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    вообще addslashes(). Но не понял, ты хочешь эту текстарею в БД запихать. Или в эту текстарею будут данные передавать, и уже их в БД?
     
  3. ghostik32

    ghostik32 Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    40
    Симпатии:
    1
    ну юзеры будут вписывать свои данные, до 2000 символов.
    надо както обработать чтобы в БД потом запихать. addshashes() непоходит так как если введут ковычку получим в итоге её экранирование (\').
    раньше preg_match () обрабатывал но с ним проблема, перенос строки нехочет работать :(
     
  4. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    А ты попробуй. Я сам так делаю. Вот выдержка

    ключевой момент- сам символ \ в базу данных записан не будет
    Это помогает избежать ошибок при добавлении в бд. Если я понял в чем твоя беда. Ну а чтоб избежать инъекциев, надо все теги поудалять. strip_tags()
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    add_slashes - не панацея. при записи в бд лучше всего пропускать через mysql_real_escape_string, а при выводе в броузер через htmlspecialchars
     
    ghostik32 и phillip нравится это.
  6. ghostik32

    ghostik32 Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    40
    Симпатии:
    1
    вот что удалось сделать.
    PHP:
    $discription stripslashes (trim (htmlspecialchars ($discription)));
    $discription nl2br ($discription);
    $discription str_replace (array ("\n""\r"), ""$discription);
    $discription preg_replace ("/\#\]/i"">"$discription);
    $discription str_replace ("'""`"$discription);
    насколько это безопасно?
     
  7. ADyDyka

    ADyDyka Создатель

    Регистр.:
    19 янв 2010
    Сообщения:
    26
    Симпатии:
    5
    первой строчки вполне достаточно )
    PHP:
    $discription nl2br ($discription);
    $discription str_replace (array ("\n""\r"), ""$discription);
    - Эти строчки вообще к защите никакого отношения не имеют
    PHP:
    $discription preg_replace ("/\#\]/i"">"$discription);
    $discription str_replace ("'""`"$discription);
    - А вот это можно объяснить какую роль в защите от инъекций играет?
     
    ghostik32 нравится это.
  8. ghostik32

    ghostik32 Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    40
    Симпатии:
    1
    ну это я забыл убрать код =)
     
  9. Abliganto

    Abliganto Постоялец

    Регистр.:
    30 ноя 2009
    Сообщения:
    111
    Симпатии:
    46
    Хотелось бы добавить важное замечание. У вас на хостинге включены magic_quotes_gpc, но где-то они могут быть отключены, по этому советую использовать
    PHP:
    <?php

    if (get_magic_quotes_gpc()) {
        
    $lastname stripslashes($discription);
    }

    $discription trim (htmlspecialchars ($discription)); 
    $discription nl2br ($discription); 
    $description mysql_real_escape_string$description );
     
    ghostik32 нравится это.
  10. ghostik32

    ghostik32 Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    40
    Симпатии:
    1
    спасибо учту.
     
Статус темы:
Закрыта.