1. PHP / Говнокод #14761

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    <?php
     
    include(db_connect.php);
     
    $name = $_POST["name"];
     
    $pass = $_POST["pass"];
     
    $email = $_POST["email"];
     
    $data = "INSERT INTO userlist (id_user, name, pass, email) VALUES (NULL , "$name" , "$pass" , "$email" )";
     
    if(mysql_query($data)){
     
    echo("data transfered");
     
    }else{
     
    return false;
     
    }
     
    ?>

    Какая ошибка в этом коде ? помогите плииз!

    Запостил: norto, 21 Февраля 2014

    Комментарии (25) RSS

    • показать все, что скрытоИди на хуй, припиздок ебанольский.
      Ответить
    • Говно, повсюду одно говно. Тред говно, вы все говно, и горнардо тоже гавно.
      Ответить
    • 1. Синтаксическая ошибки в строке '$data=...': если ты используешь строку вида "...", то символ '"' внутри нее должен записываться как '\"'.

      2. Данные, встраиваемые в SQL-запрос, не экранированы: бегом читать о том, что такое 'SQL-инъекции'.

      3. Совершенно бессмысленные переменные $name, $pass, $email.

      4. Использование давно устаревшей библиотеки mysql, что приводит к необходимости встраивать значения непосредственно в sql-выражения. Библиотеки mysqli и pdo позволяют использовать 'подготовленные выражения', что обеспечивает защиту от инъекций и не требует явного экранирования значений.
      Ответить
      • показать все, что скрытоЧтоб ты сдох, блядь. Будь проклят навеки, бомжара.
        Правда, одну ошибку ты так и не обнаружил. Но всё равно - смерть тебе.

        Ответить
      • >не экранированы
        И ты бегом читай, что такое параметризированные запросы.
        Ответить
        • Твои "параметризованные запросы" - это в точности тоже самое, что и мои "подготовленные выражения". Любители майкрософт предпочитают называть это ПЗ, пхпшники - ПВ.
          Ответить
          • Мб. А ручное "экранирование" нужно предать анафеме.
            Ответить
      • 1. это не ошибка, это незнание. любой sql скушает строку вида "... '...' ..." и не подавится. курим маны.

        2. бегом читать о php.ini.

        3. внутри представленного контента возможно, но может парень вырезал пару строк?..

        4. что mysqli, что pdo предоставляют возможность "встраивать значения непосредственно в sql-выражения", давайте запинаем их ногами.
        Ответить
        • И ведь я въебал плюс.
          Ответить
        • > любой sql скушает строку вида "... '...' ..." и не подавится
          Более того, во многих диалектах sql можно юзать только 'строку' но не "строку".

          > бегом читать о php.ini
          Еще один фанат магических кавычек?

          > давайте запинаем их ногами
          А mysql, в отличие от mysqli и pdo вообще не позволяет делать что-то кроме "вставки значений в строку запроса". Собственно уже за это ее надо закопать.
          Ответить
          • > Еще один фанат магических кавычек?
            This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

            Помним. Скорбим.
            Ответить
          • > Еще один фанат магических кавычек?
            рандом упаси! смысл был заложен не в это. )))

            > Собственно уже за это ее надо закопать.
            покажите мне где я был против? и, опять же, смысл не в этом. )))

            З.Ы. меня болеше порадовало
            if (...)
            echo '...';
            else
            return false;
            Ответить
            • >рандом упаси! смысл был заложен не в это. )))
              А во что?
              Ответить
          • >Еще один фанат магических кавычек?
            Эх, кто не видел \' на страницах? Алсо, от кодированных строк (хекс итд) оно не спасало вообще никак.
            Ответить
        • 1. Приведенная в вопросе конструкция "INSERT INTO userlist (id_user, name, pass, email) VALUES (NULL , "$name" , "$pass" , "$email" )" вызовет синтаксическую ошибку PHP. До SQL дело вообще не дойдет.

          2. Это ты про устаревший идиотизм под названием "магические кавычки"?

          3. Не мои проблемы. Что опубликовано - то и комментируется.

          4. Бегом читать мануалы по PHP. Именно библиотека mysql, использованная автором вопроса, не позволяет сделать ничего, кроме прямого встраивания данных в запрос. Упомянутые же мной библиотеки mysqli и pdo позволяют использовать - в терминах php - "подготовленные выражения" (в visual studio именуемые "параметризованными запросами").
          Ответить
    • чудеса да и только! интересно на чем автор до этого писал. вижуал басик?
      Ответить
    • Аффтор добавь в скайп djniktih, помогу)
      Ответить
      • сними трусики и возьми мой половой члн в рот.
        Ответить

    Добавить комментарий