За последние 24 часа нас посетили 17553 программиста и 1282 робота. Сейчас ищут 1473 программиста ...

Запись с пробелами.

Тема в разделе "PHP и базы данных", создана пользователем BOG, 29 мар 2014.

  1. BOG

    BOG Новичок

    С нами с:
    5 ноя 2013
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    г. Москва
    Всем привет.
    Проблема вот какая. Нужно записать данные в поле базы данных.
    Как сделать чтобы данные записались с пробелами между ними.
    То есть надо Андрей Уголок Гермес.
    А сейчас данные записываются вместе, без пробелов.
    [​IMG]
    Тип у поля varchar(255).
    Вот сам код записи в базу.
    Код (Text):
    1. $sql="UPDATE counter SET phone_call='".$_POST['username']."' '".get_tip($_POST['tip'])."' '".get_model($_POST['model'])."' WHERE id='".$_SESSION['uniq']."'";
    2. mysql_query($sql);
    Спасибо!
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Вы ведь знаете, что такое SQL-инъекции? У вас, пардон, запрос протекает.
    И да, плевать на код вставки. Это ваше "Андрей Уголок Гермес" где формируется? Что за переменная?
     
  3. BOG

    BOG Новичок

    С нами с:
    5 ноя 2013
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    г. Москва
    Код (Text):
    1. <h3>Серия "Гермес"</h3>
    2. <form action="zakaz.php" method="post">
    3. <input type="hidden" name="tip" value="Ugolok"/>
    4. <input type="hidden" name="model" value="Hermes"/>
    5. <input type="text" title="Введите Ваше имя" name="username"/>
    Это форма, ее заполняют и данные отправляются как заказ. И в то же время записываются в базу данных.
    Я еще не очень силен в PHP можете подсказать, как именно защитить данный код от sql-инъекции.
    Спасибо!
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    1) Хотите пробелов - просто добавьте их. Там, где вы врезаете переменные в запрос, типа ".$_POST['username'].", попробуйте после правой точки ставить пробел. Будет самое оно.
    2) У вас в запрос уходят данные напрямую из браузера. Без какой-либо проверки. Если эти данные грамотно подготовить, можно будет взломать вашу БД с вашего же сайта.
    3) Для защиты от инъекций нужно следить за тем, что вам приходит. Тут три варианта: юзать prepared_statement PDO, самому запилить prepared_statement с блекджеком и девками, не юзать prepared_statement, а юзать mysqli_real_escape() для экранирования потенциально опасных символов.
    4) Вы используете расширение mysql, так делать не надо, надо mysqli.

    Все непонятные слова легко гуглятся, в том числе и в документации пыха.
     
  5. BOG

    BOG Новичок

    С нами с:
    5 ноя 2013
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    г. Москва
    Большое Вам спасибо! Все ясно и понятно!