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

    −17

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    class UserModel extends Base { 
    
        function index($id) { 
            $row = DB::run("SELECT `users`.*, (SELECT COUNT(*) FROM `guest` WHERE `guest`.`id_user`=`users`.`id`) AS `guest`,
                            (SELECT COUNT(*) FROM `files` WHERE `files`.`id_user`=`users`.`id`) AS `download`,
                            (SELECT COUNT(*) FROM `blog` WHERE `blog`.`id_user`=`users`.`id`) AS `blog`,
                            (SELECT COUNT(*) FROM `news_comments` WHERE `news_comments`.`id_user`=`users`.`id`) AS `news_comments`,
                            (SELECT COUNT(*) FROM `files_comments` WHERE `files_comments`.`id_user`=`users`.`id`) AS `files_comments`,
                            (SELECT COUNT(*) FROM `blog_comments` WHERE `blog_comments`.`id_user`=`users`.`id`) AS `blog_comments` FROM `users` WHERE `id`='" . $id . "'")->fetch(PDO::FETCH_ASSOC); 
    
            SmartySingleton::instance()->assign(array( 
                'row' => $row, 
                'friends' => DB::run("SELECT COUNT(*) FROM `friends` WHERE `id_user`='" . $this->user['id'] . "' AND `user_id`='" . $row['id'] . "' OR `id_user`='" . $row['id'] . "' AND `user_id`='" . $this->user['id'] . "'")->fetchColumn(), 
                'blacklist' => DB::run("SELECT COUNT(*) FROM `blacklist` WHERE `id_user`='" . $this->user['id'] . "' AND `user_id`='" . $row['id'] . "'")->fetchColumn() 
            )); 
            SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/modules/user/index.tpl'); 
        } 
      //  и еще пачка методов 
    }
    // базовая модель. 
    class Base { 
    
        function __construct() { 
            $this->user = User::auth(); 
            $this->page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 0;
    
            if ($this->user['id']) { 
                $this->message = $this->user['message']; 
            } else { 
                $this->message = Cms::setup('message'); 
            } 
    
            //если забанен 
            if ($this->user['ban'] == 1 && $this->user['bantime'] > Cms::realtime() && $_SERVER['REQUEST_URI'] != '/user/ban' && $_SERVER['REQUEST_URI'] != '/user/exit') {
                Functions::redirect(Cms::setup('home') . '/user/ban'); 
            } 
        } 
    
    } 
    
    // user auth  метод самый сок. или  (почему у меня лагает???)
    class User { 
    
        public static $user = array(); 
    
        public static function auth() { 
            /* Авторизация */ 
            if (isset($_COOKIE['id_user']) && isset($_COOKIE['hashcode']) && $_COOKIE['id_user'] != NULL && $_COOKIE['hashcode'] != NULL) {
                $userdata = DB::run("SELECT * FROM `users` WHERE `id` = " . abs(intval($_COOKIE['id_user'])) . " AND `hashcode` = '" . Cms::Input($_COOKIE['hashcode']) . "' LIMIT 1")->fetch(PDO::FETCH_ASSOC); 
                if ($userdata['id']) { 
                    /* записываем последнее посещение */ 
                    DB::run("UPDATE `users` SET `date_last`='" . Cms::realtime() . "' WHERE `id`='" . $userdata['id'] . "'");
    
                    /* онлайн */ 
                    if (DB::run("SELECT COUNT(*) FROM `online` WHERE `id_user`='" . $userdata['id'] . "'")->fetchColumn() > 0) { 
                        DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `id_user`='" . $userdata['id'] . "'");
                    } else { 
                        DB::run("INSERT INTO `online` SET  
                           `id_user`='" . $userdata['id'] . "',  
                               `ip`='" . Recipe::getClientIP() . "',  
                                    `browser`='" . Recipe::getBrowser() . "', 
                                        `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                            `time`='" . Cms::realtime() . "'"); 
                    } 
    
                    SmartySingleton::instance()->assign(array( 
                        'newnotice' => DB::run("SELECT COUNT(*) FROM `notice` WHERE `id_user`='" . $userdata['id'] . "' AND `status`='1'")->fetchColumn(), 
                        'newmail' => DB::run("SELECT COUNT(*) FROM `mail` WHERE `user_id`= '" . $userdata['id'] . "' AND `read`='0'")->fetchColumn() 
                    )); 
                    self::$user = $userdata; 
                    return self::$user; 
                } 
            } else { 
                setcookie('id_user', '', 0, '/'); 
                setcookie('hashcode', '', 0, '/'); 
                session_destroy(); 
                /* онлайн для гостей */ 
                if (DB::run("SELECT COUNT(*) FROM `online` WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'")->fetchColumn() > 0) { 
                    DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'");
                } else { 
                    DB::run("INSERT INTO `online` SET  
                               `ip`='" . Recipe::getClientIP() . "',  
                                    `browser`='" . Recipe::getBrowser() . "', 
                                        `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                            `type` = '2', 
                                                `time`='" . Cms::realtime() . "'");
                } 
            } 
        } 
    
        function data($table) { 
            $array = "(SELECT `login` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `login`,
                        (SELECT `avatar` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `avatar`,
                            (SELECT `level` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `level`";
            return $array; 
        } 
    
    }

    Описание:
    Релиз VCMS, версия 1.0

    Сегодня состоялся релиз первой версии бесплатного движка VCMS.

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

    Запостил: eskrano, 15 Января 2017

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

    • "BootStrap" заебал. Уже четыре года назад мне эта синяя размазанная подсветка полей формы казалась колхозом. Как это заполонило пол-Интернета?
      Ответить
      • И, казалось бы, закомплексованный школьник взялся за разработку CMS, впихнув туда модный MVC, а, меж тем, многие вводные данные не проверяет, что, в итоге, позволяет создавать в "Блоге" записи с несуществующими ID категорий: http://vcms.su/active/blogs/90 (в данном случае - "-6").
        Ответить
        • А тем временем:

          "Вы забанены! Бан истекает: -32140632 секунд назад"
          Ответить
          • > Бан истекает: -32140632 секунд назад
            Т.е. давным-давно разбанили?
            Ответить
          • > 32140632
            12 месяцев по 31 дню за вычетом 2 минут 48 секунд... Типа на год.
            Ответить
      • > Как это заполонило пол-Интернета?
        +1. Все мелкие сайты как под копирку. "Модно, молодёжно, как у твиттера!"

        З.Ы. Ну, к слову, на безрыбье, когда дизайнера с версталой под рукой нет - и бутстрап сойдёт. Всё лучше, чем очередной уёбищный говнодизайн-от-программиста.
        Ответить
        • >>> "как у твиттера"
          Особенно учитывая, что сам "Twitter" не использовал ни код своего фреймворка, ни его визуальные решения.
          Ответить
        • > когда дизайнера с версталой под рукой нет - и бутстрап сойдёт

          Ну вот кстати я его довольно часто использую для всяких внутренних инструментов с веб-интерфейсом, когда нужно сбацать что-нибудь полезное за пару дней.
          Ответить
        • >>е, когда дизайнера с версталой под рукой нет

          А теперь мысленно перенеси это всё на десктоп: "ой, да я стандартные контролы использую только когда дизайнера под рукой нет".

          Глупо звучит, правда?
          Ответить
      • бутстрап это еще и сеточка и респонсивная верстка, и готовые контролы, и вообще оче хорошо
        Ответить
        • и можно подумать, что там тока синие кнопощки
          да какие угодно
          Ответить
          • да и не в кнопка дело то)

            Я же говорю: респонсивненько сверстать чтобы оно работало и под iPhone и под 30" моник -- это не баран чихнул, нужен действительно качественный верстун (а их мало, кстати). Бутстрап это СИЛЬНО упрощает.
            Ответить
    • > SmartySingleton
      Какое точное и понятное название! И ведь не соврал же.

      > $_SERVER['REQUEST_URI'] != '/user/ban'
      Для "PHP" магические строки - это нормально?


      Зашёл в гостевую: анимированные жёлтые смайлики-шарики, гифки, блёстки-звёздочки... Спасибо, вернули 2002.
      Ответить
      • мда, пых это параллельный мир, где время остановилось.

        Только бутстрап там не в тему. Должен быть HTML 4.01 в ВЕРХНЕМРЕГИСТРЕ, табличная верстка и BGSOUND
        Ответить
        • И тёплые ламповые blink и marque.
          Ответить
          • и таг LAYER для Netscape
            Ответить
            • frameset cols
              @
              frameset rows

              Netscape is love, netscape is life.
              Ответить
              • Фреймы! Боже! Я забыл что можно было делать сайты на фремах.
                Меню в левом фрейме, тело -- в правом, и target у a чтобы в главном фрейме открывалось.
                Фремы были прокляты и забыты еще на излёте 90х.

                Может быть вы еще и SSI помните?
                Ответить
                • Похоже ты не посещаешь имаджборды.
                  Ответить
                  • Конечно.
                    Зачем мне двачеры?
                    Ответить
                    • Как раз на сосаче фреймов вроде нет. А вот на многих других бордах есть.
                      Ответить
                      • Старый я слишком

                        Мне в 2008м было уже не до сосачей ваших
                        Ответить
                      • У доброчанек джва фрейма - список разделов и сам контент.
                        Ответить
    • vcms.su

      > > Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LOW_PRIORITY `online` SET `ip`='93.125.45.63', ' at line 1' in /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php:47 Stack trace: #0 /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php(47): PDOStatement->execute(Array) #1 /var/www/maisosu/data/www/vcms.su/app/core/classes/User.php(47): DB::run('INSERT INTO LOW...') #2 /var/www/maisosu/data/www/vcms.su/app/core/core.php(26): User::auth() #3 /var/www/maisosu/data/www/vcms.su/index.php(15): require_once('/var/www/maisos...') #4 {main} thrown in /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php on line 47
      Ответить
      • Тебя по айпи пытались вычислить
        Ответить
        • Вычислил вместительность твоей прямой кишки, проверь.
          Ответить

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