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

    +161

    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
    // Функция отметки входящих сообщений как прочитанных
    	function CheckReadPM() {	
    		global $user, $site, $db;
    		$pm_ids = SafeDB($_POST['mod'], 11, int);
    		$where = '(`id` = '.$pm_ids[0];
    		$i = 1;
    		while($i < count($pm_ids)) {
    			$where .= ' or `id` = '.$pm_ids[$i];	
    			$i++;	
    		}
    		$where .= ") and `to` = ".$user->Get('u_id')." and `black` = 0";
    		$db->Update('private', "`read` = 1", $where);	
    	}

    Запостил: Мартин, 31 Октября 2010

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

    • Аххаха =) зачет! отличный говнокодец)
      Ответить
    • а в чем гавнокод собственно ? кроме убого стиля ...
      Ответить
      • в глобальных переменных, во вручную составленном запросе, каше из знаний об sql, user и и http, и наконец в волшебном числе 11.

        короче стандартное пыховое дерьмо
        Ответить
      • я думаю что в СейфБД это магическое число 11 означает длину строки, что делается дальше с этим числом нам конечно не известно...
        На счет глобальных переменных, видимо этот человек просто не знает о существование ООП или о том как его готовить.
        Обычный нубский код человека который явно мало программировал когда в своей жизни ...
        Ответить
        • даже без ООП можно писать без глобальных переменных: процедурный подход никто не отменял.

          Если это код новичка -- то не страшно, но вполне может быть что это код человека, который 7 лет пишет на PHP: в этом мире такое часто бывает.

          И кстати там есть кусочек ооп: $user
          Ответить
        • SafeDB фильтрует входящие данные (от инъекций, XSS и т.д.).
          Ответить
          • от инъекций сто миллионов лет назад придумали PDO
            Ответить
            • Кажется PDO ещё тормознее чем mysql функции?..
              Ответить
              • погодите, у Вас же узким местом является print вместо echo, теперь уже PDO?

                И кстати удалите все таки пробелы: это лишний шаг парсеру
                Ответить
                • Вообще-то, всего лишь спросил...
                  --
                  Вы меня ни с кем не путаете?..
                  Ответить
                  • может и путаю, извините)
                    отвечаю серьезно:

                    безусловно PDO работает дольше, чем mysql_, потому как является оберткой вокруг оных.
                    Но тормоза эти так ничтожно малы на фоне времени выполнения PHP скрипта, что ими можно пренебречь.

                    Программа, написанная на PHP тоже работает медленее, чем модуль apache.
                    Но люди же пишут на PHP.
                    Ответить
                    • :)
                      но если сложить все 42 select'а в которых по 63 outer join'a...
                      Ответить
                      • ...то то 98.8% времени работы запроса работать будет mysql, а PHP будет ждать.

                        даже если Вы обернете PDO в 42 своих класса -- ничего не изменится
                        Ответить
                        • всё хочу спросить, как Вы относитесь к UML?
                          Ответить
                          • а Вы разве не спрашивали?)

                            Я как-то унес с работы книжу "UML in a Nutshell" (орелли, с котом на обожке) и с тех пор хорошо отношусь, по крайней мере использую иногда class, sequence и use case диаграммы. Остальные -- крайне редко.

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

                            Но использовать его надо (имхо) только для запутанных или крупных случаев.
                            Иной раз проще человеческим языком описать юз-кейс или написать пару интерфейсов на любимом ЯП вместо диаграммы.
                            Ответить
                            • Насчет точности, это очень согласен.
                              Но он в большей степени позволяет абстрагироваться от кодов и быть ближе к идее проекта.
                              С учётом сегодняшней скорости развития технологий, по-моему, точность (скорость вычисления этой точности) отойдёт на второй план.
                              Нечто подобное наблюдалось некоторое время назад, с приходом языков программирования высокого уровня.
                              --
                              PS. А потом весь гк запостят uml'ными выводками...
                              Ответить
                              • ))ну впринципе класс-диаграмма вполне может быть смешной.
                                и деплоймент диаграмма тоже.
                                Ответить
    • Как собственно можно сделать удаление нормально? В mod (POST) приходит массив id писем, которые надо удалить?
      Ответить
      • сделать ифейс, который предоставляет такие данные.
        сделать его имплементацию, которая берет их из HTTP.
        научить ее чистить данные и выдавать массив.
        покрыть тестами.
        сделать класс, который получает массив и строит запрос.
        сделать в нем имплод элементов массива через запятую)
        Ответить

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