Здраствуйте!!!
Ситуация такая:
Год назад я (как дизайнер) и мой знакомый (как программист) сделали сайт кинотеатра-диско-клуба [Только зарегистрированные пользователи могут видеть ссылки. ] . Денег не платили, просто голый энтузиазм. Обновлять сайт приходиться мне. Очень не удобно, приходится залазить в код и вручную править ссылки. Вся структура сайта основываеться на записи в текстовые файлы. Он был взломан, форум постоянно засоряют рекламой Сайт необходимо переделать!!! Программист - пропал...
Я вооружился книжой по php и mysql, почитал, немного вникнул, но для создания проекта нехватае ни знаний, ни опыта, ни уверенности. :blush2:
Помогите советами и ответами на возникшие вопросы, пожалуйста!!!
Первым делом хочу сделать раздел о Кинотетре.
Задача: 1. Сделать шаблон страници и подгружать в него новые значения (т.е. уменьшить время загрузки страниц)
2. архив, фильм и анонс дожны генерировться автоматически в зависимости от даты.
1. я беру с сервера дату, например 15.09.05, перевожу ее в число типа 0915, и вставляю ее в разные функции которые ее сравнивают со значениями "а" и "в" и выводят требуемый результат.
"а" и "в" - это преобразованные даты начала и конца показа фильма, например 0913 и 0920. (эти числа я сам ввожу в базу данных).
теперь вопосы:
1. что значит "...имеет смысл помещать включаемые файлы в каталог, который доступен сценарию, но не позволяет проводить самостоятельную загрузку включаемых файлов через веб-сервер..." - где взять этот каталог???
2. к каждому фильму прикручены коментарии - правильная-ли база днных на моем рисунке.
3. На хосте предоставляют только одну базу данных, это значит что форум придеться вообще удалять, или его можно помещать в отдельную таблицу?
надеюсь на понятные ответы, потомучто 2 недели назад я впервые прочетал об операторе echo и т.д.
1. права доступа к директории - 600 (только владелец имеет право обращаться к содержимому), "внешний" (общедоступный сценарий вне директории) может включать (include/require) файлы, хранящиеся в директории ...
2. (рисунок не смотрел) я бы поступил так: если сделать поля нумеруемыми (первой ячейкой, например - id bigint auto_increment primary key), каждый новый пункт будет иметь id, равный порядковому номеру, если пользователь оставляет комментарий на конкретное сообщение в таблице комментов сохраняется id сообщения к которому он относится и его содержание, при чтении делается выборка по id (выбрать все данные из таблицы комментов, где id такой же как у сообщения и вывести) очень просто
3. если форум требует целую базу, дайте (после инсталляции форума можно дополнить базу таблицами, которые никогда не перекроются с таблицами форума [специальные имена] ... используйте)
Сайт был взломан через форум phpBB. Для начала обновите его, хотя я вижу это уже сделано или нет. Если нет, то советую попасть на [Только зарегистрированные пользователи могут видеть ссылки. ] и заняться апдейтом форума.
Теперь немного теории по-простому.
База данных - хранит в себе таблицы. Их может быть много в одной базе данных. Форум можно не сносить, хуже не будет. Форум использует не одну, а много таблиц (это к сведенью)
Что касается решения вашего вопроса. Я не могу советовать, как лучше. Если хотите использовать базу данных, то тогда придется писать админку, а иначе это будет мартышкин труд.
Если же всеже хотите на файлах, то тут несколько примеров :
отмечу, это без использования mysql базой, решения на файлах.
Код:
$include_file=$total.".html";
$include_dir="files/";
$rezult=$include_dir.$include_file;
if(@file_exists($rezult)) {
include ($rezult);
}
else {
include ($include_dir."default.html";
}
Пример использования script.php?total=film1
Итак как это работает :
скрипту передается переменная total которая равна film1
Теперь по строкам кода
переменная $include_file равна "film1.html"
переменная $include_dir равна "files/"
переменная $rezult равна "files/film1.html"
( Понятно, что это как раз местоположение файла, относительно скрипта)
далле проверяем, а сущетствует ли такой файл ?
если да, то вставляем файл film1.html из каталога files
если нет, то вставляем файл default.html из каталога files
Проверки нужны, чтобы нельзя было сделать вот так
script.php?total=http://www.мой сайт.ru/злой скрипт.php
тогда бы мой скрипт заработал бы на твоем сайте. А так файла нет, вставляется default.html
Давайте попробуем вставить данные о фильмах :
Для начала создадим текстовый файл вот такого содержания (шаблон):
Название фильма 1|Дата начала|Дата окончания|Файл описания
$data=file("films.txt"); // считали файл
$now=time(); // сегодня время
// перебираем теперь фильмы
for ($i=0;$i<count($data);$i++){
list($name_film,$data_start,$data_end,$include_file)=$data[$i];
list($s_day,$s_month,$s_year)=split('\.',$data_start);
list($f_day,$f_month,$f_year)=split('\.',$data_end);
$time_s=mktime(0,0,1,$s_month,$s_day,$s_year);
$time_f=mktime(23,59,59,$f_month,$f_day,$f_year);
if (($now>$time_s)&&($now<$time_f)){
echo "<a href=script.php?total=".$include_file.">".$name_film."</a>
";
}
}
Смысл такой. Перебираем файл films.txt и если попадаем в промежуток. то выводим название фильма, как ссылку.
Ну вот пара небольших советов. Изучай, читай работай ...
Спасибо за предоставленный пример, полезная информация.
Делать хочу с базами данных по 2-м причинам.
1. Научиться работать с базами.
2. Написать админку и научить секретаршу добавлять фильмы.
Другими словами, сять с себя администрирование :closedeyes:
Вопрос: у меня на хосте 2 катлога, www и log, файлы для функции require (), помещаются в новую папку с правами 600??? а сама папка находится в www или выше???
Какие должны быть права у папки с сайтом (www)?
Какие дожны быть права у папки с картинками фильмов, если эти картинки загржаются пользователями при помощи пхп, а в базу заноситься только src-ссылка. в книге написано что для безопасности сама папка должна находиться вне корневого каталлога. Т.е. выше www???
Значит так. Каталог www там лежат все файлы сайта. Выше нет смысла класть. И вообще, если Вы ни бум бум в этом во всем ... то советую правами не заморачиваться, тем более Вам врядли это понадобится в ближайшее время.
Я не совсем не бум бум!!!
Есть книжка, есть мозг, есть желание!!! вот только спрашивать неукого!!!
Вначале всегда тяжело.
Вот еще назрел вопрос:
на странице "афиша" где описание фильма будеть 1 большая картинка фильма. А на страницах анонс и архив будут много маленьких. как лучше сделать написать скрипт который при загрузке на сервер делать 2 картинки (большую и маленькую) и сувать их в разнае котологи, или сделать один каталог с картинками и ресайзить их при вызове страници разными скриптами???
"Ресайзить" - это изменение размеров загружаемых картинок при помощи скриптов. в моем лучае 1 скрипт делает 2 кртинки.
На данный момент сделал страничку администрирования для загрузки фильмов в базу и страницу просмотра идущего фильма.
На локальном хосте все работает, только я преставления не имею как базу на другой хостинг перебросить. Вообще как она выглядит??? Это какойто файл??? Или с ней только через cmd можно общаться???
Как поступить с каталогом для картинок если в него можно загружать файлы всем, чтобы было безопаснее???
Ликбез. Чтобы работать локально с удобством поставь себе Денвер
denwer.ru
Для переброски базы на сайт используй либо phpmyadmin (найдешь его в Денвере или скачаешь отдельно), либо через шелл (ssh доступ к сайту с помощью команды mysql).
По поводу базы. Немножко теории на примере двух таблиц.
таблица films
id - номер фильма (поле неотрицательное челое число. проставляется автоматчески при добавлении нового - так называемый автоинкремент)
filmname- имя фильма
таблица kinoteatri
id - - номер кинтеатра (поле неотрицательное челое число. проставляется автоматчески при добавлении нового - так называемый автоинкремент)
kinoteatrname
тепер repertuar
id
film_id
kinoteatr_id
data_start
data_end
time
думаю поля понятны. (номер, фильм id, кинотеатр id, дата начала, дата конца-советую даты хранить как целое число. почитай про timestamp, и собственно время начало сеансов)
почитай про понятие третьей нормальной формы, отношение многие ко многим, один ко многим и т.д.
Будут многие говорить что не идеально - бога ради. Есть простой ответ -kinoafisha.net это делал я
Originally posted by Rom@Nov 18 2005, 08:30 Как поступить с каталогом для картинок если в него можно загружать файлы всем, чтобы было безопаснее???
<div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
[/quote]
гм-гм...
это мания преследования
за принятие файла отвечает серверный сценарий (если вы его поставили), в начале сценария поставить проверку логина и пароля (они правильные - идет выполнение сценария, нет - "аварийное завершение", т.е. файл не закачивается).
Странно, делаю вывод архива. Функция выводит количество выбранных строк, если беру 1 фильм тоже все ок. А вот когда пытаюсь вывести содержиме строк попорядку она не работает
Подскажите где ошибка