- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 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.07.2010 10:34 # −9
А вот послушать советы буду очень рад! =)
Анонимус 21.07.2010 13:17 # +18
Так и будет
3.14159265 21.07.2010 13:21 # +11
Анонимус 21.07.2010 13:24 # +9
но вообще это нормально -- молодые программисты должны начинать в определенный момент писать свою CMS (свой фреймворк, свою супер-библиотеку, свой STL) а потом выкидывать в помойку.
Так они получают опыт.
Lure Of Chaos 21.07.2010 13:35 # −2
тоже, поработав в жабе-ее с тапестри5, и потом волею судеб вернувшись к пхп, стало не хватать тапестри5. перепробовав наиболее популярные фреймворки, мне они не понравились, решил написать свой. Дело оказалось нетривиальным, и не раз пришлось поломать голову над удовлетворительными решениями некоторых задач. Даже пару раз, было, бросал фреймворк, и пару раз переписывал с использованием других идей. В итоге оно таки родилось и показало неплохие результаты, чем доволен до сих пор.
И, извините, из нее не нахожу, чем обрадовать говнокод.ру = )
nethak 21.07.2010 13:46 # −1
3.14159265 21.07.2010 13:24 # 0
ибо насколько я понял говнокод либо лечит, либо калечит неисправимых вроде УебКилла
%govnouser% 21.07.2010 13:29 # +6
и луре оф каос
nethak 21.07.2010 13:47 # −2
3.14159265 21.07.2010 13:56 # 0
через год вы перестанете использовать пхп и займетесь программированием
nethak 21.07.2010 13:58 # −1
3.14159265 21.07.2010 14:00 # 0
+ я не предсказываю будущее именно потому там кейворд "возможно"
Анонимус 21.07.2010 14:14 # +2
Забавнее смотреть на людей, которые уходили в java, или .net и пытаются потом принести в PHP collections framework например.
Lure Of Chaos 21.07.2010 14:29 # −2
3.14159265 21.07.2010 14:22 # −1
3.14159265 21.07.2010 14:23 # +5
Lure Of Chaos 21.07.2010 14:24 # −2
nethak 21.07.2010 14:34 # −1
Анонимус 21.07.2010 14:44 # −1
Я не предлагаю тратить человекогод на вылизывание системы, просто думать над архитектурой тоже нужно.
nethak 21.07.2010 14:46 # −1
Анонимус 21.07.2010 14:48 # −1
А что такое "класс работы с бд"? Data Access Object?
nethak 21.07.2010 19:15 # −3
Анонимус 21.07.2010 19:20 # 0
просто под эфемизмом "класс работы с базой данных" кто-то подразумевает класс абстракции от БД, а кто-то -- ООП обертку типа твоего sql_db (отличный кодстайл, кстати!!)))
В первом случае в нем есть смысл.
Во втором гораздно меньше
Lure Of Chaos 21.07.2010 15:35 # 0
ну и конечно точки расширения
nethak 21.07.2010 19:17 # −1
Анонимус 21.07.2010 19:20 # 0
bugmenot 21.07.2010 21:12 # +1
и что по-русскому за год в Вас? а по литературе?
nethak 21.07.2010 22:18 # −2
nethak 21.07.2010 14:25 # 0
3.14159265 21.07.2010 14:28 # 0
минусуй таких, причем смело
nethak 21.07.2010 14:35 # −8
Lure Of Chaos 21.07.2010 15:30 # 0
а жена не будет плакать? )))))))
bugmenot 21.07.2010 17:00 # +1
Lure Of Chaos 21.07.2010 17:02 # −1
bugmenot 21.07.2010 17:42 # +2
3.14159265 21.07.2010 17:47 # 0
nethak 21.07.2010 19:18 # −2
bugmenot 21.07.2010 21:17 # 0
LOL
nethak 21.07.2010 22:19 # −3
г. Сургут 33 микрарайон! Я от сюда. Номер телефона назвать!? Скажи мне это по телефону! Вы чё реально гоните!
nethak 21.07.2010 22:20 # −5
bugmenot 22.07.2010 00:11 # 0
LOL
nethak 22.07.2010 09:35 # −5
nethak 22.07.2010 09:37 # −5
nethak 22.07.2010 09:50 # −4
Bjarne_Stroustrup 22.07.2010 19:22 # +1
nethak 23.07.2010 06:12 # −1
nethak 21.07.2010 19:18 # −3
Lure Of Chaos 21.07.2010 21:31 # −1
nethak 21.07.2010 13:45 # −1
Lure Of Chaos 21.07.2010 13:48 # +2
а впрочем нет, не зря. нахлебаетесь, шишек набьете, тот же бесценный опыт.
хотя, как говорится, умный все же на чужих ошибках учится.
nethak 21.07.2010 13:51 # −1
Lure Of Chaos 21.07.2010 13:57 # +1
а иначе, как я, превратитесь в компового червя и наживете проблем на свое здоровье. Вам это надо?
nethak 21.07.2010 14:08 # −1
Lure Of Chaos 21.07.2010 14:11 # +1
сломаетесь
> жене размеется время уделяю
а как сломаетесь, не будет сил
nethak 21.07.2010 14:22 # −1
Анонимус 21.07.2010 13:55 # +3
Так что переделывать прийдется многое
nethak 21.07.2010 13:59 # −1
>>запросы к БД из функции с бизнес-логикой.
Анонимус 21.07.2010 14:07 # 0
Но оперирует она живыми данными -- в нее вшиты пути к файлам, которые она проверяет, в нее вшит SQL запрос итд.
Тоесть если ты решишь ее протестировать (покрыть ВСЕ возможные случаи) тебе прийдется создавать/удалять файлы, заполнять базу разными данными итд.
Если тебе где-то надо будет сделать такую же логику (но с другими файлами) -- ты скорее всего ее скопипастишь.
Так вот, логика должна быть чистой. Тогда ее легко будет переносить и тестировать.
Чуствую себя Капитаном Очевидность. почитай лучше про юнит-тесты, например) Обычно они сподвигают писать красиво
nethak 21.07.2010 14:21 # 0
Lure Of Chaos 21.07.2010 14:02 # 0
nethak 21.07.2010 14:20 # −1
dr_von_ozgg 21.07.2010 11:01 # +9
if(IN_ADMIN){
define("IN_ADMIN", TRUE);
}
И на кой использовать "{$varname}", когда достаточно просто $varname? (5, 6, 7 строки).
Через год сами поймёте, что весь этот кусок — ужас-ужас.
nethak 21.07.2010 11:10 # −3
define("LANGUAGE_ADMIN","$row['language_admin']");
это я вас не понял. WTF?
это константа для работы админки, если фальсе то доступа нет...
Ну а в целом?
cheef 21.07.2010 13:47 # +3
dr_von_ozgg 21.07.2010 13:55 # −1
WTF по поводу того, что если константа уже определена, зачем пытаться её переопределить? А условие if(IN_ADMIN) подразумевает как раз то, что эта константа уже определена.
В целом с моей точки зрения плохо.
nethak 21.07.2010 14:01 # −1
dr_von_ozgg 21.07.2010 14:05 # −1
У вас уровень ошибок E_ALL стоит или E_NOTICE не выводятся?
nethak 21.07.2010 14:10 # −6
dr_von_ozgg 21.07.2010 14:14 # +2
Нужно искать и устранять причину ошибок, а не затыкать сообщения о них.
Анонимус 21.07.2010 14:15 # +2
nethak 21.07.2010 14:19 # −2
define("ИМЯ","ЗНАЧЕНИЕ"); - На что тут ругатся скажите? На константы? Почему локалка не ругалась? А если у них в php.ini чтото выключенно? И что тогда? Уходить с хостинга? Уж проще заткнуть. Но переппроверив всё сотню раз, под всеми ракурсами и углами.
Анонимус 21.07.2010 14:21 # +1
Вам следует врубить в своем денвере все E_ALL.
Я вообще противник денвера, но это -- холивар
dr_von_ozgg 21.07.2010 14:25 # −1
Анонимус 21.07.2010 14:29 # 0
А вообще благодаря поделке котерова на свет родилась целая плеяда php-разработчиков, которые никгда в глаза не видели ни httpd.conf ни php.ini.
И это грустно
Lure Of Chaos 21.07.2010 14:38 # −2
самое главное не быть самому таким = )
nethak 21.07.2010 14:37 # −1
dr_von_ozgg 21.07.2010 14:41 # 0
Вторая причина — то, что прописывается в пару строк в конфигурации при нормальной установке (отдельно веб-сервер, отдельно php, отдельно СУБД) в Денвере часто оборачивается непонятными танцами с бубном, причём прописывание «пары строк в конфигурации» уже перестаёт работать.
nethak 21.07.2010 14:43 # −1
dr_von_ozgg 21.07.2010 14:46 # 0
Анонимус 21.07.2010 14:50 # +3
Как же изменился этот мир.
nethak 21.07.2010 14:51 # −2
Анонимус 21.07.2010 14:59 # +1
guest6 12.09.2023 21:23 # 0
nethak 21.07.2010 14:27 # −1
Lure Of Chaos 21.07.2010 14:40 # +1
nethak 21.07.2010 14:47 # −1
Lure Of Chaos 21.07.2010 14:36 # −3
денвер автоматизирует работу.
Или вы скажете, что белье надо стирать руками, а не в стиральной машине?
nethak 21.07.2010 14:38 # −1
Lure Of Chaos 21.07.2010 14:39 # −2
nethak 21.07.2010 14:47 # −2
Анонимус 21.07.2010 14:40 # +1
2) Потом можно списать на флешку и год юзать (пока не прийдет время обновить): кстати, как там у денверов с обновлением?
3) Я не против ситуации, когда денвер юзает профи. Я против, когда ребенка сразу сажают на денвер, и он потом не понимает что такое "виртуальный хост".
Lure Of Chaos 21.07.2010 14:44 # −1
2. очень неважно, недавно обновили пхп до 5.3, а 4ый все еще "скоро на экранах"
3. здесь полностью согласен.
nethak 21.07.2010 14:48 # −1
Lure Of Chaos 21.07.2010 15:05 # −1
nethak 21.07.2010 23:01 # −1
Lure Of Chaos 21.07.2010 23:06 # 0
zantor 21.07.2010 14:59 # −1
3.14159265 21.07.2010 14:21 # +4
о ДА ))))
первый шаг сделан....
nethak 21.07.2010 14:28 # −1
3.14159265 21.07.2010 14:33 # 0
я видел парней экранирующих абсолютно весь свой код try+пустыми catch(Exception ) или писавших в кажой функции в VB On Error Resume Next - досихпор смешно
агрументировавших - зато не падает нигде
nethak 21.07.2010 14:39 # −1
3.14159265 21.07.2010 14:46 # 0
а потом лазят и ищут почему в их переменную cmd1, к примеру, ниче не записалось.
А все потому что он написал c - русскую, привет 1Сникам!,а компилер схавал это как новую переменную
Lure Of Chaos 21.07.2010 12:17 # −1
nethak 21.07.2010 12:20 # −3
Lure Of Chaos 21.07.2010 12:28 # −1
а еще лучше полностью изменить подход, вынести логически связанные части в классы и пользоваться class autoloading в духе Zend Framework. И будет у вас красивый, хорошо структурированный код. А то наклепаете такой ужас, что через месяц откроете для добавления плюшек и сами испугаетесь что-либо менять.
учимся, учимся... книжки, туториалы и чужие ошибки (исходники известных продуктов, фреймворков и цмс)
nethak 21.07.2010 12:37 # −3
Сэтим тоже самое думаю будет))
Учусь учусь, и развиваюсь =)
Lure Of Chaos 21.07.2010 12:47 # −1
CMS требует опыта и тщательной продумки, а вот по неопытности нагородите чуши, которой пока не видите, и будет у вас все криво и медленно, в конце концов забросите свой проект - потеряете силы, время, а может и веру в себя как программиста
Если вам нужен CMS позарез, возьмите готовую, которую разрабатывал не один программист и длительное время - стало быть, там большинство ошибок и неверных решений поменьше
Наверное, спросите меня, какую цмс взять? порекомендую http://cmsmadesimple.ru как наиболее понятную для пользователя среди самых популярных
nethak 21.07.2010 13:49 # −1
1. Это своё, своё ближе к телу.
2. Это коласальный опыт, пусть я выпущу 10-20-30 версий, и каждая всё лучше... лучше... лучше... Так будет приходить опыт и знание... опыт и знание... опыт и знание... опыт и знание...... Я понимаю может странно, я понимаю что может и гавном занимаюсь по началу но я учусь) И спасибо большое тем кто подсказывает)
Lure Of Chaos 21.07.2010 13:53 # −1
1. потешить свое самолюбие, мол, я крутой
2. реальные проекты на ней не встанут. А дотянуть до хорошего качества в одиночку вам сил и времени не хватит, она морально устареет к тому времени. надо набирать сообщество, кодеров, тестеров, дизайнеров и маркетологов )
3.14159265 21.07.2010 13:59 # 0
гы)))) именно так и получаются говенные комерческие цмс, которые не нормально проектируются с нуля, а получаются как дописывание/переписывание говна
nethak 21.07.2010 14:02 # −2
Я не тешу самолюбие, и делаю её для себя. А вот про проекты Вы зря, встанут, уже есть крупный заказ. И там нужна своя КМС...
Lure Of Chaos 21.07.2010 14:07 # +1
1. опыта маловастенько
2. помощи ждать неоткуда, потому что никто в вашей цмс нихера не поймет, им-то свое "ближе к телу"
говорю не просто так, сам однажды напоролся
nethak 21.07.2010 14:12 # −2
Дизайнеры есть, помошник программист хороший есть.
Я не тешу самолюбие, и делаю её для себя. А вот про проекты Вы зря, встанут, уже есть крупный заказ. И там нужна своя КМС...
Lure Of Chaos 21.07.2010 14:15 # −1
nethak 21.07.2010 14:17 # −1
Lure Of Chaos 21.07.2010 14:20 # 0
nethak 21.07.2010 14:29 # −1
nethak 21.07.2010 14:11 # −1
nethak 21.07.2010 12:40 # −3
Lure Of Chaos 21.07.2010 12:54 # 0
кстати, поставьте там себе на будущее в программу изучения безопасность пхп-скриптов. Причем, не кидайтесь сразу в эту тему, наберитесь опыта в основах
nethak 21.07.2010 14:16 # −1
HyperGeek 21.07.2010 12:42 # +6
Lure Of Chaos 21.07.2010 13:09 # −5
> ...чтобы она была понятна даже тупому существу любопытному
тупое существо неспособно понять, ну скажем, преимущества ООП подхода, MVC-архитектуры и прочего, оно будет кричать "нахера тут так сложно!?", а макаронный говнокод, где свалено все в одну кучу, будет понимать кое-как
> более лаконичная и простая прога зачастую работает более производительней, чем мудреная
конечно, один таракан спрячется быстрее, чем полчище рассуется по углам, то есть, ПРОСТАЯ программа будет работать быстрее сложной, а СЛОЖНАЯ(более функциональная) вряд ли будет быстрее и понятнее хелловорлда.
Хотя, конечно, и простое можно сделать (через ж)сложно
Bjarne_Stroustrup 21.07.2010 19:11 # 0
Зачем? Чтоб над проектом работали тупые любопытные?
Как говаривал Эйнштейн, делай как можно проще, но не проще этого. А тупое существо и проще этого запросить может.
Lure Of Chaos 22.07.2010 19:58 # 0
вот я как раз о том же. видать меня не поняли.
Bjarne_Stroustrup 22.07.2010 20:03 # 0
Lure Of Chaos 22.07.2010 20:25 # 0
Анонимус 21.07.2010 13:06 # +6
А еще "рефакторинг" Фаулера, про запахи кода, например про дублирование.
А то чуть-чуть писать научились и уже CMS.
Lure Of Chaos 21.07.2010 13:20 # −2
вряд ли получится изобрести действительно что-то революционное
nethak 21.07.2010 13:44 # −3
У меня уже готова защита, модули новости, страницы, конфигурации сайта и системы, конфигурации капчи... Есть класс работы с БД, и есть шаблонизатор, да пусть простой, но есть, шаблоны устанавливаются и прочее...
Тут дело в другом, зачем покупать трусы? У папы берите у брата, ведь уже есть готовое? Вы купите так как оно СВОЁ, а своё ближе к телу... Я пишу давненько, ЦМС пишу третий месяц, думаю о безопасности, и думаю о юзабилити, работаю с дизайнерами... Тут самое главное это коласальный опыт, у меня десятки проектов стоят на джумле, на вордпресе, на антисладе.... НО когда своё знаете оно своё как не крути...
К примеру когда я не знал что такое CRM, но написал, пришлось работа, написал взаимодействие с ней, а именно это поиск по критериям множественным... И опятьже нах я брался? НО взялся, написал и опыт получил, теперь знаю как...
Тут Вы понимаете о чём я)
cheef 21.07.2010 13:53 # −1
А вообще лучше поглядите на демки Symfony, Ez Components, Doctrine
nethak 21.07.2010 13:56 # −3
Lure Of Chaos 21.07.2010 14:01 # −3
cheef 21.07.2010 14:04 # +5
nethak 21.07.2010 14:15 # −1
Анонимус 21.07.2010 14:18 # +2
В приведенном тобой куске 30% копипасты
nethak 21.07.2010 14:30 # −1
cheef 21.07.2010 14:39 # 0
nethak 21.07.2010 14:50 # −1
This is obvious 21.07.2010 17:23 # 0
nethak 21.07.2010 19:19 # −1
Saehrimnir 26.10.2020 16:01 # 0
Lure Of Chaos 21.07.2010 14:18 # +2
Если у вас есть ценная мысль,
Пейте чай.
Если после чаепития мысль осталась,
Вероятно, она имеет какую-либо ценность.
Однако,
Если вы выпили чая, а мысль осталась,
Возможно, вы просто не научились пить чай.
nethak 21.07.2010 14:31 # −1
Lure Of Chaos 21.07.2010 14:32 # −1
nethak 21.07.2010 14:40 # −1
Lure Of Chaos 21.07.2010 15:10 # −1
а существующее, возможно, тоже гениальное, надо изучать - неважно каким способом добыто
и думать, думать, что же у "всех" лучше, а что хуже
3.14159265 21.07.2010 15:24 # −1
кстати гениальность зачастую гранчит с безумием.
вспомните Энштейна, ну кто бы мог подумать что масса и длина быстро двужущегося тела возрастают, а время замедляется
это ж абсурд и идиотизм с точки зрения житейской логики и ньютоновской механики
Lure Of Chaos 21.07.2010 16:07 # 0
просыпаюсь в 3 ночи, жалею, что негде записать. Засыпаю вновь, приходит утро, и понимаю, что хорошо, что не записал ))))
bugmenot 21.07.2010 21:43 # 0
Lure Of Chaos 21.07.2010 21:51 # +1
bugmenot 22.07.2010 00:17 # 0
Анонимус 21.07.2010 14:19 # −1
Lure Of Chaos 21.07.2010 14:22 # 0
nethak 21.07.2010 14:23 # −1
nethak 21.07.2010 14:24 # −1
Анонимус 21.07.2010 14:24 # 0
Lure Of Chaos 21.07.2010 14:26 # −1
Lure Of Chaos 21.07.2010 14:27 # −2
nethak 21.07.2010 14:36 # −1
nethak 21.07.2010 14:31 # −1
Анонимус 21.07.2010 14:33 # 0
Вообще джумла -- не лучший cms (как и бОльшая часть старых опенсорсных php цмсов).
nethak 21.07.2010 14:41 # −1
Анонимус 21.07.2010 14:47 # +1
Lure Of Chaos 21.07.2010 15:11 # −1
Lure Of Chaos 21.07.2010 14:41 # −1
nethak 21.07.2010 14:44 # −1
nethak 21.07.2010 14:44 # −1
Анонимус 21.07.2010 14:46 # −1
Lure Of Chaos 21.07.2010 15:12 # +1
nethak 21.07.2010 15:13 # −1
Lure Of Chaos 21.07.2010 15:15 # 0
nethak 21.07.2010 15:19 # −1
Lure Of Chaos 21.07.2010 15:20 # −1
nethak 21.07.2010 19:02 # −1
guest 01.11.2011 01:50 # +1
Анонимус 21.07.2010 15:24 # +3
Если после этого Вы еще не прокляли CMS -- это хороший CMS
Lure Of Chaos 21.07.2010 15:26 # −1
диз легко меняется, делаем тему какую хотим.
написал первый модуль к нему - матерился. после 3его перестал. Но стал подумывать о форке
Анонимус 21.07.2010 15:52 # +1
Lure Of Chaos 21.07.2010 15:54 # −1
Анонимус 21.07.2010 15:58 # 0
Lure Of Chaos 21.07.2010 16:01 # 0
ul li {list-style-type: decimal;}
Анонимус 21.07.2010 16:06 # 0
Усложняем задачу. Хочу сделать из них облако. Как облаго тагов. Мне надо сделать им float left, а вконце вставить распортку (clear:both): мерзко, но по другому это никак не решить.
Ваши действия?
Lure Of Chaos 21.07.2010 16:09 # 0
Анонимус 21.07.2010 16:10 # 0
а что мы делаем с sql запросом? копипастим туда?
Lure Of Chaos 21.07.2010 16:13 # 0
Анонимус 21.07.2010 16:15 # 0
У нас есть код, который выводит что-то из базы в UL / UL.
Я попросил добавить вконце этого UL див с clear:both.
Вы предлагаете мне написать новый модуль?
Lure Of Chaos 21.07.2010 16:19 # 0
Анонимус 21.07.2010 16:20 # 0
Вы сказали что можете полностью поменять дизайн, не трогая PHP код. Как видите -- тут это не реально.
Lure Of Chaos 21.07.2010 16:20 # 0
Анонимус 21.07.2010 16:21 # 0
Lure Of Chaos 21.07.2010 16:25 # 0
Анонимус 21.07.2010 16:28 # 0
верстун по этому массиву на шаблонизаторе (или на php) итерируется и выводит данные
Lure Of Chaos 21.07.2010 16:25 # 0
Анонимус 21.07.2010 16:31 # 0
Потому что потом тяжело будет html поменять.
Я уж не говорю, что это тестировать невозможно.
Lure Of Chaos 21.07.2010 16:35 # 0
Анонимус 21.07.2010 16:36 # 0
Как в ASP.NET хотя бы
Lure Of Chaos 21.07.2010 16:39 # 0
Анонимус 21.07.2010 16:45 # 0
Lure Of Chaos 21.07.2010 16:48 # 0
в модулях аутпут полностью контролируется модулем, тут ты почти один на один с системой, если не считать, что до твоего аутпута еще что то выведут и после него тоже.
Lure Of Chaos 21.07.2010 16:21 # 0
Анонимус 21.07.2010 16:22 # 0
:) вот именно
Lure Of Chaos 21.07.2010 16:23 # −1
Анонимус 21.07.2010 16:27 # +1
А потом верстальщик должен с этим массивом делать что хочет.
Хоть улом, хоть таблицей хоть черте чем.
Конкретно этот плагин нужно будет переписать, что бы вместо ула вывести таблицу.
Этот плагин -- часть CMSа. Подозреваю что там 80% такого.
Тоесть полная смена дизайна сайта приведет к переписке половины PHP кода.
А если мы захотим сделать два скина (в одном таблица вдругом ул) -- прийдется пилить
Lure Of Chaos 21.07.2010 16:32 # −1
я так сейчас навскидку не представляю, но, думаю, переделать не так уж много надо будет. хотя все равно, я не адвокат конкретной цмс, там тож говна хватает
Анонимус 21.07.2010 16:34 # 0
а что бы сделать два скина -- надо сделать два одинаковых плагина с разным echo?
уфф)))
да я понимаю, что не Вы эту CMS писали, просто Вы ее привели в пример и я сразу же нашел в ней говнокод. Тыкнул неглядя
Lure Of Chaos 21.07.2010 16:37 # −1
да там еще куча ньюансов. Например, хотим вставить на одну страницу два инстанса одного модуля. Допустим это модуль с кнопкой, при нажатии она изменяет цвет. Так вот, тыкаем в одну кнопку, изменяется цвет в двух.
Приходится городить костыли с сессиями и проч.
Анонимус 21.07.2010 16:40 # +1
Lure Of Chaos 21.07.2010 16:45 # −1
еще там есть экшены, которые в отдельных файлах, но как бы тело метода
причем этот метод должен многим функциям передавать параметры $id, $returnid (текущая страница, контейнер), которые сам получает параметр.
ага, я как то при знакомстве разработки затирал значение $id и передавал, потом долго удивлялся, почему не работает
Lure Of Chaos 21.07.2010 21:41 # 0
Анонимус 21.07.2010 22:06 # 0
Вообще я представляю идеальный CMS как дерево неких объектов. Каждый модуль может приписать какое-то действие к каждому объекту. Каждый объект так же имеет свой шаблон.
Каждый модуль пишет в дерево результата данные в некотором контракте, а автор шаблона эти контракты знает.
Допустим пользователь заходит по адресу
Система запускает все модули, подписанные (через файл конфигурации) на объект bar в папке foo (подписываться можно по кусочку пути или по типу объекта (каждый объект имеет свой тип) или еще по чему-то -- как в струтсе например): каждый модуль использует этот объкт как ключ.
Например модуль подсчета посетителей записывает, куда зашел пользователь.
А модуль вывода новостей находит подходящую новость, и пишет ее в дерево результата.
Допустим в xml:
Потом запускается шаблон (он может быть привязан через такой же точно файл, или по типу или еще как-то) и преобразует дерево-результат в выходной HTML (или rss или rtf или doc).
Шаблон может быть xslt. А может быть хоть смарти, но тогда дерево-результат это не xml , а массив хешей например.
Ну кроме этого CMSу нужен нормальный фреймворк, что бы не писать свои функции работы с базой, с деревом этим, с логами итд)
Lure Of Chaos 21.07.2010 22:19 # 0
ну почти так уже и есть в моем фреймворке, только у меня не модуль, а компонент (тройка Обработчик,необязательный Обьект Данных и один или несколько Видов) - ему из запроса по урлу (в конфиге настроено, как разбирается этот урл) приходят параметры, и вызывается какое-то его событие, где он обновляет свои данные в базе(пока что только СУБД, но можно настроить драйвер и для хмл) и затем говорит что делать дальше - редирект по урлу(на другое событие) или указать Вид, который определит, как будет рендериться его вывод в иерархической структуре компонентов.
но это фреймворк, а нужны термины цмс: там, страницы, стили, темы и т.д. грубо говоря, как должна быть построена "админка" для управления содержанием без необходимости программирования, в стиле point-and-click
Lure Of Chaos 21.07.2010 22:22 # 0
nethak 21.07.2010 19:06 # −1
nethak 21.07.2010 14:59 # −1
1. Функционал
2. Юзабилите
3. Шаблонизатор
4. Установка модулей и шаблонов без проблем. В 1 дейтвии.
5. Полная настройка и управление сайтом и админокй.
6. Безопасность админ панели.
7. Легко верстающие шаблоны....
Не это ли? Это у меня всё есть и сполна намного больше. Но вот ваше мнение, я там далеко не всё перечислил, я просто порой не могу понять, вот тут многие ахуенные программеры. Которые пишут всё но пользуются чужими системами. Почему??? И не понимая что нужно юзеру, за то понимая как должно всё выглядеть. Так? И это так, но что всё же по вашему КМС такое?
bugmenot 21.07.2010 17:51 # +3
> )))
> хочу учится и буду учится
> коласальный
> ???
А ведь в старые добрые времена специально обученные вожатые не допускали того, чтобы каникулярная школота выбиралась за пределы территории лагеря и беспокоила окружающих, эх
nethak 21.07.2010 19:11 # −2
bugmenot 21.07.2010 20:47 # +4
nethak 21.07.2010 20:50 # −2
bugmenot 21.07.2010 21:22 # +2
nethak 21.07.2010 22:23 # −2
Lure Of Chaos 21.07.2010 22:44 # 0
nethak 21.07.2010 22:46 # −2
Lure Of Chaos 21.07.2010 22:48 # 0
мля, фраза из детсада, уж простите. имейте мужество сознаться, что повелись на примитивные выкрики
nethak 21.07.2010 22:58 # −3
Lure Of Chaos 21.07.2010 23:01 # −1
nethak 21.07.2010 23:06 # −2
Lure Of Chaos 21.07.2010 23:10 # 0
не вижу смысла тратить силы впустую на разрушение этих иллюзий, лучше эти силы потратить на великие дела = )
nethak 21.07.2010 23:22 # −2
Lure Of Chaos 21.07.2010 23:25 # −1
ну да ладно, сегодня вы чему-то научились. и не в только в программировании, но и в жизни = )
nethak 21.07.2010 23:23 # −2
Что означает строчка в футере сайта этого? А сайт MZZ не пашет. Типа КМС? Поржал бы я с того, что если бы в системе той, попался гавно код. Гавно сайт про гавно код управляется гавно системой. Често пойду ка я помоюсь))))
nethak 21.07.2010 23:25 # −1
Lure Of Chaos 21.07.2010 23:27 # 0
а вообще, как говорится, в любом святом три килограмма говна
nethak 21.07.2010 23:29 # −2
Умник это ИИСУС_ПХП
ИУДА мы те кто делает чтото не так, и при том что всё раблтает, и косяки не значительные.
Спать надо идти, с утра на работу, У нас пол третьего)))
Lure Of Chaos 21.07.2010 23:35 # 0
спокойной ночи
nethak 21.07.2010 23:38 # −1
{[448] && [189] && [408]} - Думаю бот не поймёт)))
nethak 21.07.2010 23:08 # −1
bugmenot 21.07.2010 23:26 # +3
Lure Of Chaos 21.07.2010 23:28 # 0
bugmenot 21.07.2010 23:35 # +2
Это говнокод, а не форум для нубов
Lure Of Chaos 21.07.2010 23:37 # 0
мы так не любим кодообезьянок, так сократим же их популяцию! = )
bugmenot 22.07.2010 00:25 # +2
Вы уже построили биореактор, кстати?
Возможно, вы таки разницу между codemonkey (быдлокодер) и говнокодером не понимаете. Первые неизлечимы. Поциент - первый.
В любом случае менторство лулзов не приносит и в интернетах полно более благодарных аудиторий для него.
Хотя, взглянув на православное окончание беседы, уже имею другие мысли...
Анонимус 22.07.2010 00:34 # 0
на говнокоде есть куда боле заиндевелые товарищи, которым кроме кремации уже ничто не поможет.
С другой стороны нубов от PHP следует направлять на пхпклуб: там их ждет Фанат и его легендарное http://phpfaq.ru/na_tanke
bugmenot 22.07.2010 01:29 # +2
Оптимизма не разделяю, поциент запросивший code review на ГК, но впавший в амок при виде реактивного говномёта - уже перешел тонкую грань между newb и noob (был зачетный comic strip про это, помнит кто-нибудь?), ∴ в будущем будет расти вширь за счет копипасты ЖПЛного кода; и покрываться волосами, естественно.
(одно сравнение с виошечкой - диагноз)
cheef 22.07.2010 11:28 # +1
Анонимус 21.07.2010 23:22 # +6
--Вот из клок?
--Сри о клок
--Сач мач!!
--Хум хау
--Мгимо финишд?
--Киев инъяз
--Дринк?
--аск!
Lure Of Chaos 21.07.2010 23:38 # 0
Анонимус 22.07.2010 00:35 # 0
А вообще забавно было бы устроить говнокодовку))))))))
Lure Of Chaos 22.07.2010 00:38 # 0
ага, говносимпозиум, где каждый представит свои новые говнодостижения в области говнокода )))))
Анонимус 22.07.2010 00:41 # 0
Анонимус 21.07.2010 23:21 # 0
--КАК ТЫ ДАГАДАЛСЯ???777
Bjarne_Stroustrup 21.07.2010 19:13 # 0
nethak 21.07.2010 20:51 # −1
Dreyk 21.07.2010 15:54 # −1
3.14159265 21.07.2010 16:09 # 0
Dreyk 21.07.2010 16:10 # 0
3.14159265 21.07.2010 16:40 # 0
правда на реформале и без форума много чего гораздо более простого досихпор не сделано,
да и придуманы коментарии для извлечения еще больших лулзов, а не для холиваров
лучше отдельный раздел
bugmenot 21.07.2010 17:38 # 0
nethak 21.07.2010 19:20 # −1
nethak 21.07.2010 19:20 # −1
Lure Of Chaos 21.07.2010 22:50 # −1
nethak 21.07.2010 22:59 # −2
bugmenot 21.07.2010 16:49 # +7
хуле
Анонимус 21.07.2010 16:59 # +5
bugmenot 21.07.2010 17:12 # 0
3.14159265 21.07.2010 17:38 # 0
но иногда на говнокоде такое бывает, что нарошно не придумаешь
inkanus-gray 21.07.2010 18:45 # −1
«блевал»
Lure Of Chaos 22.07.2010 12:38 # 0
nethak 21.07.2010 22:44 # −2
Говногость 21.07.2010 18:29 # +5
Цель поменьше себе выбрал? Вместо убийства - взлом, а вместо веба - локальная сеть? :D
bugmenot 21.07.2010 21:04 # +2
Надо бы вывести аппроксимацию их появления с такими вот эпик-тредами
Govnocoder#0xFF 21.04.2011 10:38 # 0
bugmenot 21.04.2011 11:00 # 0
Govnocoder#0xFF 21.04.2011 11:07 # 0
bugmenot 21.04.2011 11:32 # +1
nethak 21.07.2010 19:14 # −1
В какойто по юзабилити.
В какойто по коду.
В какойто по функционалу. У всех так. А так я и не услышал что по вашему CMS ктото орал что там надо фреймворк то сё. А ктонить знает что это:
СИСТЕМА УПРАВЛЕНИЯ САЙТОМ! ЁМАЁ! А значит 1 страница это сайт, второая страница добовляет в ту страницу текст, и это уже CMS, гавно правдо) Но всёже....
nethak 21.07.2010 19:21 # −2
Запостил: nethak, 21 Июля 2010
Комментарии (205)
Я херею, а всеволиж спросил совета)))
cheef 22.07.2010 11:40 # +6
nethak 22.07.2010 17:14 # −5
nethak 21.07.2010 19:23 # −1
da4ever 22.07.2010 00:05 # +5
Разделяю мнение о фроке вебкила (благо нейминг конвеншен схож, и незнания обширны). Хотя может быть это действительно пацан с 33 микрорайона сургута с десятками сайтов на джамуле под управлением icq 448 & 189 & 408.
лур оф хаос - оказасля нубофилом и cms-фагом.
итого ГК тот еще торт )
3.14159265 22.07.2010 13:27 # +1
когда Уебкилл объявил о самоубийстве - я сразу вспомнил, что он пару недель назад обещал зарегатся под другим ником и тогда его перестанут минусовать.
Я ему еще тогда сказал, что мы тебя и под другим ником задетектим - твои глупости за километр слышно.
Будем ждать новых откровений в стиле математика - лженаука, Плутон не планета, а Вайн - не эмулятор )))
Анонимус 22.07.2010 14:05 # 0
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
3.14159265 22.07.2010 14:50 # 0
а Плутон в 2006 ученые исключили из списка планет.
но всем пох...
Анонимус 22.07.2010 14:53 # 0
вайн реальне не эмулятор, а реверс-инженирная реализация win32api под никсы, нет?
в винде тоже есть подсистема posix (мааахонькая часть) -- это что, значит что в винде есть эмулятор юниха?
3.14159265 22.07.2010 17:08 # 0
"Wine is not just an emulator" would be a more correct name.
а плутон реальне не планета, так что забей, это была шутка
telnet 22.07.2010 14:11 # +3
Сначала Webkill, теперь nethak - закономерность очевидна. Кто следующий? WANddos?
Lure Of Chaos 22.07.2010 14:43 # 0
da4ever 22.07.2010 21:21 # 0
bugmenot 22.07.2010 16:13 # 0
Несмотря на то, что всем похуй на кусок грязного льда, находящийся в неимоверных ебенях - плутосрач был поистине великолепен. Более того, система Плутон-Харон никогда не была планетой (ни массой, ни орбитой не вышла), а МАС всего лишь принял новую классификацию объектов; однако у хомячков, старательно вызубривших 9 названий, сказочно разболелись попки.
aerowave 22.07.2010 09:02 # 0
Такого я еще не видел.
nethak 22.07.2010 09:42 # −6
Анонимус 22.07.2010 14:06 # +4
nethak 22.07.2010 17:15 # −4
Анонимус 22.07.2010 18:20 # +2
2) это литералом вшитое имя поля, в котором легко опечататься
3) это eval, потому это плохо.
nethak 23.07.2010 06:13 # 0
nethak 22.07.2010 09:45 # −2
nethak 22.07.2010 11:16 # −2
nethak 22.07.2010 11:18 # −3
aerowave 22.07.2010 11:23 # +5
http://govnokod.ru/3752#comment39715
guest6 12.09.2023 21:59 # 0
nethak 22.07.2010 11:19 # 0
nethak 22.07.2010 09:48 # −5
aerowave 22.07.2010 11:21 # 0
nethak 22.07.2010 17:16 # −2
Vindicar 22.07.2010 11:46 # +2
Т.е. хакер может менять юзер агент хоть при каждом запросе, а вот сотни невиновных пользователей за натом обломаются (делаю такой вывод на основании того, что при очистке кук бан не снимается).
Lure Of Chaos 22.07.2010 12:43 # +1
кстати, делаю вывод, что раз символы уже закодированы, то еще раз они не кодируются, а значит, можно получить доступ к любому файлу ))) вот и весь взлом
nethak 22.07.2010 17:17 # −2
Lure Of Chaos 22.07.2010 22:42 # −1
а что бы за хак мну взяли или могли бы взять за жопу, фигурно(!) выражаясь - не желаю
nethak 23.07.2010 06:14 # −1
nethak 23.07.2010 06:26 # −1
none 22.07.2010 20:23 # 0
if(IN_ADMIN){
define("IN_ADMIN", TRUE);
......................
nethak 23.07.2010 06:16 # −1
if(!defined("IN_ADMIN")) die("Запрещённое действие!");
Понятно? Тебе о чёмто говорит TRUE FALSE ???
none 23.07.2010 09:41 # 0
if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это вообще детский сад, если быть честным. Напишите свой класс авторизации, сделайте его Singelton Pattern-ом и вызывайте его экземпляр везде, где это нужно. А городить глобальные константы.... даже и не знаю, как назвать... отдаёт началом 90х в стилях программирования
nethak 23.07.2010 10:22 # −1
Lure Of Chaos 23.07.2010 11:04 # 0
Lure Of Chaos 23.07.2010 10:43 # 0
а по моему один из способов. у любого способа есть свои плюсы и свои минусы. Плюс этого подхода в том, что он прост и эффективен, а с авторизацией все равно придется писать логику подобно этой, типа <?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 {
....
none 23.07.2010 11:19 # 0
И не надо $auth=new Auth(); Я же не зря упомянул сингл паттерн. Указанной конструкцией Вы каждый раз будите создавать новый экземпляр класса, а это для авторизации не подходит. Хотя, всё зависит от реализации класса. У меня же это выглядит так: if(Current_User::user()->admin); И всё (-: Правда это CI+Doctrine.
Lure Of Chaos 23.07.2010 11:25 # 0
а ну да, в данном случае нужно использовать синглтон.
но в пхп он зачастую не нужен, потому что жизненный цикл скрипта очень короткий, как правило, даже без синглтона создастся не более одного экземпляра обьекта, а обеспечить долгую жизнь синглтону кроме как через какой нибудь memcached или подобное не удастся - для разных запросов будут отдельные синглтоны.
так? или я что-то пропустил в пхп-мире?
nethak 23.07.2010 11:41 # −1
Lure Of Chaos 23.07.2010 11:53 # 0
или у вас сustom session_handler?
none 23.07.2010 12:21 # 0
(-:
nethak 23.07.2010 11:38 # −1
nethak 23.07.2010 11:39 # −1
Lure Of Chaos 23.07.2010 11:57 # 0
а хорошо известные проекты... тоже пробуют, но редко успешно.
еще хорошо ломают сайты на известных движках, причем если где-то указано, на каком движке сделано. тогда достаточно найти уязвимость в движке - и автоматом можно ломать все сайты на этом движке.
Lure Of Chaos 23.07.2010 10:50 # 0
и у него тоже есть недостатки:
апач ищет все конфиги .htaccess во всех папках, обрабатывает, и строит запутанную логику "что где можно?", которая и работает медленно, и создает нагрузку на сервак, и трудно отлаживать такую логику
если пришел урл, который недопустим для пути к папке (к примеру, /l0x/vote?1, или /file/1%2B2.html) он жоско обламывается еще ДО исполнения скрипта
none 23.07.2010 11:25 # 0
Lure Of Chaos 23.07.2010 11:45 # 0
кстати, с рутингами и ЧПУ намного понятнее разработка, чем без них
telnet 23.07.2010 16:26 # 0
> это накладывает требование - сервак именно апач
А в том же nginx реврайты уже отменили? Пусть они и не в .htaccess задаются, но тем не менее...
nethak 23.07.2010 11:45 # −1
Lure Of Chaos 23.07.2010 10:53 # 0
bugmenot 23.07.2010 11:21 # 0
Ахахаха, луре оф хаос тоже начал выделять каменты очередями.
Видите, дети, чем можно заразиться, занимаясь нуболожеством?
Lure Of Chaos 23.07.2010 11:43 # 0
а вы против семантики?
дети, не слушайте дядю тролля, он вас плохому научит, будете злобными и пипка не отрастет
bugmenot 23.07.2010 12:12 # 0
О семантической сортировки какашек я не подумал, простите...
Lure Of Chaos 23.07.2010 12:17 # 0
утомляете меня своими бессмысленными выкриками, начинаю игнорить....
bugmenot 23.07.2010 12:50 # 0
none 23.07.2010 11:22 # 0
Lure Of Chaos 23.07.2010 12:01 # 0
в любом случае, отключать мозги даж на короткое время опасно, не учиться и не адаптироваться - тоже опасно )
cheef 23.07.2010 15:31 # 0
Lure Of Chaos 23.07.2010 11:02 # 0
в авторизации ставим define("IN_ADMIN", TRUE); а отсюда убираем
и условие переписать if(defined("IN_ADMIN")) {
потому что вот мсье none указывает, что в оригинале, если IN_ADMIN была определена, то переопределение выдаст ворнинг, а если НЕ была определена, то до определения мы вообще не доберемся
none 23.07.2010 11:36 # 0
Спасибо за понимание (-:
Lure Of Chaos 23.07.2010 11:47 # 0
nethak 23.07.2010 11:46 # −1
Lure Of Chaos 23.07.2010 11:48 # 0
nethak 23.07.2010 13:12 # −1
Когда ты пишешь функцию
function Её имя($Какаянить переменая) {
die('<H1>'.$ЭТА ЖЕ ПЕРЕМЕННАЯ! ТЫ понимаешь почему она .'</H1>');
}
Эта переменная определена ниже? А выше её нет. Неужели не понятно о чём речь?
А то что где же у нас FALSE константы IN_ADMIN так она в другом месте а не тут! Она уже в логике котороая проверяет админов!
Lure Of Chaos 23.07.2010 13:18 # 0
$ЭТАЖЕПЕРЕМЕННАЯ - не определена
а если так:
function($var) {
echo($var);
}
она все равно определяется в function($var) еще ДО echo($var);
а у вас наоборот:
if($var==true) {
$var=true;
}
nethak 23.07.2010 23:05 # −1
Lure Of Chaos 24.07.2010 00:37 # +1
nethak 24.07.2010 15:56 # −1
nethak 23.07.2010 06:23 # −1
none 23.07.2010 09:51 # 0
Кстати, это не понятно не только мне, если Вы заметили. Подобные записи, в бытность моего молодого студенчества, преподаватели бы даже не допустили к защите программы. Вам нравится писать _такое_ - пишите, Ваше право, но не называйте меня и всех вокруг глупыми и тупыми, которые не в состоянии оценить всю красоту и гениальность написанного. Это уже психическое расстройство.
nethak 23.07.2010 10:23 # −1
Lure Of Chaos 23.07.2010 10:59 # 0
none 23.07.2010 11:31 # 0
И я всё равно не понимаю именно этих двух строк )))-:
if(!defined("IN_ADMIN")) die("Запрещённое действие!"); - это понимаю, хоть и не особо согласен
Lure Of Chaos 23.07.2010 11:38 # 0
да понимать тут нечего - это кз в мозгах прогера было, вот и все. сначала, он начал писать ветку, если константа неопределена, но продолжил эту ветку писать, как буд-то она определена. Посмотрел, сам ничего не понял, но, цитирую, "ведь работает как-то!" - то есть стыдно и страшно свое же говно убирать
ну я тоже не любитель УСЛОВНЫХ(то ли она определена, то ли нет) констант, тогда как константа по сущности своей как бог - альфа и омега, едина
nethak 23.07.2010 11:52 # −1
1. Она не даёт прямого вызова файла!
2. Проверяет SID пользователя с БД записью того пользователя.
Ёмаё стока вопросов потомучьто вы не видели системы
none 23.07.2010 12:11 # 0
Иными словами эта строка не вызывает каких-то непоняток, нравится так делать - делайте. Вопрос был только об Истинной Истине.
Последний вопрос: что изменится, если убрать define("IN_ADMIN", TRUE); в этом кусочке кода:
if(IN_ADMIN){
define("IN_ADMIN", TRUE);
.....
}
nethak 23.07.2010 12:22 # −1
Это видите? IN_ADMIN От куда оно там не подумали??? ВОТ ОТ СЮДА define("IN_ADMIN", TRUE); Определение константы вот и всё. Ребят если чтото не понимаете, CTR=F пишите мой ник, и читаете всё что я пишу...
Изменится что? Прямой доступ ко всем файлам системы.
none 23.07.2010 12:35 # 0
Давайте сначала я предложу свой вариант, а потом Вы свой. Так вот: ЕСЛИ константа ИН_АДМИН существует и равна ИСТИНА, то определяем константу ИН_АДМИН как ИСТИНА.
P.S. Рискну предположить, что где-то ещё есть define("IN_ADMIN", TRUE); , иначе бы этот кусок кода if() никогда бы не выполнился.
Lure Of Chaos 23.07.2010 12:23 # 0
Еще раз заикнетесь про то, что где то стоит проверка на прямой доступ - заигнорю.
none 23.07.2010 12:24 # 0
Lure Of Chaos 23.07.2010 12:28 # 0
nethak 23.07.2010 12:32 # −1
Последний вопрос: что изменится, если убрать define("IN_ADMIN", TRUE); в этом кусочке кода:
Я пишу
ПИЗДЕЦ! ДА как что? if(!defined("IN_ADMIN")) die("Запрещённое действие!");
Это видите? IN_ADMIN От куда оно там не подумали??? ВОТ ОТ СЮДА define("IN_ADMIN", TRUE); Определение константы вот и всё. Ребят если чтото не понимаете, CTR=F пишите мой ник, и читаете всё что я пишу...
Изменится что? Прямой доступ ко всем файлам системы.
Ответить
Я ответил что будет.
Lure Of Chaos 23.07.2010 12:35 # 0
это НЕ значит, что вообще НИГДЕ не нужен define
все, пока не усвоите, не продолжаю дискуссию.
none 23.07.2010 12:37 # 0
Lure Of Chaos 23.07.2010 12:40 # 0
смешно, ей богу. 2 строчки, а дискуссия на 100 комментов.
nethak 23.07.2010 13:15 # −1
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 ну что не ясного? Мне вам что рассказть полностью что к чему и как работает система???
none 23.07.2010 16:41 # 0
nethak 23.07.2010 13:15 # −1
nethak 23.07.2010 13:16 # −1
require("../configurations/system/authorisation.data.php");
И ещё множество нюансов!
nethak 23.07.2010 13:18 # −1
none 23.07.2010 16:37 # 0
Lure Of Chaos 23.07.2010 13:24 # 0
none 23.07.2010 16:38 # 0
nethak 23.07.2010 22:01 # −1
none 24.07.2010 00:39 # 0
Простой тест. Что выведут эти два куска кода:
1) if(const){
define("const", true);
echo "bla-bla";
}
2) if(const){
echo "bla-bla";
}
Если Вы этого не видите и не понимаете, то может и не стоит заниматься программированием?? Любой человек разумный бы тупо удалил дефайн в ифе за бессмысленностью и бестолковостью. Жаль, что Вы не понимаете даже того,что пишете. И запомните: константы потому и константы, что они определяются один раз и в одном месте. Обычно в файле конфигурации или инициализации.
Lure Of Chaos 24.07.2010 15:46 # −1
nethak 24.07.2010 16:00 # −1
nethak 24.07.2010 16:00 # −1
1) if(const){ КОНСТАНТА const определена тут поздно тогда когда она либо раньше опреденена, либо будет ошибка.
2) if(const){ Тут всё верно если константа опредеоена до ифа.ю.
Ребят просто я ушёл на отдых, так заипался что туплю на ровном месте.
У меня так и есть, просто какогото хера я её 2 раза определил... И убрал уже, и всё хорошо) Спасибо)
none 24.07.2010 22:55 # 0
Теперь я доволен окончанием дискуссии (-:
Приятного отдыха! (-:
P.S. сам вот только с моря пришёл (-:
nethak 25.07.2010 15:59 # −1
nethak 23.07.2010 11:58 # −1
none 23.07.2010 12:17 # 0
nethak 23.07.2010 12:27 # −1
koodeer 23.07.2010 18:57 # +1
упаси б-г увидеть такое :)
nethak 23.07.2010 22:02 # −3
guest6 12.09.2023 21:31 # 0
ебать вы олд
CEHT9I6PbCKuu_nemyx 12.09.2023 21:46 # 0
guest6 12.09.2023 21:48 # 0
--Тут нет Винни, уважаемый, тут живет медведь Вениамин
--Ааа... а передайте ему тогда что заходил Кабан Полтинник
CEHT9I6PbCKuu_nemyx 12.09.2023 21:53 # 0
guest6 12.09.2023 22:02 # 0
https://pbs.twimg.com/media/F5w1tlUWAAAq7KX?format=jpg&name=900x900
c
nethak 23.07.2010 12:00 # −4
CEHT9I6PbCKuu_nemyx 12.09.2023 21:57 # 0
Оттого и пишу невпопад.
Я такой же, как вы, уёбок,
Потому не пойти ли вам в зад?
guest6 12.09.2023 22:24 # 0
Dalim 01.08.2010 09:41 # 0
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. Не объявляйте константы как попало (да и переменные не называйте так). Если у вас константы как принято - В ВЕРХНЕМ РЕГИСТРЕ,
Dalim 01.08.2010 09:51 # 0
4. MODUL_HOME_ADMIN - это что? МОДУЛ_ДОМАШНИЙ_АДМИН? не смешивайте транслит и английский язык.
guest 07.04.2011 21:24 # +5
nethak 06.04.2012 03:51 # −1
lucidfoxGovno 06.04.2012 09:15 # −1
nethak 07.04.2012 18:49 # −1
lucidfoxGovno 07.04.2012 19:28 # 0
guest6 12.09.2023 21:28 # 0
ебать ты лох
guest 25.05.2012 01:06 # 0