Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с модульностью 
:(
    Опции темы
ReactOS
  Дата 14.5.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Добрый День!

прочитав несколько статей по созданию модульной системы сайта, самому стало интересно разбить свой сайт на модули...
но одним местом чую, что безоапность у такого кода - нулевая smile

Код

<?php

include("config.php");

//Проверка на существование переменной $mod, и существования такого модуля
//если неверное условие то присваиваем ему значением модуля по умолчанию
if (!isset($mod) || ($mod=="") || (!file_exists ("modules/$mod.php"))) {

$mod=$defult_mod;

}


include("top.php");
include("modules/$mod.php");
include("footer.php");

?>

Это был индекс, собственно, что происходит в модулях - другой вопрос.
Так что предложим, что в модулях творится что-то на подобии:

Код

<? .......... ?>
 

Чувствую ньюбовский способ у меня работы с модулностью сайта, но очень хотелось подискутировать на данную тему smile
Прошу помочь мне создать неньюбовский способ модульности сайта smile
Может вы ссылочки на хорошие статьи дадите? smile
Пока в Нете лазил ничего вразумительного не нашел smile

PM   Вверх
bars80080
Дата 14.5.2008, 10:24 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



сдаётся мне, вы подключаете модуль, имя которого передаётся от клиента, что конечно делать ни в коем случае нельзя
подключать следует только то что уже существует и в чём вы уверены, тогда никаких проблем
даже если требуется что-то подключить, клиенту необходимо вывести список, где передаваемые на сервер значения - к примеру простые числа 1, 2, ..., а уже на сервере выбирать из списка имён этих модулей
PM MAIL WWW   Вверх
ReactOS
Дата 14.5.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Уважаемый bars80080,

Цитата(bars80080 @  14.5.2008,  10:24 Найти цитируемый пост)
сдаётся мне, вы подключаете модуль, имя которого передаётся от клиента, что конечно делать ни в коем случае нельзя

почему? smile можно поконкретнее насчет данной проблемы? smile
PM   Вверх
slaw
Дата 14.5.2008, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.4.2008

Репутация: нет
Всего: 1



с этим все в порядке, обращений в базу нет... хотя лучше провести ответ от пользователя через htmlspecialchars и stripslashes, и на последок через str_replace(".","", {string}) . Это исключит возможность обращения к нежелательным для открытия файлам.


А передавать серверу простые числа - неактуально, если не старомодно... к тому же весьма неинформативно (как для пользователя, так и разработчика)

Это сообщение отредактировал(а) slaw - 14.5.2008, 10:35
PM MAIL WWW   Вверх
bars80080
Дата 14.5.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



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

ну и конечно, пользователь в идеале должен даже близко не догадываться о настоящей структуре сайта, меньше знает - меньше проблем. поэтому если подключается модуль новостей, то никаких выборок модуля быть не должно, а просто ссылка - "включить новости", по которой будет передан на сервер числовой параметр...
PM MAIL WWW   Вверх
ReactOS
Дата 14.5.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



таксс..... smile

нашел кое-что интересное в Нете, и вроде дельное smile
потом отпишусь smile

построение модульной системы при помощи smarty smile
PM   Вверх
MoLeX
Дата 14.5.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(slaw @  14.5.2008,  10:34 Найти цитируемый пост)
А передавать серверу простые числа - неактуально, если не старомодно... к тому же весьма неинформативно (как для пользователя, так и разработчика)


ну и чем плохо передавать данные таким способом?
http://мой_сайт.ре/index.php?module=viewing&page=2&id=11

ИМХО всегда считал что для использования модульной системы нужно гибкое, грамотно написанное ядро. которое и подсоединит необходимый модуль и проерить переменные поступившие от пользователя. 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
slaw
Дата 14.5.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.4.2008

Репутация: нет
Всего: 1



Цитата(MoLeX @  14.5.2008,  11:48 Найти цитируемый пост)
?module=viewing

вот видишь, у тебя не все в числах идет smile

на самом деле реализация может быть в 1000 и одном варианте... просто первоначальной идей автора было подключение модулей по их реальному имени
PM MAIL WWW   Вверх
bars80080
Дата 14.5.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



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

а если уж хочется понятных названий, то извините, есть ЧПУ, которое и будет прикрывать неблаговидные цифорки
PM MAIL WWW   Вверх
ReactOS
Дата 14.5.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Цитата(slaw @  14.5.2008,  11:52 Найти цитируемый пост)
просто первоначальной идей автора было подключение модулей по их реальному имени

первоначальной идей было изучение создания модульной системы smile
иначе не стал бы я говорить, что фиговая у меня модульность smile

хотел изучить, как создать оптимальную, гибкую модульную систему smile
узнать, какие возможны дыри в моем коде smile

вообщем, еще напишу только ближе к вечеру smile
PM   Вверх
MoLeX
Дата 14.5.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(slaw @  14.5.2008,  11:52 Найти цитируемый пост)
вот видишь, у тебя не все в числах идет

это название модуля. я конечно ее могу и цифрами забабацать мне все едино))) 

сама простая и распространеная схема модульного сайта вот такая:
  ядро
  - папка с модулями
    -- модули
        --- сам скрипт модуля


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 14.5.2008, 15:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



На редкость глубокомысленное обсуждение.

fortrun
Во-первых, прежде, чем что-то делать, надо сначала ответить себе на вопрос - "зачем?"
К сожалению, подавляющее большинство пэхапе программистов не утруждает себя такими дурацкими вопросами.
Яркий пример этого - один из ответов в топике. Автор рекомендует совершать некоторые действия, но от каких конкретно проблем помогут ему функции htmlspecialchars и stripslashes - ответит вряд ли.
Вот сначала ответь себе на вопрос, а что ты вообще считаешь модульностью и для чего она тебе нужна вообще.
Судя по твоему коду, под этим словом ты понимаешь не то, что другие, и в результате имеешь ответы совсем не на свой вопрос.

Далее. об осмысленности твоего кода.
Вот смотри, в заголовке окна браузера на этой странице написан заголовок темы. 
Наверняка тебе тоже захочется. Как ты собираешься указывать этот заголовок в своей модульной системе?

И последнее. Смарти - это система шаблонизации. Никакого отношения к модульности - что бы ты не имел в виду - не имеет.

Добавлено через 7 минут и 24 секунды
bars80080,лично мне неизвестен способ впихнуть что-то лишнее при использовании кода из первого сообщения

Это сообщение отредактировал(а) Feldmarschall - 14.5.2008, 15:58
PM   Вверх
MoLeX
Дата 15.5.2008, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Feldmarschall @  14.5.2008,  15:53 Найти цитируемый пост)
Вот смотри, в заголовке окна браузера на этой странице написан заголовок темы. Наверняка тебе тоже захочется. Как ты собираешься указывать этот заголовок в своей модульной системе?

используя шаблон мы получаем уникальный заголовок и мета теги для каждой страницы сайта

Добавлено через 21 секунду
видимо он для этого он и хотел использовать смарти


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0861 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.