А скачать CMS можно на том же сайте в меню.
Спустя 6 минут, 4 секунды (24.03.2012 - 15:04) ADiel написал(а):
ucoz + depositfiles и своя CMS. Уже что то не вяжется
Спустя 1 минута, 2 секунды (24.03.2012 - 15:05) ADiel написал(а):
Цитата |
Конечно если посмотреть на неё глазами опытного программиста, то можно сказать,что она не очень то и защищена от хакерских атак и т.д |
true cms =)))
Не рано думать о платной cms? Почему я должен тратить деньги, если есть куча бесплатного, более защищенного с более богатым функционалом?
Спустя 11 секунд (24.03.2012 - 15:05) Shkiper написал(а):
Чтоб с хостом не заморачиваться сделал на UCOZ
Спустя 2 минуты, 36 секунд (24.03.2012 - 15:08) johniek_comp написал(а):
Deert
так ты выложи её куда-нибудь, давно не ломал ничего
так ты выложи её куда-нибудь, давно не ломал ничего

Спустя 46 секунд (24.03.2012 - 15:09) Shkiper написал(а):
На локале поламайй!!!
Спустя 1 минута, 50 секунд (24.03.2012 - 15:11) ADiel написал(а):
Посмотрел код. Кое-где аккуратно.
Нет комментариев, разметка уг...
В этой cms хорошо только то, что она работает (у себя не пробовал), но написание своих велосипедов - это хороший способ получить опыт в разработке сайтов. Продолжай. Пусть для себя, но это не пустая трата времени.
Разделяй логику и темплейты. Почитай про MVC. Если нужно, и ООП. На ООП куда удобнее разрабатывать подобные вещи
Нет комментариев, разметка уг...
В этой cms хорошо только то, что она работает (у себя не пробовал), но написание своих велосипедов - это хороший способ получить опыт в разработке сайтов. Продолжай. Пусть для себя, но это не пустая трата времени.
Разделяй логику и темплейты. Почитай про MVC. Если нужно, и ООП. На ООП куда удобнее разрабатывать подобные вещи
Спустя 1 минута, 18 секунд (24.03.2012 - 15:12) Shkiper написал(а):
Эта самая грубая Demo версия в следующей по исправляю ошибки и т.д.
Спустя 4 минуты, 24 секунды (24.03.2012 - 15:16) T1grOK написал(а):
То что не используется одна точка входа еще ладно.
Похоже была попытка вынести шаблоны отдельно, но по каким-то причинам(наверное встречный ветер помешал) верстка все равно "просочилась" в скрипты обработки.
Где логика?
Похоже была попытка вынести шаблоны отдельно, но по каким-то причинам(наверное встречный ветер помешал) верстка все равно "просочилась" в скрипты обработки.
Где логика?
exit();
break;
Спустя 1 минута, 51 секунда (24.03.2012 - 15:18) Shkiper написал(а):
Приведи мне пример ЛОГИКИ!!!
Спустя 36 секунд (24.03.2012 - 15:19) johniek_comp написал(а):
1. Раздели вид и логику отдельно.
2. Забудь про классы.
3. Перестань копи-пастить.
4. Выложи её в свет.
2. Забудь про классы.
3. Перестань копи-пастить.
4. Выложи её в свет.
Спустя 9 минут, 28 секунд (24.03.2012 - 15:28) T1grOK написал(а):
Цитата (Deert @ 24.03.2012 - 12:18) |
Приведи мне пример ЛОГИКИ!!! |
switch($_GET['do'])
{
case "exit":
include './system/modules/registration/exit.php';
exit();
break;
}
Смысл выходить из скрипта, а потом пытаться выйти из логической конструкции. С ходу в глаза бросилось. Разбросанные exit это ужас. Лучше строить так, чтобы не пихать куда попало выходы.
Спустя 51 секунда (24.03.2012 - 15:29) Shkiper написал(а):
Проанализирую твое мнение.

Спустя 3 минуты, 11 секунд (24.03.2012 - 15:32) Shkiper написал(а):
Цитата (T1grOK @ 24.03.2012 - 12:28) | ||
Разбросанные exit это ужас. |
Если не поставить выполнение сценариев то на странице выведиться сначала подключаемый модуль в конструкции stitch case а потом запланированый текст странци. Изучи структуру CMS и поймешь!!!
Спустя 8 минут, 7 секунд (24.03.2012 - 15:40) johniek_comp написал(а):
только так надо
$do = isset($_GET['go']) ? $_GET['go'] : null;
if(is_null($do) or die();
switch($do)
{
case "exit":
include './system/modules/registration/exit.php';
exit();
break;
}
Спустя 1 минута, 29 секунд (24.03.2012 - 15:42) T1grOK написал(а):
johniek_comp - не успел за тобой. А вообще "рвать" скрипты выходами на мой взгляд неправильно. Запутаться можно.
Спустя 18 секунд (24.03.2012 - 15:42) TMake написал(а):
Цитата (Deert @ 24.03.2012 - 16:32) |
Изучи структуру CMS и поймешь!!! |
ты наверное сам не понял
зачем после exit ставить break??? для кого это???
Спустя 1 минута, 58 секунд (24.03.2012 - 15:44) TMake написал(а):
Цитата (johniek_comp @ 24.03.2012 - 16:40) |
$do = isset($_GET['go']) ? $_GET['go'] : null; if(is_null($do) or die(); |
это быдлокод

Спустя 41 секунда (24.03.2012 - 15:45) Президент! написал(а):
Скажи пожалуйста, а зачем мне надо так долго ждать это твое творение через этот сервис? depositfiles. я его терпеть не могу как только его вижу сразу убежать хочу !!
и почему-бы не показать как он в действии работает ? зачем мне его качать ТАК ДОЛГО потом СТАВИТЬ ДОЛГО потом ТЕСТИТЬ долго и ТД,
и почему-бы не показать как он в действии работает ? зачем мне его качать ТАК ДОЛГО потом СТАВИТЬ ДОЛГО потом ТЕСТИТЬ долго и ТД,
Спустя 22 секунды (24.03.2012 - 15:45) johniek_comp написал(а):
stepan
это не for, а switch, так как бы по умолчанию он нужен
это не for, а switch, так как бы по умолчанию он нужен
Спустя 1 минута (24.03.2012 - 15:46) johniek_comp написал(а):
stepan
ты свой статус почитай
ты свой статус почитай



Спустя 56 секунд (24.03.2012 - 15:47) T1grOK написал(а):
Президент! - не ну тут ты немного не прав. Мы же программеры, нас хлебом не корми лишь бы чужой код покритиковать.

Спустя 1 минута, 55 секунд (24.03.2012 - 15:49) TMake написал(а):
Цитата (johniek_comp @ 24.03.2012 - 16:45) |
это не for, а switch, так как бы по умолчанию он нужен |
зачем проверять на isset а затем проверять на null, и еще на количество скобок глянь
Спустя 1 минута, 6 секунд (24.03.2012 - 15:50) TMake написал(а):
Цитата (johniek_comp @ 24.03.2012 - 16:46) |
ты свой статус почитай |
я свой статус хотя бы могу опровдать, в отличии PHP программиста в 401 бал

Спустя 1 минута, 15 секунд (24.03.2012 - 15:51) T1grOK написал(а):
Цитата (stepan @ 24.03.2012 - 12:49) | ||
зачем проверять на isset а затем проверять на null, и еще на количество скобок глянь |
Дополнительный уровень обороны

Спустя 4 минуты, 1 секунда (24.03.2012 - 15:55) Shkiper написал(а):
T1grOK +1;
Президент! я же не заставляю тебя качаать, это только для тех кто испытывает интерес и желание мне помочь исправить ошибки
Президент! я же не заставляю тебя качаать, это только для тех кто испытывает интерес и желание мне помочь исправить ошибки
Спустя 36 секунд (24.03.2012 - 15:56) TMake написал(а):
Автору - в следующий раз выкладывай на бесплатный хост свое творение что бы можно было посмотреть в работе. (Запускать у себя на локале ради интереса - лень мешает)
А так свой велосипед тебе плюс дает
А так свой велосипед тебе плюс дает

Спустя 3 минуты, 37 секунд (24.03.2012 - 16:00) johniek_comp написал(а):
stepan
а для гибкости!
а в твоем статусе я и не сомневался :lol:
а вообще можно даже так
а для гибкости!
$do = isset($_GET['go']) ? $_GET['go'] : null;
if(is_null($do)) header('Location: /404.html');
а в твоем статусе я и не сомневался :lol:
а вообще можно даже так
$do = isset($_GET['go']) ? $_GET['go'] : header('Location: /404.html');
Спустя 8 минут, 11 секунд (24.03.2012 - 16:08) Президент! написал(а):
Цитата (johniek_comp @ 24.03.2012 - 15:40) |
только так надо$do = isset($_GET['go']) ? $_GET['go'] : null; |
ну если ТАК НАДО!! вот и надо обосновать почему ТАК НАДО!!
открыть мануал и показать что там написано , потом написать коменты для полной ясности что и для чего
ТакСС дык для чего служит ЭТО exit();
неси сюда это определение Вот и будет ТИП-ТОП!!
для ТС это хорошо что ты показываешь , самое место и самое время
но показывать надо так чтоб это было удобней КОМУ ТЫ ЭТО КАЖЕШЬ!!
Спустя 20 минут, 48 секунд (24.03.2012 - 16:29) TMake написал(а):
Цитата (johniek_comp @ 24.03.2012 - 17:00) |
а в твоем статусе я и не сомневался |
я тебе уже предлагал соревнования устроить, так что поздно прыгать

Цитата (johniek_comp @ 24.03.2012 - 17:00) |
а вообще можно даже так $do = isset($_GET['go']) ? $_GET['go'] : header('Location: /404.html'); |
и опять слажал, не факт того что до этого уже что то выводилось и чревата появления ошибки

Спустя 25 минут, 15 секунд (24.03.2012 - 16:54) Nikitian написал(а):
Прицепились к мелочам, значит больше не к чему
ТС, молодец, потому что творец. Он сделал что-то и готов принимать критику.
Из всего, что написали против его кода могу лишь сказать, что система шаблонов крайне неудобно реализована. Ковырять весь код в поисках ошмётков разметки для натягивания нового дизайна - это крайне неудобно. Подключите какой-нибудь smarty - уровень входа низкий, распространённость высокая.
Ну и платным он может стать только в случае исполнения заказа на этом движке.

Из всего, что написали против его кода могу лишь сказать, что система шаблонов крайне неудобно реализована. Ковырять весь код в поисках ошмётков разметки для натягивания нового дизайна - это крайне неудобно. Подключите какой-нибудь smarty - уровень входа низкий, распространённость высокая.
Ну и платным он может стать только в случае исполнения заказа на этом движке.
Спустя 24 минуты, 12 секунд (24.03.2012 - 17:18) redreem написал(а):
да-да 

Цитата |
...создатель... ... Божко ... |
главное пиар


Спустя 16 минут, 35 секунд (24.03.2012 - 17:35) Shkiper написал(а):
НУ ведь это только НАЧАЛО >>> Для 14 летнего программиста это норм.
Спустя 5 минут, 30 секунд (24.03.2012 - 17:40) Президент! написал(а):
Nikitian как раз об этом и речь,
чтоб показывал и общими усилиями подправляли, а то так с разу с порога купите потом смотрите а то будет поздно !!
Тут не место для разводилова, не тот уровень вести всякого рода пиаршину ЗА и ПРОТИВ
место чтоб разобраться и поправиться , получить отклик ну и принять к сведению, правда не всегда это корректно выглядит , ну чтож БЫВАЮТ перегибы и на местах, я попытался ТС не хаять а просто чтоб это было понятно, вот посмотрият, сделают, кто пожелает пометки и ТС поправит да и нам польза, пока чужой код правиться в своем найдутся подобные не правильные места!!
Deert тебе удачи в начинании !!
чтоб показывал и общими усилиями подправляли, а то так с разу с порога купите потом смотрите а то будет поздно !!
Тут не место для разводилова, не тот уровень вести всякого рода пиаршину ЗА и ПРОТИВ
место чтоб разобраться и поправиться , получить отклик ну и принять к сведению, правда не всегда это корректно выглядит , ну чтож БЫВАЮТ перегибы и на местах, я попытался ТС не хаять а просто чтоб это было понятно, вот посмотрият, сделают, кто пожелает пометки и ТС поправит да и нам польза, пока чужой код правиться в своем найдутся подобные не правильные места!!
Deert тебе удачи в начинании !!
Спустя 32 минуты, 26 секунд (24.03.2012 - 18:13) Nikitian написал(а):
Цитата (redreem @ 24.03.2012 - 17:18) | ||
да-да ![]()
главное пиар ![]() ![]() |
Не надо помещать в цитату не мои слова )
Покупают не лохи, а покупатели и клиенты. К ним следует относиться уважительно - это этика деловых взаимоотношений.
Ну и пиара я тут не вижу. Бессмысленно пиарить продукт на форуме разработчиков.
Спустя 1 час, 26 минут, 44 секунды (24.03.2012 - 19:39) Игорь_Vasinsky написал(а):
А это что за фокус?
Цитата |
$do = isset($_GET['go']) ? $_GET['go'] : header('Location: /404.html'); |
была жида переменная, проверялась и использовалась в коде, пришёл джонек и всё...
ТС .. ну так не честно... установи на хост...
Спустя 35 секунд (24.03.2012 - 19:40) alex12060 написал(а):
Для 14 лет это очень круто) Я бы не смог такое написать в 14 лет.
Ну а по сути:
Ужас тихий. Столько лишних переменных, прям беда.
А, то есть, если я хочу добавить новую страницу (категорию, не знаю как еще обозвать), я должен залезть в класс и написать самостоятельно? Ну, я то могу, а вот другие?
Тысячу раз говорили про эту функцию, ну а все пишут люди и пишут.
Трололо, я тут вижу SQL Inj.
Вот меня бесит, когда ставят тысячу знаков восклицания. И чтобы исправить это, я опять же должен лезть во внутрь? Опять беда.
А если у меня пароль " gwrW22'\\Sccw! " ? Я в жизни не попаду на твой сайт из-за этой проверки и преобразования.
Без комментариев. Тут полный хаос. И XSS, XSRF, SQL Inj и многое дргое. Опять беда.
Короче, тут полный треш. Все налеплено в кучу, полная фигня, везде ошибки и дырки. Это даже сырой версией назвать тяжело. Увы, автор, но это правда. Тут работы непочатый край.
Дерзай!
Ну а по сути:
Свернутый текст
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$post_nav.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
Ужас тихий. Столько лишних переменных, прям беда.
$login = $tem->login();
$search = $tem->search();
$arhiv = $tem->arhive();
$popular_news = $tem->popilar_news();
$poll = $tem->poll();]
А, то есть, если я хочу добавить новую страницу (категорию, не знаю как еще обозвать), я должен залезть в класс и написать самостоятельно? Ну, я то могу, а вот другие?
mysql_fetch_array()
Тысячу раз говорили про эту функцию, ну а все пишут люди и пишут.
$result = mysql_query("SELECT `id`,`title`,`description`,`date`,`author`,`view`,`rating`,`q_vote` FROM `data` WHERE date='$_GET[date]' AND public='1'",$db);
Трололо, я тут вижу SQL Inj.
Цитата |
Вы не указали индификатор файла который вы хотите сказать или он пуст!!! |
Вот меня бесит, когда ставят тысячу знаков восклицания. И чтобы исправить это, я опять же должен лезть во внутрь? Опять беда.
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
А если у меня пароль " gwrW22'\\Sccw! " ? Я в жизни не попаду на твой сайт из-за этой проверки и преобразования.
//ВНИМАНИЕ!!! ДЕЛАЙТЕ ЭТО НА ВАШЕ УСМОТРЕНИЕ, ТАК КАК ДАННЫЕ ХРАНЯТСЯ В КУКАХ БЕЗ ШИФРОВКИ
if (isset($_POST['autovhod'])){
//Если пользователь хочет входить на сайт автоматически
setcookie("auto", "yes", time()+9999999);
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
setcookie("id", $myrow['id'], time()+9999999);
setcookie("group", $myrow2['name'], time()+9999999);
setcookie("id_group", $myrow2['id'], time()+9999999);
setcookie("color", $myrow2['color'], time()+9999999);
}
Без комментариев. Тут полный хаос. И XSS, XSRF, SQL Inj и многое дргое. Опять беда.
Короче, тут полный треш. Все налеплено в кучу, полная фигня, везде ошибки и дырки. Это даже сырой версией назвать тяжело. Увы, автор, но это правда. Тут работы непочатый край.
Дерзай!
Спустя 1 минута, 22 секунды (24.03.2012 - 19:41) caballero написал(а):
Цитата |
Покупают не лохи, а покупатели и клиенты. К ним следует относиться уважительно - это этика деловых взаимоотношений. |
Никто не станет покупать неизвестно кем и неизвестно как написанную CMS которую даже скачать нельзя по человечески .
Надо написать что то совсем выдающееся чтобы при наличии готовых бесплатных решений с open source и комюнити кто то рискнул не столько деньгами сколько своим проектом написаном на неведомом решении с такими же непредсказуемыми последствиями.
Спустя 26 минут, 11 секунд (24.03.2012 - 20:07) Shkiper написал(а):
Цитата |
Никто не станет покупать неизвестно кем и неизвестно как написанную CMS которую даже скачать нельзя по человечески . |
Я переделал ссылку теперь скачка идет напрямую
Цитата |
Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class=\"pstrnav\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$post_nav.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; |
Код брал на softtime.ru говорят там профессионально пишут скрипты, я от-туда и взял.
Цитата |
$login = $tem->login(); $search = $tem->search(); $arhiv = $tem->arhive(); $popular_news = $tem->popilar_news(); $poll = $tem->poll();] |
Это показывает не новые страницы и т.д., а модуль, например если прописать в шаблоне $search то на всех страницах в том месте где прописали этот код, там будет форма для поиска.
Цитата |
mysql_fetch_array() |
Я знаю что эта функция на сайте не уместна, я начал её писать когда изучал попова, а потом начал писать mysql_fetch_assoc, а те которые с поповым писал не исправил.
Цитата |
$result = mysql_query("SELECT `id`,`title`,`description`,`date`,`author`,`view`,`rating`,`q_vote` FROM `data` WHERE date='$_GET[date]' AND public='1'",$db); |
SQL inj в этой CMS почти нет, они будут позднее
Цитата |
Вы не указали индификатор файла который вы хотите сказать или он пуст!!! |
Исправлю
Цитата |
$login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); |
Уберу функцию stripslashes
Цитата |
if (isset($_POST['autovhod'])){ //Если пользователь хочет входить на сайт автоматически setcookie("auto", "yes", time()+9999999); setcookie("login", $_POST["login"], time()+9999999); setcookie("password", $_POST["password"], time()+9999999); setcookie("id", $myrow['id'], time()+9999999); setcookie("group", $myrow2['name'], time()+9999999); setcookie("id_group", $myrow2['id'], time()+9999999); setcookie("color", $myrow2['color'], time()+9999999); } |
НУ а этого вообще не будет, я все сделаю на сессиях!!!
Спустя 1 минута, 17 секунд (24.03.2012 - 20:09) alex12060 написал(а):
Цитата |
SQL inj в этой CMS почти нет, они будут позднее |




Спустя 2 минуты, 30 секунд (24.03.2012 - 20:11) alex12060 написал(а):
Цитата |
Уберу функцию stripslashes |
Это исправит часть ошибки. Пароль то все равно будет после фильтрации таким:
gwrW22& amp;\\Sccw! (без пробела)
вместо
gwrW22'\\Sccw!
Цитата |
НУ а этого вообще не будет, я все сделаю на сессиях!!! |
Один фиг у тебя сессии не фильтруются. Попробуй. Хотя это не правильно, все делать на сессиях.
Спустя 2 минуты, 6 секунд (24.03.2012 - 20:13) Shkiper написал(а):
Просьба тем, кому не сложно, опишите все недочеты CMS (и если немного опишите их решение) в гостевой на сайте!!!
Спустя 1 минута, 8 секунд (24.03.2012 - 20:14) Shkiper написал(а):
Цитата (alex12060 @ 24.03.2012 - 17:11) | ||||
Это исправит часть ошибки. Пароль то все равно будет после фильтрации таким:
Один фиг у тебя сессии не фильтруются. Попробуй. Хотя это не правильно, все делать на сессиях. |
А что ты посоветуешь????? Хотяб механизм(структуру) покажи
Спустя 9 минут, 4 секунды (24.03.2012 - 20:24) alex12060 написал(а):
Deert
Пароль никогда не фильтруется, так как он шифруется, а шифр состоит из символов [a-zA-z0-9], так что, это бессмысленно.
CMS делится на 3 части - Вид, Модель, Контроллер (MVC). Почитай об разделении логики от представления, будет тебе счастье.
На сессиях гемор, ибо, если CMS пускать в бой, где больше 20К человек, будут теряться сессии, часто слетать, да и не все хостинги позволяют сменить время жизни (не знаю почему).
А кукам хоть бы хны. Тут уж все просто - шифруешь пароль, а логин оставляешь. Все внешние данные фильтруешь (Даже хеш пароля) и все, будет тебе счастье.
А если будет песня, типа "своруют куки", то у тебя есть 2 выхода:
- Положиться не пользователя (не верный)
- Шифровать куки по хитрому, чтобы, если своруют, кука была не работоспособной. Тут уже тебе думать, как. Да и гугл в помощь )
Пароль никогда не фильтруется, так как он шифруется, а шифр состоит из символов [a-zA-z0-9], так что, это бессмысленно.
CMS делится на 3 части - Вид, Модель, Контроллер (MVC). Почитай об разделении логики от представления, будет тебе счастье.
На сессиях гемор, ибо, если CMS пускать в бой, где больше 20К человек, будут теряться сессии, часто слетать, да и не все хостинги позволяют сменить время жизни (не знаю почему).
А кукам хоть бы хны. Тут уж все просто - шифруешь пароль, а логин оставляешь. Все внешние данные фильтруешь (Даже хеш пароля) и все, будет тебе счастье.
А если будет песня, типа "своруют куки", то у тебя есть 2 выхода:
- Положиться не пользователя (не верный)
- Шифровать куки по хитрому, чтобы, если своруют, кука была не работоспособной. Тут уже тебе думать, как. Да и гугл в помощь )
Спустя 51 минута, 27 секунд (24.03.2012 - 21:15) Игорь_Vasinsky написал(а):
Цитата |
CMS делится на 3 части - Вид, Модель, Контроллер (MVC). |
это кто заявил?
MVC это всего один из паттернов, а придерживаться его или нет - решает разработчик.
Плюсы у данного паттерна есть (опять же - у здешних обитателей как и у меня своё восприятие данного паттерна) - но это не говорит о том что если сел писать систему управления сайтом - нужно именно его применять.
Спустя 3 минуты, 35 секунд (24.03.2012 - 21:19) Shkiper написал(а):
alex12060 я сделаю так. При входе на каждую страницу будет производиться проверка. Вывести id группы из БД у данного пользователя и сравнить его с id в куках, если подделал то фиг ему бан навсегда пусть гуляет!!
Игорь_Vasinsky MVC не по душе!!!
Игорь_Vasinsky MVC не по душе!!!
Спустя 1 минута, 37 секунд (24.03.2012 - 21:20) Игорь_Vasinsky написал(а):
Цитата |
Игорь_Vasinsky MVC не по душе!!! |
ты просто не понял как его применять.
Спустя 10 минут, 28 секунд (24.03.2012 - 21:31) Президент! написал(а):
Deert ну начнем все по порядку примерно так ))
ты собрался продавать (эт примерно) а показываешь такие штуки как это пока так побудет , это тут пока сойдет, и мне это пока не интересно,,
скажи а почему не интересното? или не знаешь или уже знаешь и отбросил за ненадобностью
напрашивается ответ что пока не знаешь то и отбрасываешь,,,,,
итак вначале надо все тонкости принять , изучит, потом выбрать ,что тебе надобно, вот только тогда делать выводы, что хорошо а что плохо,
второй вопрос забудь про ЮКОЗ как клас-сс забудь ЮКОЗ сделан для домохозяек и прочих кто не собирается этим работать, а так на вскидку пойдет, по случаю находим хостин и начинаем на нем свою бурную деятельность тебе два ГИГА ХВАТИТ ?? возим тут и проехали поехали
ты собрался продавать (эт примерно) а показываешь такие штуки как это пока так побудет , это тут пока сойдет, и мне это пока не интересно,,
скажи а почему не интересното? или не знаешь или уже знаешь и отбросил за ненадобностью
напрашивается ответ что пока не знаешь то и отбрасываешь,,,,,
итак вначале надо все тонкости принять , изучит, потом выбрать ,что тебе надобно, вот только тогда делать выводы, что хорошо а что плохо,
второй вопрос забудь про ЮКОЗ как клас-сс забудь ЮКОЗ сделан для домохозяек и прочих кто не собирается этим работать, а так на вскидку пойдет, по случаю находим хостин и начинаем на нем свою бурную деятельность тебе два ГИГА ХВАТИТ ?? возим тут и проехали поехали
Спустя 3 минуты, 36 секунд (24.03.2012 - 21:34) Президент! написал(а):
теперь про злосчатную !MVC! чтоб я так жил,, или ты это усваиваешь или пару лет отказываешься потом пройдет время вернешься к этой штукети все начнешь заново учить
так зачем, чесать затылок задней левой ногой, если есть левая рука ЭТ тож пример
так зачем, чесать затылок задней левой ногой, если есть левая рука ЭТ тож пример

Спустя 11 часов, 31 минута, 33 секунды (25.03.2012 - 09:06) johniek_comp написал(а):
вот вам MVC своими так сказать руками :) может подтолкнет кого на мысль
.htaccess
index.php
setting.php (как пример)
engine.php
route.php (самый главный!!!)
а теперь пишем контроллер controller_user.php
это означает что при наборе site.ru/user будет запускаться именно он и его метод index
возможно сегодня ещё прикручу класс отвечающий за подключение шаблона по типу как в кохане
и класс для быстрой валидации, и безопасных запросов в БД. буду обновлять пост
класс вида classes/view.php
NotFound();
добавил константу, теперь к классу можно обратится только вызвав его через index.php
теперь во всех контроллерах сделал возможность получить id страницы, при этом чуток передал само ядро, теперь классы можно наследовать друг от друга
и сам вид view_user.php
.htaccess
Свернутый текст
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
index.php
Свернутый текст
<?php
// стартуем сессию
session_start();
// обработчик времени ($time_end = microtime(true); echo $time - $time_end;)
$time = microtime(true);
// создаем константу для того что бы файлы ядра нельзя было вызвать напрямую
define(MEX, '');
// максимальный уровень ошибок
error_reporting(E_ALL);
// автозагрузчик классов
function __autoload($class_name) {
$file = $_SERVER['DOCUMENT_ROOT'] . '/classes/'.$class_name.'.php';
if ( file_exists($file) ) include_once($file);
}
// настроики
setting::mysql();
// струткура
framework::run();
// управляем роутингом, и подключаем нужный класс и метод исходя с url
route::delegate();
?>
setting.php (как пример)
Свернутый текст
<?php
class setting
{
public static function run()
{
// mysql_connect('','','');
// mysql_select_db('');
}
}
engine.php
Свернутый текст
<?php
class engine {
// 404
public static function away() {
header("HTTP/1.0 404 Not Found");
exit('404 Not Found');
}
}
?>
route.php (самый главный!!!)
Свернутый текст
<?php
class route
{
public static function delegate()
{
// загружаем ?index.php?route=
$route = empty($_GET['route']) ? '' : $_GET['route'];
// разбиваем на массив через /
$exp = explode('/', $route);
// если адресс пуст, значить запускаем главную страницу
if($exp[0] == '')
{
$file = $_SERVER['DOCUMENT_ROOT'] .'/controllers/controller_index.php';
}
else
{
// заносим путь к классу (контроллеру)
$file = $_SERVER['DOCUMENT_ROOT'] .'/controllers/controller_'.$exp[0].'.php';
}
if(!file_exists($file))
{
engine :: away(); // не правильный адрес - 404
}
// подключаем файл
include_once $file;
/* если пуст пусть к классу или класс в подключенном файле не найден
* то присваиваем $class = index, если найден то $exp[0]
*/
$class = (empty($exp[0]) or !class_exists($exp[0])) ? 'class_index' : $exp[0];
// создаем экземпляр класса
$controller = new $class;
/* аналогичным способом подключаем выбраный метод
* в случае если метод не найдет url = site.com/class
* то вызываем метод index выбраного класса, или метод index класса index
* url = site.com/class/method
*/
$method = (empty($exp[1]) or !method_exists($controller, $exp[1])) ? 'index' : $exp[1];
// вызываем полученый метод, получаем результат
$controller -> $method();
}
}
?>
а теперь пишем контроллер controller_user.php
это означает что при наборе site.ru/user будет запускаться именно он и его метод index
<?php
class user {
public function index(){ // site.com/user or site.com/user/index
echo 'юзер';
}
public function login(){ // site.com/user/login
echo 'логин';
}
public function register(){ // site.com/user/register
echo 'регистрация';
}
}
возможно сегодня ещё прикручу класс отвечающий за подключение шаблона по типу как в кохане
View::Factory('user/index');
и класс для быстрой валидации, и безопасных запросов в БД. буду обновлять пост
класс вида classes/view.php
<?php
if( ! defined('MEX')) exit("Нет доступа");
class View
{
public static function Factory($view, $data)
{
$file = $_SERVER['DOCUMENT_ROOT'] .'/views/view_'.$view.'.php';
if(!file_exists($file))
{
engine :: NotFound();
}
else
{
extract($data);
include_once $file;
}
}
}
NotFound();
// переадресация на статичную страницу
public static function NotFound(){
echo '<script>window.location.href = "/404.html"</script>';
}
добавил константу, теперь к классу можно обратится только вызвав его через index.php
теперь во всех контроллерах сделал возможность получить id страницы, при этом чуток передал само ядро, теперь классы можно наследовать друг от друга
<?php
if( ! defined('MEX')) exit("Нет доступа");
class user extends route
{
public function index()
{
$data = array();
if(isset($_POST['data']))
{
$data['result'] = $_POST['data'];
}
View::Factory('user', $data);
}
public function login()
{
if(parent::$id == 123) // site.com/user/login/123
echo 'супер!';
}
public function register()
{
echo 'регистрация';
}
}
и сам вид view_user.php
<form action="" method="POST" />
<input type="text" name="data"><br>
<input type="submit">
</form><br>
<?php echo isset($result) ? $result : null; ?>
Спустя 8 минут, 23 секунды (25.03.2012 - 09:14) Игорь_Vasinsky написал(а):
johniek_comp
ну вот к чему понты? я чёт в твоём посте вообще что то о MVC не унюхал, дал бы линк на irbis-team.com - куда полезней было.
ну вот к чему понты? я чёт в твоём посте вообще что то о MVC не унюхал, дал бы линк на irbis-team.com - куда полезней было.
Спустя 1 минута, 23 секунды (25.03.2012 - 09:16) Shkiper написал(а):
johniek_comp постараюсь что-то извлечь из твоего урока. Насколько мне известно из файла .htaccess, то сайт будет на ЧПУ????
Спустя 2 минуты, 36 секунд (25.03.2012 - 09:18) johniek_comp написал(а):
Deert
да, адреса будут такие site.com/news/view/34 например
да, адреса будут такие site.com/news/view/34 например
Спустя 20 секунд (25.03.2012 - 09:19) ADiel написал(а):
Цитата (Deert @ 25.03.2012 - 06:16) |
johniek_comp постараюсь что-то извлечь из твоего урока. Насколько мне известно из файла .htaccess, то сайт будет на ЧПУ???? |
public function index(){ // site.com/user or site.com/user/index
echo 'юзер';
}
Код тоже можно читать.
И комментарии можно.
И пишется код за 2 минуты.
И свой нужно писать.
И читать больше.
И больше практики.
Э как меня понесло...