Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 674
от 01.06.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 431, Экспертов: 61
В номере:Вопросов: 1, Ответов: 2


Вопрос № 88805: Здравствуйте. Нужен ваш совет. Есть идея написать движок сайта: несколько шаблонов: главная, остальные страницы, ошибка 404 (через mod_rewrite); данные хочу хранить в папках, страницах. например путь url: /articles/php/1/article....

Вопрос № 88.805
Здравствуйте.
Нужен ваш совет.

Есть идея написать движок сайта:
несколько шаблонов: главная, остальные страницы, ошибка 404 (через mod_rewrite);
данные хочу хранить в папках, страницах. например путь url: /articles/php/1/article.7745/page.3 и на сервере файл article.7745.html лежит в папке _data/articles/php/1/
(page.3 уже обрабатывается как номер страницы, скриптом)

такие данные как title, description, keywords, template и т.д. предполагаю хранить в том же файле (article.7745.html) в начале странице как теги:
<title>заголовок страницы</title>
<description>описание</description>
<template>index</template>

Т.е. отдельно таблицы в базе данных не создавать. Хранение данных в БД считаю не удобным,
Так как чтоб создать страницу или раздел мне необходимо прописать в БД все необходимые данные, такие как тот же заголовок, описание, ключевые слова, место хранения и путь url к странице. Здесь же я могу на локальной машине создать раздел, страницы и выгрузить.
Из панели администратирования я так же могу изменить данные в самой странице.

К тому же в процессе развития мне могут понадобится новые свойства страницы, раздела такие как <index>, <title-menu>, <cashe>, <access> и т.п. и это может быть очень много в зависимости от потребностей, а каждый раз менять структуру таблиц не приятно.

В дальнейшем понадобится система пользователей и доступа к страницам сайта. Вот здесь не знаю. Если я в начале создаю движок на файловых данных можно будет реализовать систему пользователей на файлах и как это повлияет на требования к ресурсам и время выполнения.

Система пользователей хочу реализовать как:
Все данные пользователей хранятся в папке _users в своих файлах (например admin.user, bob.user)
А в них уже данные такие как пароль, почта и т.д. Одна запись одна строка и один элемент массива array=file().

А вот как мне например из 1 тыс. пользователей определить администраторов, модераторов, пользователей. А так же скажем поиск пользователей, скажем ‘A%’ ? Перебирать все файлы долго.

Может быть мне кто ни будь расскажет как обстоит дела с пользователями на больших форумах без БД

Что Вы мне посоветуете про саму идею хранения данных в файлах.

Жду ваших советов, критики.
Отправлен: 27.05.2007, 15:26
Вопрос задал: Оськин Дмитрий Владимирович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Устинов С.Е.
Здравствуйте, Оськин Дмитрий Владимирович!

Сильно сомневаюсь, что существуют большие форумы без БД. Зачем изобретать велосипед, если есть возможность воспользоваться уже существующим, причем бесплатным? (например MySQL)
Попробуйте реализовать хранение и обработку нескольких пользователей в файлах и в БД - сравните обе схемы обработки - если при работе с файлами Вам нужно будет обеспечивать целостность, защищенность файла (например, если в один и тот же момент один экземпляр скрипта сохраняет и переписывает файл, а второй экземпляр в это же время пытается его прочесть... а если обращений к этому файлу в данный момент еще больше), проверять "а до конца ли дописались изменения в файл, или в процессе обрабоки что-то оборвалось", то с MySQL все сводится к 1-2 строкам.
Насчет поиска - для обработки файловых данных Вам во-первых понадобится своя процедура обработки, во вторых это будет в несколько порядков дольше делаться, чем в БД (в той же MySQL это делает 1 запрос).
Также с хранением дополнительных данных о странице - это все можно легко сделать с помощью БД, а с помощью файлов намного сложнее.
Ведь можно и ложкой вырыть яму под фундамент и т.п., а можно для этого дела взять экскаватор ;) Предлагаю воспользоваться "экскаватором" MySQL.

Удачи!
---------
Ждешь квалифицированного ответа? Задай правильно вопрос!
Ответ отправил: Устинов С.Е. (статус: Специалист)
Ответ отправлен: 27.05.2007, 15:51

Отвечает: Sea
Здравствуйте, Оськин Дмитрий Владимирович!
Такое впечатление, что вы боитесь баз данных:) А ведь они могут дать много полезного, что иначе прийдется реализовывать самому. Что? Ну к примеру поиск. Реализовывать свою поисковую машину вещь достаточно непростая, хотя тут может помочь например Zend framework. Ну или можно обойтись и гугловским поисковиком, да еще и копеечку получать с этого.
На счет статей могу сказать одно - ваша реализация не самая удачная и если не предусмотреть средства кэширования, то сервак вы конечно нагрузите, хотя для малопосещаемого ресурса это не так актуально. Да и зачем изобретать велосипед, да еще и с квадратными колесами:)
Что касается системы авторизации, то ее лучше сделать на БД, хотя тоже не так важно. И если разработать хороший механизм, то и производительность не пострадает.
Если вы будете хранить данные о пользователях в файлах *.user и при этом еще и в публичной папке, то без проблем не обойтись. Что будет если злоумышленник обратится к такому файлу? Лучше уж использовать *.php и первой строкой прописать <?php exit(); ?> Тогда сервер не позволит увидеть секретные данные.
А на счет поиска пользователей, то можно смотреть в сторону glob() - полезная вещица.

А вообще - подумайте об использовании баз данных. Ведь их не просто так придумали - значит это зачем то нужно. Но и увлекаться не стоит - хранить картинки в базе глупо.
Я не увидел не одного убедительного аргумента против баз, а вот в их пользу можно привести множество.
Ответ отправил: Sea (статус: 2-ой класс)
Ответ отправлен: 27.05.2007, 23:08


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное