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

    +119

    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    <?php
    session_start();
    if(empty($_SESSION['login']) or empty($_SESSION['id']) or empty($_SESSION['auth_key']))
    {
        header("Location: index.php");
    }
    else
    {
        $user_name = $_POST['name'];
        $user_sname = $_POST['sname'];
        $user_gender = $_POST['gender'];
        $user_about = $_POST['about'];
        
        
        $user_phone = $_POST['phone'];
        $user_mail = $_POST['email'];
        
        $user_company = $_POST['company'];
        $user_company_position = $_POST['position'];
        
        
        $user_login = $_POST['login'];
        $user_password = $_POST['password'];
        
        include 'includes/xd4sw.php';
        $update_query = mysql_query("UPDATE users SET user_name='$user_name', user_sname='$user_sname', user_gender='$user_gender',
                user_about='$user_about', user_phone='$user_phone', user_mail='$user_mail', user_company='$user_company', 
                user_company_position='$user_company_position', user_login='$user_login', user_password='$user_password' WHERE user_id=".$_SESSION['id']);
        mysql_close($db);
        header('Location: settings.php?act=good');
        
    }
    
    ?>

    НА НАХ!!!!

    Запостил: Govnisti_Diavol, 12 Февраля 2013

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

    • > act=good
      Указание пользователю вести себя хорошо?
      Ответить
    • PHP. Ни дня без инъекции.
      Ответить
      • Выбери жизнь. Выбери работу. Выбери нормальную з/п. Выбери предсказуемость, выбери прозрачность, выбери явное, выбери консистентность, выбери простоту. Выбери кодинг. Выбери тернарники, продуманный синтаксис, исключения, однотипное именование функций. Выбери хорошую производительность, нормальные даты, и логику. Выбери архитектуру вместо каши и циклы вместо копипаста. Выбери будущее. Но зачем мне все это? Я выбрал не выбирать программирование. Я выбрал кое-что другое… А причины? Причин нет. Кому нужны причины, когда есть пхп?
        Ответить
    • Проверка данных? Не, не слышал
      Ответить
      • мне интересно, похапэшники вообще про такие вещи, как PDO, ORM и другие СУБД, отличные от mysql, слышали?
        огнелис предлагает заменить "похапэшники" на похабники
        Ответить
        • Они же тормозят
          Ответить
          • Зачем в пхп используют пробелы и переводы строк? Они же тормозят парсер, и, кроме некоторых случаев, не нужны ему.

            > roman-kashitsyn 2 часа назад # -1
            Они же тормозят

            Пыхапешник минуснул, и побежал дальше юзать прогрессивные и быстрые интерфейсы mysql_*.
            Ответить
            • Зачем нужны mysql_*, когда есть mysqli_*?
              Ответить
              • Они быстрее, потому что они не объектно-ориентированные. И на некоторых хостингах нет mysqli.
                Ответить
          • Они же тормозят
            поправил
            Ответить
        • не греби ПХПшников под одну гребенку. ПХПшник ПХПшнику рознь. PDO тоже сам по себе не айс. труЪ прогеры реализуют свой класс для работы с PDO:
          DB_CLASS <-> PDO <->DataBase

          Единственное, что хорошее в mysql_* - это mysql_escape_string. В PDO ф-ция quote иногда работает неадекватно.
          Ответить
          • > В PDO ф-ция quote иногда работает неадекватно.
            А так ли она нужна при работе через pdo?

            P.s. если не секрет, с какими субд она забагована?
            Ответить
            • Недавно делал сайт, заказчик был помешан на защите от инъекций. По его желанию (помимо параметров в prepare()) каджый параметр был очищен ф-цией quote(). В итоге одмин не мог добавить некоторые статьи, потому что PDO выдавал эксцепшн. После дебага выяснилось, что ф-ция quote() заменяла " не на \", а на \"". Особо не гуглил че произошло, тупо поменяли quote на мускульный аналог
              Ответить
              • > По его желанию (помимо параметров в prepare()) каджый параметр был очищен ф-цией quote().
                Ёб@ный пиздец... там потом на морду сайта не полезли заэкранированные значения типа 'ООО \"Василёк\"'? Не ну я все понимаю, но двойное экранирование... Я бы такого заказчика, нихера не понимающего, но тем не менее лезущего в детали реализации, послал подальше вместе с его требованиями...

                > очищен
                Правильнее сказать - заэкранирован соответствующим образом, и обрамлен одинарными кавычками. Это ни в коем случае не очистка.

                Ну и еще про quote: Не все PDO драйверы реализуют этот метод (особенно PDO_ODBC). Предполагается, что вместо него будут использоваться подготавливаемые запросы..
                Ответить
              • P.S. Ну, в случае с нормальным заказчиком, quote не нужен. Не могу найти ему адекватных применений.
                Ответить
          • PDO в самом деле уныловат слегка. Гораздо хуже его делает отсутствие кэширования компилированных запросов, но это уже претензии к похапе.
            Ответить
        • PDO - это СУБД? Тогда ionCube - язык программирования
          Ответить
          • Он имел в виду "пдо", "орм", "другие субд кроме мускуля". Про то, что пдо и орм это субд никто не утверждал.
            Ответить
        • Интересная тенденция. Веяния современности отчуждают знание и понимание низкоуровневых особенностей вычислительной техники. И причём, чем ниже, тем не нужнее. Разработаны и выпущены сотни библиотек облегчающих работу программиста, скачивай-не-хочу, но, которые также, с большой долей вероятности, приводят его к состоянию студня в программировании. Он знает как использовать монго и спринг, но он не знает как группировать релевантные данные в случае отсутствия библиотеки. Да ему и не нужно. Он знает и умеет в концепции парадигм, его энциклопедически отточенные знания приводят в восторг хомячков, сотни поклонников, нефть, популярность. Но он забывает, что значит "придумывать". Что значит "изобретать". Нет, не велосипед, конечно. Что-то полезное. Что-то доброе. В его заросшем мозгу горит огонь из бумажных купюр. Вся его вычислительная мощь направлена на поглощение и обогащение. К сожалению. Заказчики, те самые люди, которые кормят и поят программиста, всеми силами способствуют развитию раковых клеток. И это естественный процесс. Им нужен заказаный продукт, и как можно быстрее и красивее. Им нужны симпатяшные финтифлюшки? Отлично, давайте скачаем плагин и подключим его. Зачем думать над производительностью, фу, вот ещё. Снова плагин и снова. Проект начинает пучить от плагинов? Не беда, давайте увеличим мощности. Знания преобладают над умением, знания пожирают умения. Не надо уметь, - надо знать. Чем больше ты обмазан знанием - тем превосходнее ты над остальными. Вот такие дела, govnomonad.
          Ответить
          • Вы так говорите, как-будто типичный похапешник (хорошо, что все-таки не все такие), знающий только mysql, никогда не слышавший о других базах, не видящий смысла в подготовленных запросах и PDO, работает не ради денег, способен изобретать, и хоть в чем-то лучше того, кого вы описали...

            Не стоит впадать в крайности, bot. Нужно что-то среднее, баланс между использованием готовых либ и написанием своего кода.

            В конце-концов зачем переписывать то, что уже отлажено другими, повторять то, на что ушли человеко-столетия... Нужно решать свою задачу, вот ради нее можно проявить и фантазию, и опыт и способности изобретателя... А в очередной раз переписывать либу для отправки почты или парсинга xml - это просто зря потраченное время, которое могло уйти на что-то более полезное.
            Ответить
            • О, я всецело согласен с вами, уважаемый bormand. Действительно есть много вкусных и отлаженых конфеток. Но, что прискорбно, обновления этих конфеток пестрят склонениями слов "fix bug".
              Не нужно ничего переписывать, что вы. Но нужно понимать, что представляет из себя эта либа и чего она там делает эдакое. И как. Без этого программист - это блондинка за рулём.
              Ответить
              • > Но, что прискорбно, обновления этих конфеток пестрят склонениями слов "fix bug".
                Я знаю. И, именно поэтому, зачастую, лучше взять готовую либу, т.к. у самого этих багфиксов будет ничуть не меньше...

                > Но нужно понимать, что представляет из себя эта либа и чего она там делает эдакое. И как.
                Безусловно.
                Ответить
          • Годная паста (?).
            В целом довольно точно описана жабоэкосистема.

            Профессионал обычно знает, как реализовать некий функционал самостоятельно. Обычно "правильная" реализация даже довольно простого функционала полна мелких сложностей и деталей, решать которые сложно, нужно принимать много решений, последствия которых сложно предсказать. Поэтому чаще предпочтительнее выбрать готовую реализацию, если её характеристики соответсвтуют ожиданиям, это даст хоть какие-то гарантии.

            Я, к примеру, почти всегда просматриваю сорцы либы, которую собираюсь использовать в проекте. Если я вижу там какие-то ограничения, которые считаю неоправданными, я смотрю в сторону другой библиотеки или пишу свою. Мелкие недоразумения можно исправить и законтрибьютить.
            That's why I like OpenSource.

            А для тестов и прототипов часто вообще пофигу на производительность и качество начинки, лишь бы быстро интегрировалось и работало.
            Ответить
            • Вы молодец. Здесь разум - вот ключевое слово.
              Ответить
        • Ты серьезно? По твоему PDO и ORM есть СУБД?
          Ответить
          • Тред не читай @ хуйню отвечай

            http://govnokod.ru/12577#comment169527.
            Ответить
        • Изготовление, распространение и употребление ORM запрещено для абонентов «Билайна».

          http://help.internet.beeline.ru/internet/security/restricted/?check=1&query=www.php-rocks.com
          Ответить

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