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

    +154

    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
    include "./include/db.conf.php";
    $con = mysql_connect($DB["host"],$DB["user"],$DB["pass"]) or die ("could not connect:".mysql_error());
    mysql_set_charset('utf8');
    mysql_select_db($DB["dbName"]) or die ("could not connect:".mysql_error());
    
    $hash = $_GET['hash'];
    $login = $_GET['login'];
    echo "SELECT id FROM reg WHERE log = '".$login."' AND hash = '".$hash."'";
    
    $query = mysql_query("SELECT id FROM reg WHERE log = '".$login."' AND hash = '".$hash."'") or die ("MYSQL error".mysql_error());
    
    if ($query) {
        while($row = mysql_fetch_array($query)) {
        echo row['id'];}
                
    $query = mysql_query("UPDATE reg SET commit=1 WHERE id=".row['id'])
         or die ("MYSQL error".mysql_error());}

    Знакомая поделилась шедевром. Так, конечно, можно... но в общем комментарии излишни.
    Да, форматирование оригинала сохранено.

    Запостил: 0rt, 16 Июня 2011

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

    • Ну что можно сказать, типичные ошибки новичка
      Ответить
      • Ну по части ошибок новичка тут, конечно, весь набор, но я советую поглядеть на получение результатов запроса. Во втором варианте (исправленном) запрос на обновление также переехал в цикл. Вместе с присваиванием, ага.
        Ответить
      • Бесконечно радуют SQL-инъекции
        Ответить
    • Что поделать, так пишут книги российские авторы, а люди по ним потом еще и учатся.
      Ответить
    • mysql or die
      как всегда...
      Ответить
    • Бьюсь в заклад что опять виноват Попов ;D.... ны это по части die(), а иньекции для новичков это слово незнакомое, ну и ладно...нам больше работы )))
      Ответить
      • как и запросы в цикле ))))
        Ответить
      • > Бьюсь в заклад
        не болит заклад-то?
        Ответить
      • Я все понимаю канечно код не очень я допустим давно отказался от процедурного типа программирования. Канечно прикольно передавать в get запросе логин и хеш но почему вы or die критикуете дайте ответ, ссылку, или намек в какую сторону рыть.плз ато сам его пишу всегда
        Ответить
        • Гдета можно посматреть например на справочнике или в кстати форуме.

          нубов не кормить. штраф 1 карма
          Ответить
          • Ты не корми меня если считаешь нубом а скинь сюда как делаешь ты запросы к мускулу, и парсиш резалты а потом посмотрим может и ты займешь почетное место сдесь)
            Ответить
            • Пользователь не должен видеть ошибок !!! Потому как он может оказаться хацкером...

              Для такого дела существуют Exception-ы ну или делай хотябы так
              $q = @mysql_query('...');
              if ( !$q )
              {
              file_put_contents( '/log.txt', 'Ошибка при запросе к БД: '.PHP_EOL.mysql_error(), LOCK_EX | FILE_APPEND );
              exit('Возникла непредвиденная ошибка системы');
              }
              Тем самым хацкер не сможет увидеть ошибку...
              Ответить
              • и вы туда же. затыкаете собачками. не проще ли просто пхп настроить, что бы ворнинги не в броузер валял а в лог?
                Ответить
                • Ну во первых это самый простой пример.... без настройки пхп...
                  да можно настроить вывод даже без доступа к ини файлу через ini_set() директивы.. и кстати про собачки- если это дело в ПДО находится, то ничё страшного нет )
                  Ответить
                  • программисты ДОЛЖНЫ быть ленивыми и искать пути автоматизирования труда )
                    в данном случае проще один раз сконфигить (или инклудить настройщик через ini_set(), если доступа к серваку не имеем) и не беспокоиться о собачках.
                    Ответить
                    • Ну так эт понятно, лень- двигатель прогресса )))
                      Я говорил что для этого дела выделяется отдельный класс обработчик ошибок, а для работы с SQL используется PDO, готовые решения, либо своё, подточенное под проект.
                      Ответить
                      • А собачки по всем углам вешать не надо, разве что в классы ( и то на случай если в ини сет или в ини файле )
                        Ответить
                      • PDO, к сожалению, пока не идеален
                        Ответить
              • для этих целей есть syslog.
                Ответить
              • Да ето все прекрасно я дебажу xdebug'ом но иногда пишу or die ("could not connect:".mysql_error()) после отладки естественно удаляю
                вот тока die () оставляю че это плохо?
                Ответить
                • Вместо выброса исключения и его обработки убивать скрипт жестоко.
                  Ответить
                  • СПС Василий, я как то не подумал юзать екзепшены в коде работы с базой, а это отличная идея седня по пробую.
                    Ответить
            • а чего тут считать, типичная shkolota untermenschis, неспособная даже убедительно составить фразу типа "скинь сырцы, слабо?".
              Ответить
              • скинь сырцы, слабо?
                [email protected]
                Ответить
                • > скинь сырцы, слабо?
                  скопипастил? :-D
                  так какой бюджет-то?
                  Ответить
                  • скинь как ты делаешь запросы к мускулу, и парсиш резалты, 1 файл нужен чтобы оценить работу человека. Вот и оценим... Если канешно не жалко.
                    Ответить
                    • >скинь сюда как делаешь ты запросы к мускулу, и парсиш резалты
                      > а потом посмотрим может и ты займешь почетное место сдесь)

                      > скинь как ты делаешь запросы к мускулу, и парсиш резалты,
                      > 1 файл нужен чтобы оценить работу человека. Вот и оценим...

                      У-Н-Ы-Л-О-Т-А
                      вобщем-то для бота было неплохо вплоть до этого глюка
                      Ответить
                      • Кароче не унывай пиши свой говнокод дальше и выкладывай будем коментить.
                        Ответить
                        • меня вот что любопытит... постоянное множественное число вызвано дефектом речевого центра или там действительно целая толпа одноклассников, готовая неумолимой отарой ворваться на мой уютненький говнокодик и разъесть его раком?
                          Ответить
                          • это раздутая мания величия от комплекса неполноценности :)
                            Ответить
                          • >постоянное множественное число
                            Так делают одинокие люди для добавления своему слову вескости и уменьшения чувства своего одиночества.

                            А ещё люди с раздвоением и раз...более личности.
                            Ответить
                            • в принципе, исходя из определения пхпешники должны быть стайными
                              Ответить
                              • а они не стайные, а стадные. Стада замечены на форумах типа phpclub, dklab
                                Ответить
                          • Да нас целая толпа борцов с Тролями, мы таких как ты отлавливаем и заставляем Пушкина читать, повышая тем самым как духовный так и интеллектуальный уровень, убого программиста который кроме кода и выливания говна больше не на что не не способен.
                            Ответить
                            • да, явная функциональная афазия
                              К ЛОГОПЕДУ, БЫДЛО!
                              Ответить
                            • >нас целая толпа борцов с Тролями, мы таких как ты отлавливаем
                              На корточках сидите по углам, да семки счёлкаете?
                              Ответить
                              • Судя по дальнейшему бреду, сидят на корточках по углам библиотек.
                                Книжки читают. За свои года познакомились с Пушкиным, что не может не радовать. А так наша рать передает им привет и пусть уебывают.
                                Ответить
    • уныло. но 99% кода именно в этом стиле.
      Ответить
    • "Так, конечно, можно"
      Нельзя так
      Ответить
      • т.е. "существует возможность". А если возможность есть, можно быть спокойным, что ею воспользуются
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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