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

    +159

    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
    /*
     -----------------------------------------------------------------
     Отмечаем все темы как прочитанные
     -----------------------------------------------------------------
     */
    $req = mysql_query("SELECT `forum`.`id`
                FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
                WHERE `forum`.`type`='t'
                AND `cms_forum_rdm`.`topic_id` Is Null");
    while ($res = mysql_fetch_assoc($req)) {
        mysql_query("INSERT INTO `cms_forum_rdm` SET
                        `topic_id` = '" . $res['id'] . "',
                        `user_id` = '$user_id',
                        `time` = '" . time() . "'");
    }
    $req = mysql_query("SELECT `forum`.`id` AS `id`
                FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
                WHERE `forum`.`type`='t'
                AND `forum`.`time` > `cms_forum_rdm`.`time`");
    while ($res = mysql_fetch_array($req)) {
        mysql_query("UPDATE `cms_forum_rdm` SET
                        `time` = '" . time() . "'
                        WHERE `topic_id` = '" . $res['id'] . "' AND `user_id` = '$user_id'");
    }

    Один из самых популярных мобильных движков - JohnCMS.

    Скрипт отмечает темы форума как прочтенные. Частенько бывает за сотню непрочитанных тем. А я посещаю редко, так у меня вообще за тысячу переваливает иногда.

    Запостил: Max_Coder, 21 Ноября 2013

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

    • А зачем в форуме отмечать темы как прочтенные ?
      Что бы через 2 минуты они снова становились не прочтенными ?
      Ответить
    • >>JohnCMS
      Ох. Мы в нём когда-то и sql-inj находили, и xss..
      100% движков из тех времён - непонятное что-то, что в большинстве своём написано без ООП, как бд использует файлы(ибо хостинги с бд стоили дороже, а без дб - было много бесплатных) и вообще всё очень плохо. И это бы ещё ничего, если бы не адов говнокод, который невозможно поддерживать.

      ПрохладнаяБылина.jpg
      Ответить
    • Почему всегда все популярные ПХП "движки", "цмски", "джумлы" и "вордпрессы" всегда используют mysql_* функции? В принципе, возьми любого ПХП творца со стажем 2+ лет - любой не задумываясь скажет, что нужно использовать ПДО, ну и если совсем жопа, то хтоя бы mysqli_* с параметризироваными запросами.
      Вот почему так?
      Ответить
      • В принципе, нет никаких проблем их перевести на параметризированные запросы. Наверно, это нинужно.
        Ответить
      • Потому что популярные движки начинали писаться лет этак 10 назад, и с тех пор вносились только багфиксы и косметические правки?
        Ответить
        • Скули, как известно, в php к багам не относятся. Они являются неотъемлемой частью php, как запах масла - частью мотора.
          Ответить
        • Поскольку обучение в апинсорсе обычно сводится к "скопипиздь код из работающего модуля, который ты смог понять", то их будут использовать еще долго.
          Ответить
          • показать все, что скрытоМожно подумать в не апинсорсе обучение сводится к чему-то другому ;)
            Ответить
            • В не опенсорсе есть старшие коллеги, которые эту порочную практику могут прервать. В апинсорсе с низким порогом вхождения из поколения в поколение макаки копируют друг у друга, а не у людей, которые что-то понимают. Потомственные макаки, так сказать.
              Ответить
              • Это в философии называется проблемой гомункула: а откуда старший товарищ в курсе как надо писать?
                Т.е. ему тоже должен был старший товарищ рассказать, и т.д. пока не упремся в товарища у которого старших товарищей не было. И тогда мы либо будем вынуждены признать что:
                - либо наша цепочка рассуждений была неверной.
                - самый старший товарищ радикально отличается от вех остальных товарищей (гомункул).
                - цепочка бесконечна.
                Ответить
                • Старший товарищ набрался опыта сам?
                  Ответить
                  • Тогда младшему товарищу ничего не мешает тоже самому набраться, вообще необходимость в существовании старшего отпадает.
                    Ответить
                    • Так каждый и набирается, пиша при этом говнокод. Когда набирается - уходит на другую платформу.
                      Ответить
                  • Опыт показывает, что неразрешимые философские проблемы опытный инженер решает или обходит за конечное время.

                    Ex(n, t) = ExB(n, n - 1) + ExB'(n, n - 1, t) + ExG(n, t)
                    Ex(1, t) = Ex1(t)

                    т.е. практические знания n-го по порядку человека в цепочке есто то, чему он поверил наслово (зависит только от порядка) плюс то, что услышал и действительно поймёт позднее (зависит от порядка и времени) плюс то, до чего дошёл сам путём проб и ошибок. У "гомункула" первые слагаемые равны нулю и весь свой опыт он получил наступая на грабли. Следущие поколения уже могут пользоваться его знаниями, добавляя к ним свои.
                    Ответить
                    • O, забавная теория. Правда ,наверно, инженеры не решают филисофских проблем, они их обходят (ибо нефиг).
                      Ответить
                    • Скорее, инженер - система реального времени. Все, что он не успевает решить с определенными затратами ресурсов, посылается нахуй и ищется другой путь.
                      Ответить
                      • Математик, физик, инженер доказывают теорему о том, что все нечетные числа — простые.
                        Математик:
                        — 1 — простое, 3 — простое, 5 — простое, 7 — простое, 9 — не простое. Это контрпример, значит теорема неверна.
                        Физик:
                        — 3, 5 и 7 — простые, 9 — ошибка эксперимента, 11 — простое и т.д. Возьмем ещё несколько случайно выбранных нечетных чисел. 17 — простое, 19 — простое, 23 — простое... Теорема доказана.
                        Инженер:
                        — 3 — простое, 5 — простое, 7 — простое, 9 — приблизительно простое, 11 — тоже простое... Да все они простые!
                        Ответить
                        • Комната. Посредине горит огонь, рядом стоит ведро с песком.
                          Заходит инженер. Засыпает огонь, выходит.
                          Заходит физик. Обсыпает огонь песком по периметру, садится рядом и наблюдает процесс.
                          Заходит математик, видит, что задача решаема и уходит.
                          Ответить
                          • В комнату заходит аноним в телогрейке, шапке-ушанке и валенках, облепленных навозом, в руках у него лопата. Анонимб замечает огонь, пошатываясь подходит к огню, и наклонив голову некоторое время тупо глядит, как полыхает пламя. Ээх, непорядок! - крякнул аноним. Немного погодя, он оттопырив штаны и вынимает свой давно не мытый хуй и мочится в огонь. Огонь гаснет. Анонимб некоторое время еще смотрит затем довольно крякает и уходит.
                            Ответить
                            • показать все, что скрытоВ комнату заходит аноним в телогрейке, шапке-ушанке и валенках, облепленных навозом, в руках у него лопата. Анонимб замечает гостя, пошатываясь подходит к гостю, и наклонив голову некоторое время тупо глядит, как гость срет в говнокод. Ээх, непорядок! - крякнул аноним. Немного погодя, он оттопырив штаны и вынимает свой давно не мытый хуй и мочится на гостя. Гость начинает что-то пиздеть, а потом затыкается. Анонимб некоторое время еще смотрит, затем довольно крякает и уходит.
                              Ответить
                              • В комнату заходит аноним в телогрейке, шапке-ушанке и валенках, облепленных навозом, в руках у него лопата. Анонимб замечает гостя, пошатываясь подходит к гостю, и наклонив голову некоторое время тупо глядит, как гость срет в говнокод. Ээх, непорядок! - крякнул аноним. Он подозвал гостя и всучил ему в руки лопату. Потом же, он, оттопырив штаны, подошел к гостю встал раком и пробормотал -суй туды ее... Гость начинает что-то пиздеть, а потом затыкается и делает то, о чем его просят. Анонимб некоторое время еще стоит раком, затем довольно крякает и уходит.
                                Ответить
                                • В комнату заходит аноним. Видит другого анонима, который ебет обоссаного гостя черенком от лопаты, садится рядом и наблюдает процесс.
                                  Ответить
                            • Эх, гость, не оправдал ожиданий.
                              Я уж думал, последние события будут эффектно обыграны, а тут - просто скучная история.
                              Огонь гаснет. Анонимб некоторое время ещё смотрит, затем довольно крякает, оттопыривает штаны и показывает гоатсе.
                              Ответить
                              • 1024, жжошь! )
                                Ответить
                              • В комнату заходит аноним в телогрейке, шапке-ушанке и валенках, облепленных навозом, в руках у него лопата. Анонимб видит посреди комнаты говнокод, засыпает его говном и наблюдает процесс. А 1023 тем временем сосет у гнойной шлюхи - guest-а.
                                Ответить
                          • Дано: комната, где горит огонь, угрожающий превратиться в пожар, и рядом лежит куча песка.
                            Инженер: входит в комнату, засыпает огонь песком, уходит.
                            Физик: входит в комнату, насыпает песок вокруг огня, садится и наблюдает за процессом.
                            Математик: входит в комнату, видит, что решение есть, и уходит.

                            Дано: комната без признаков огня и с кучей песка.
                            Математик: разводит огонь и сводит задачу к уже решенной.

                            А если представить другие профессии? Давайте придумаем, мне кажется, можно много интересного родить :)

                            Адвокат: ждет пока сгорит и предлагает услуги по возмещению вреда

                            Сисадмин предлагает выйти и зайти из комнаты.

                            Сисадмин: лень выходить из комнаты, он ждет физика или хотя бы математика
                            Журналист: подливает масла в огонь, фотографирует и бежит в редакцию готовить репортаж
                            Легкоатлет: устанавливает новый рекорд по скорости бега
                            И только пионер знает, что делать ))

                            Тестировщик зажигает еще пару костров, что бы понять как такое произошло.

                            Несистемный оппозиционер: бежит за финансированием к американцам, потом заводит блог о пожаре, попутно собирает деньги на фонд по поддержке пожаротушения, устраивает народные демонстрации, призывающие тушить пожар. Но огонь, как горел, так и продолжает гореть, как и задумывал главпожарный.

                            Строитель: забирает песок и валит. задача с трудоустройством и стройматериалом решена.
                            Философ: "огонь - горит, песок - лежит... как устойчив порядок вещей, что ещё здесь решать!"
                            Ответить
                        • Мне даже за наезд на погромистов захотелось минуснуть. Только математик нормальный кун получился. Шутка дебильная. Они так конечно делают, но ни при доказательстве теорем.
                          Ответить
                        • Физики не всегда игнорируют "ошибки эксперимента". То ли эйнштейн, то ли резерфорд из-за этих ошибок открыли атомную модель.
                          Ответить
                          • ну-ка, ну-ка, поподробней мне о модели атома по Энштейну и из-за каких это ошибок эксперимента Резерфорд открыл планетарную модель атома
                            Ответить
                    • Ну это вы описали простой случай индукции, но тут есть еще один интересный философкий парадокс, предложеный Дейвидом Хьюмом: а легитимно ли делать такие умозаключения? Особенно в виду того, что мы не наблюдали, и не можем наблюдать всех инжинеров / программистов. С точки зрения логики, такие выводы мы можем делать только в системах эквивалентных системе Фитча (или слабее), т.е. в системах, где есть константы функций нам нельзя утверждать что f(f(f(...f(true)))) = g(g(g(...g(true)))) даже если мы можем вычислить f(x) и g(x) для любого значения.
                      Ответить
                      • >Хьюмом
                        Xyuma?
                        Ответить
                      • /me thinks с прогрессом физики математика, оперирующая бесконечными множествами, перестанет подходить для описания мира с достаточной степенью точности. Причём даже сами математики уже это понимают.
                        Ответить
                        • А кто-то уже эту мысль сформулировал на столько, чтобы об этом можно было почитать (желательно так, чтобы и студент-первокурсник понял)? Или просто догадки?
                          Ответить
                        • Математикам, как правило, похуй на такие мелочи, как реальный мирок
                          Ответить
                          • Ага, Эйлеру, Фурье, Гауссу, Пуанкаре, Риману и Гильберту была совсем индифферента физика.
                            Мне понравилась фраза "физика изучает наш мир, математика - все возможные миры".
                            Ответить
                            • На самом же деле физика изучает наш мир, а математика изучает себя в собственном соку.
                              Ответить
              • Кто не понял, о чем я - в фрактеле плохого дизайна эта ситуация расписана. Те, кто набираются знаний - уходят, на их место приходят новые макаки.
                Ответить
                • показать все, что скрытоАга. Те кто набираются знаний, уходят с проприетарного проекта в другую фирму... На их место берут новичка, которому пытаются передать знания, но не успевают. К тому моменту когда он все-таки начинает понимать проект от и до и набирается знаний, он меняет место работы...

                  Короче не в опенсурсе тут дело. Это общая проблема. И во многих проприетарных конторах как раз и обитают потомственные макаки. Просто благодаря закрытости кода это мало кто видит, а в опенсурсе все говно наружу ;)
                  Ответить
                  • >Просто благодаря закрытости кода это мало кто видит
                    Вполне может быть :) Есть конечно фирмы-макдональдсы в невъебенной текучкой. Но тут целые области представляют из себя макдак. + то, что с этим приходится ебаться забесплатно усиливает батхерт.

                    Наверно, составляющие проблемы такие: низкий порог вхождения + людям со знанием и опытом в этой области делать нечего.
                    Ответить
        • Та ну, у подавляющего большинства на сегодняшний день установочные требования ПХП 5 и Майсиквел 5. Даже если это и было написано сто лет назад, должно же выделятся сколько-то времени на модернизацию и рефакторинг. Иначе проект просто подохнет через какое-то время.
          Ответить
          • Ты плохо понимаешь суть рнр. Он не изменяется, он пишется заново.
            Ответить
      • Тоже пишем Open Source CMS, от mysql отказался еще год назад, а вот PDO не хочу использовать из "принципиальных" соображений. Потму юзаем MySQLi с хорошей рукописной оберткой.
        Ответить
        • "и почему не постгрес?"
          "а к ораклу подключится?"
          "а вы знаете, мы уже купили MS SQL, и mysql не хотим из принципиальных соображений"
          Ответить
          • >Оракл
            >php
            /0
            Ответить
          • Все. Как раз таки недавно заюзали ORM. Теперь по умолчанию PDO. С возможностью выбора среди SQLite >= 3, Postgre >= 8.
            Ответить
    • в мускуле нет merge?
      а, во, как минимум есть insert ... on duplicate key update
      Ответить
    • — раздался пронзительный голос со стороны параши.

      Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?

      Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
      Ответить
    • Второе гоатсе? (коммент выше)
      Ответить

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