 |
Bolide Software Форум общения пользователей
|
|
|
| Автор |
Сообщение |
ynkas Опытный пользователь
Зарегистрирован: 14.06.2008 Сообщения: 241
|
Добавлено: Пт Янв 15, 2010 3:47 pm Заголовок сообщения: Мини движок на PHP для вывода данных из базы в HTML |
|
|
Нужно мне было как-то показать знакомым свою базу фильмов,
для этого нужно либо устанавливать программу, на что не каждый согласиться,
по себе знаю либо выводить в какой-либо шаблон, к сожалению ни один меня совершенно
не устроил по функционалу и удобности...
Задался я целью выцепить все данные из базы и вывести в HTML в наиболее удачный, на мой взгляд,
шаблон от amm - indian...
Что из этого вышло можно увидеть тут
В IE8, Mozila Firefox 3.5, Goole Chrome все эффекты работают, в других браузерах не проверял...
Если кого заинтересует как это реализовать напишу небольшую инструкцию и выложу сам движок, в настройке ничего сложного нет
И что удобно - можно запускать с USB носителя на любом ПК без установки софта, а если есть прямой IP, то и вовсе USB носитель не нужен.
Для начала нужно установить готовый сервер Vertrigo (присутствует в комплекте) или Denwer,
ну или установить и настроить связку Apache и PHP...
Описываю способ с Vertrigo, так как он в комплекте и его можно переносить на USB носителях,
Denwer вроде тоже можно, не помню да и лень искать инфу или пробовать, кому интересно сам попробует )).
После установки Vertrigo кидаем содержимое папки "www" и папки "Тестовая_база"
(или свою базу, предварительно выгрузив из нее картинки и переименовав как в папке "Тестовая_база")
в папку "www" вашего сервера.
Чтобы избежать проблем с кодировкой, в папке www создаем файлик .htaccess и копируем в него строчку | Код: | | AddDefaultCharset Windows-1251 |
Если не вкурсе, создается в блокноте, сохранятеся и переименовывается в .htaccess без каких либо расширений на конце.
Далее заходим в "Панель управления\Администрирование\Источники данных (ODBC)" заходим
во вкладку Системный DSN добавляем драйвер для Microsoft Access (*.mdb) в открывшемся окошке
вводим имя базы данных "mydb" без кавычек, либо свое имя, но потом придется править файл blocks/db.php,
нажимаем на кнопку "Выбрать..." тип файлов: выбираем Все файлы (*.*) в правом окошке выбираем
"ваш диск:\директория установки\VertigoServ\www"
в левом окоше выбираем файл "mydb[1].amm" жмем ок и еще раз ок, больше тут настраивать ничего не нужно.
Файл mydb[1].amm в принципе не обязательно держать в папке www,
но тогда после очередной правки базы придется вручную переносить папку с jpg в папку www, а mydb[1].amm в другое выбранное место, а если настроить каждый день бэкап базы в папку www, то ничего переносить вручную никуда не надо. И если переименуете свою базу в mydb.amm, то после бэкапа она примет вид mydb[1].amm и переименовывать тоже ничего не надо будет. В итоге после изменений в базе на сайте это отобразится после бэкапа, в моем случае через сутки...
Если винда 64 битная то "Источники данных (ODBC)" запускать нужно по этому пути -->
C:\Windows\SysWOW64\odbcad32.exe, иначе не будет выбора драйвера для Microsoft Access (*.mdb).
Теперь осталось открыть 80й порт в брандмауэре и можно запускать Server.
Опишу как открыть в Windows Vista или Windows 7, в XP его можно просто отключить, что проще.
заходим в "Панель управления\Администрирование\Брандмауэр Windows в режиме повышенной безопасности",
создаем правило - правой кнопкой мыши по 1й строчке (Правило для входящих подключений)
Тип правила - Для программы, далее
Программа - "ваш диск:\директория установки\VertrigoServ\Apache\bin\v_apache.exe", далее
Разрешить подключение, далее
Поставить галки на все профили, далее
Задаем имя и жмем Готово...
Запускаем сервер, заходим по адресу http://127.0.0.1 или http://localhost и смотрим результат...
Update
Исправлена ошибка, не ставились запятые, если в карточке актера не было фото.
Update
Разбил код на доп блоки.
Добавлен вывод информации о видео и аудио.
Добавлен вывод информации о сценаристах.
Добавлен вывод информации о рейтинге MPAA.
SQL-инъекцию прикрыл
Update
Добавлена сортировка по Алфавиту (возрастание/убывание)
Добавлена сортировка по дате (возрастание/убывание)
Update
Переделана структура
Список фильмов перемещен вправо
Подправлена логика вывода при поиске и сортировке
Фильмография актера выводится разборчиво
Update
Обновлен файл css для отображения прокрутки в Mozilla Firefox
Update
Добавлено обновление карточки фильма без перезагрузки страницы,
при клике на фильм из правого списка
Update
Добавлена сортировка по знакам алфавита без перезагрузки страницы
Update
Исправлена проблема с неполным выводом информации из полей Memo (комментариев, описания, биографии, фильмографии)
Update
Добавлен вывод скриншотов, если они есть
Update
Небольшие исправления на странице персон (Убрал лишние переносы строк, вывод строк "Знаете ли вы, что" теперь в читабельном виде)
Update
Добавил вывод эпизодов, + если на странице персоны кликнуть на фильм из списка, список останется и на странице фильма...
Update
Добавил сортировку по году в правом списке
Добавил линк на скачку фильма, локальный путь в карточке фильма должен быть вида: Z:\films\film.mkv,
если скачка производится по тому же порту, средствами того же http сервера, на котором и сама страничка (по умолчанию 80 порт), то необходимо сделать изминение в файле blocks\left_index.php
исправить строку
| Код: |
$localpath = "http://$ip:8080$localpath";
|
на
| Код: |
$localpath = "http://$ip$localpath";
|
Update
Подправил сортировку по году
Update
Переделал сортировку, добавил новые пункты, поправил мелкие баги
Update
Поправил отображение при сортировке по годам, носителю и жанрам
Комплект с сервером и тестовой базой
Обновленный комплект 28.09.2011 и Зеркало
Только скрипты
www 28.09.2011 и Зеркало
Последний раз редактировалось: ynkas (Ср Сен 28, 2011 11:21 am), всего редактировалось 50 раз(а) |
|
| Вернуться к началу |
|
 |
Igor Пользователь
Зарегистрирован: 08.09.2006 Сообщения: 45
|
Добавлено: Пт Янв 15, 2010 7:18 pm Заголовок сообщения: |
|
|
Весьма интересно. Дело за инструкцией и движком осталось  |
|
| Вернуться к началу |
|
 |
Maxometr Опытный пользователь
Зарегистрирован: 23.05.2008 Сообщения: 102 Откуда: Питер
|
Добавлено: Пт Янв 15, 2010 7:26 pm Заголовок сообщения: |
|
|
| Поддерживаю, выложите инструкцию и движок |
|
| Вернуться к началу |
|
 |
Sentens Пользователь
Зарегистрирован: 13.01.2010 Сообщения: 6
|
Добавлено: Сб Янв 16, 2010 5:05 pm Заголовок сообщения: |
|
|
Большое спасибо!!! (В закладочки)
P.S.Никак не могу определиться с форматом для домашней коллекции фильмов? Что посоветуете для 1920х1080 (40") в пределах 10-12гб за 1.5 часа. (BD-Rip, DVD-9, HDTV-Rip...????) |
|
| Вернуться к началу |
|
 |
ynkas Опытный пользователь
Зарегистрирован: 14.06.2008 Сообщения: 241
|
Добавлено: Сб Янв 16, 2010 5:22 pm Заголовок сообщения: |
|
|
А не великоват размер ? ))
Разницы практически не заметно между BD-Rip 1080p и 720p на 40"
А в размере очень заметно
Мне кажется оптимально собирать BD-Rip в mkv размером 4-6 Gb в зависимости от длинны фильма |
|
| Вернуться к началу |
|
 |
Sentens Пользователь
Зарегистрирован: 13.01.2010 Сообщения: 6
|
Добавлено: Сб Янв 16, 2010 5:53 pm Заголовок сообщения: |
|
|
| А вот из форматов не BD, что предпочтительней? Судя по трекерам, BR выходит через 5-6 лет после выхода фильма минимум. |
|
| Вернуться к началу |
|
 |
ynkas Опытный пользователь
Зарегистрирован: 14.06.2008 Сообщения: 241
|
Добавлено: Сб Янв 16, 2010 6:08 pm Заголовок сообщения: |
|
|
Это вы загнули
Сейчас на BR выходит одновременно с DVD
А из других форматов например я собираю еще в AVI но с разрешением не меньше 720 x *
Есть отличный сайт где наиболее удачные рипы в AVI, очень рекомендую  |
|
| Вернуться к началу |
|
 |
Sentens Пользователь
Зарегистрирован: 13.01.2010 Сообщения: 6
|
Добавлено: Сб Янв 16, 2010 6:33 pm Заголовок сообщения: |
|
|
Да, действительно загнул)
Прочитав пару страниц обсуждений на форуме overclockers.ru, нашел очень хороший ответ:
"Ну, спору нет, что лучше ремуксы, или хотя-бы BDRip 1080p DVD9, BDRip 720p DVD9 :) BDRip 720p 4-5Гб приятнее глазу чем лицензия DVD9, за счет гораздо большей четкости картинки. Говорю по себе, накачено несколько терабайт фильмов в разных форматах. Сейчас у меня такой порядок предпочтений: BDRip 1080p 8 - 12Гб (храню на hdd поэтому не важно чтобы точно влезало на DVD9), BDRip 720p 6-8Гб (с несколькими звуковыми дорожками), BDRip 720p 4 - 5Гб (с одной звуковой дорогой), DVDRip/BDRip обычного PAL/NTSC/чуть меньшего разрешения на 2Гб, и лучше чтобы кодированный в x264 (заметно лучше DivX, Xvid). DVD9/DVD5 качаю если только BDRip версии не нашел, а фильм стоящий и хочется посмотреть в максимально хорошем качестве, причем если DVD5 сделан из DVD9 убиранием допов, рекламы и не нужных мне дорожек, то предпочитаю качать его, потом если фильм мне понравился и появляется BD качаю BDrip, а DVD версию удаляю." |
|
| Вернуться к началу |
|
 |
GhOsT_MZ2 Пользователь
Зарегистрирован: 16.01.2010 Сообщения: 49
|
Добавлено: Сб Янв 16, 2010 9:15 pm Заголовок сообщения: |
|
|
Хм.. весьма интересный движок. Так как приходилось писать нечто подобное, но под другую базу (надеюсь автор AMM не обидится если я подключусь к обсуждению только php-движка), стало интересно что из себя представляет эта радость из нутри...
Первое впечатление о внешности - симпотично, но не совсем информативно. Да, все компактно и удобно, но нету информации о самих видео-файлах, что лично для меня не совсем комфортно.
Плюс к этому, как таковые фильтры отбора и сортировка отсутствуют. В списке фильмов минимум информации, что также, лично для меня и моих целей не айс, ну хотя, это субъективно.
Далее, посмотрев код, все вроде компактно, не плохо, но поразило вот что:
| Код: | if ($myrow['Rating']==0)
{
echo "
<img src='img/star_empty.gif' width='20' height='20' alt='Рейтинг отсутствует' title='Рейтинг отсутствует'>
<img src='img/star_empty.gif' width='20' height='20' alt='Рейтинг отсутствует' title='Рейтинг отсутствует'>
<img src='img/star_empty.gif' width='20' height='20' alt='Рейтинг отсутствует' title='Рейтинг отсутствует'>
<img src='img/star_empty.gif' width='20' height='20' alt='Рейтинг отсутствует' title='Рейтинг отсутствует'>
<img src='img/star_empty.gif' width='20' height='20' alt='Рейтинг отсутствует' title='Рейтинг отсутствует'>";
} |
Это лишняя трата строк так сказать...
Можно сделать проще:
1) Делаем кучу картинок с этими звездочками, с номерами 1-10 к примеру;
2) Пишем такой код:
| Код: | | print("<img border=\"0\" src=\"img/" . round((float)$myrow['Rating'] / 10) . ".jpg\" width=\"100\" height=\"20\" title=\"" . $myrow['Rating'] . "\">"); |
И просто и красиво... нету лишнего кода...
Это не все...
| Код: | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php echo $myrow['Name'];?></title>
<script type="text/javascript" src='blocks/spoiler.js'></script>
<script type="text/javascript">
function provDataGuest()
{
obj_form=document.forms.form_s;
obj_row_search=obj_form.search;
if (obj_row_search.value=="")
{
alert ("Для поиска необходимо ввести не менее 3х символов");
return;
}
search=obj_row_search.value;
if (search.length<3)
{
alert ("Для поиска необходимо ввести не менее 3х символов");
return;
}
obj_form.submit();
}
</script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF"; onload="document.form_s.search.focus();"> |
Такие вещи тоже не обязательно дублировать... Помоему проще создать отдельный файлик, типа header.php и его подключать в начале...
Эти 2 совета сократят код каждого файла на 150 строк... Да и в случае необходимости правки не получится забыть править какой-то отдельный файл, так как все будет в одном месте... А если добавить и footer.php, выводящий нижнюю часть, то код уменьшится на большее количество строк...
Плюс к этому, код не безопасен, ибо налицо SQL-инъекция:
| Код: | | if (isset ($_GET['ActorID'])) {$ActorID = $_GET['ActorID'];} |
Вместо этого нужно так:
| Код: | | if (isset ($_GET['ActorID'])) {(int)$ActorID = $_GET['ActorID'];} |
Ну вроде все что касается кода написал, но думаю напишу еще, так как только глазами пробежался поверхностно...
И еще, не мешало бы красивее его писать, чтобы читабельно было) Но это уже дело каждого)
Что касается самого сервера, то тут дело каждого, но, открывать для внешки такие вещи не безопасно, так как код может быть не безопасен и при получении контроля над веб-сервером, который запущен с максимальными правами, можно натворить дел... Так что, прежде чем ставить, лучше подумайте, а еще лучше, разграничте права для веб-сервера и все, и займитесь более тонкой настройкой в сторону безопасности...
Вот моя радость, если кому интересно... Нету выборки по странам, так как база немного иначе построена, но возможно добавлю потом... да и актеров к сожалению нету, так как нельзя их добавить в автоматическом режиме, но основные моменты более-менее проработаны:
http://ghostmz.no-ip.org/ |
|
| Вернуться к началу |
|
 |
ynkas Опытный пользователь
Зарегистрирован: 14.06.2008 Сообщения: 241
|
Добавлено: Вс Янв 17, 2010 12:57 am Заголовок сообщения: |
|
|
| GhOsT_MZ2 писал(а): | Да, все компактно и удобно, но нету информации о самих видео-файлах, что лично для меня не совсем комфортно.
|
Это элементарно правится доп. запросами к базе
| GhOsT_MZ2 писал(а): |
Плюс к этому, как таковые фильтры отбора и сортировка отсутствуют.
|
Фильтров нет
Сортировка присутствует
| GhOsT_MZ2 писал(а): |
В списке фильмов минимум информации, что также, лично для меня и моих целей не айс, ну хотя, это субъективно.
|
Ну это сделано как в самой программе
При запуске показывается только 1й фильм и список
| GhOsT_MZ2 писал(а): |
Далее, посмотрев код, все вроде компактно, не плохо, но поразило вот что:.........
|
Согласен, что-то можно поправить, а можно и оставить как есть, это не для распространения своей базы на всю паутину, а для личного пользования, поэтому как-то особо не обращал внимания на лишние строки
| GhOsT_MZ2 писал(а): |
И еще, не мешало бы красивее его писать, чтобы читабельно было) Но это уже дело каждого)
|
Изначально код писал для теста, а потом
уже было лень править и оптимизировать, фунциклирует, не тормозит и ладно  |
|
| Вернуться к началу |
|
 |
Stuntman Пользователь
Зарегистрирован: 27.06.2009 Сообщения: 16
|
Добавлено: Вс Янв 17, 2010 8:15 am Заголовок сообщения: Re: Мини движок на PHP для вывода данных из базы в HTML |
|
|
| ynkas писал(а): | Нужно мне было как-то показать знакомым свою базу фильмов,
для этого нужно либо устанавливать программу, на что не каждый согласиться,
Задался я целью выцепить все данные из базы и вывести в HTML в наиболее удачный, на мой взгляд,
шаблон от amm - indian...
а если есть прямой IP, то и вовсе USB носитель не нужен.
|
Спасибо за реализацию!
А как добавить туда тех данные по файлам видео?
И как сделать что бы Дополнительная информация всегда была открыта?
И как это дело можно открыть для доступа в сети интернет,посредством DynDNS?
И в плане безопасности что следует сделать?
Ряд вопросов  |
|
| Вернуться к началу |
|
 |
GhOsT_MZ2 Пользователь
Зарегистрирован: 16.01.2010 Сообщения: 49
|
Добавлено: Вс Янв 17, 2010 10:45 am Заголовок сообщения: Re: Мини движок на PHP для вывода данных из базы в HTML |
|
|
| Stuntman писал(а): | И как это дело можно открыть для доступа в сети интернет,посредством DynDNS?
И в плане безопасности что следует сделать? |
1) Лучше не пользоваться готовыми сборками веб-серверов, так как они подготовлены всего лишь для отладки скриптов и имеют максимальные привелегии в системе, а также кучу ненужных вещей, таких как CGI к примеру, ну и различных дополнений к PHP и MySQL, которые по умолчанию выключены. Поэтому лучше порыться в интернете на предмет установки и безопасной настройки Apache+PHP, благо таких статей масса.
2) Если не иметь ни малейшего представления о том что делаешь, то гораздо безопаснее делать все на виртуальном-хостинге (бесплатном), а не на своем компе. Но тут можно столкнуться с проблемой синхронизации базы и ее формата. Это доставит дискомфорт, так как базу придется каждый раз конвертировать в другой формат (MySQL скорей всего) и заливать на сервер, так как врядли там удастся использовать базу MS Access.
ynkas, ну дело в принципе твое, я лишь указал на то, что меня смутило) Но все же, раз уж выложил, то хоть SQL-инъекцию прикрой, которая и не особо навредит, но может быть не совсем приятно) |
|
| Вернуться к началу |
|
 |
ynkas Опытный пользователь
Зарегистрирован: 14.06.2008 Сообщения: 241
|
Добавлено: Вс Янв 17, 2010 7:35 pm Заголовок сообщения: |
|
|
Перезалил архивы с учетом пожеланий, все в 1м после
Последний раз редактировалось: ynkas (Вт Фев 02, 2010 11:08 am), всего редактировалось 1 раз |
|
| Вернуться к началу |
|
 |
Pertsov Пользователь
Зарегистрирован: 26.04.2007 Сообщения: 39 Откуда: Ярославль
|
Добавлено: Пн Янв 18, 2010 10:17 am Заголовок сообщения: |
|
|
ynkas - огромное спасибо. Вы великий человек!!
Если бы не вы я бы так и сидел с несчастным online db - я его раз 10 уже перепахал.
Ухожу тестировать ваш плагин (от моих коллег заранее спасибо) |
|
| Вернуться к началу |
|
 |
iRo Пользователь
Зарегистрирован: 18.01.2010 Сообщения: 34
|
Добавлено: Пн Янв 18, 2010 1:51 pm Заголовок сообщения: |
|
|
Огромное спасибо!!!
Еще не скачал, но такое сам хотел реализовать
меня все мучают - Дай переписать, а какие фильмы у тебя есть и т.д.
а тут послал всех на сайт и они в режиме онлайн видят какие фильмы у меня есть )))
супер!!!!
PS так как еще не получил ключик (только оплатил) на AMM
скажите, тут получается что движек php подключается к базе АММ
и генерит html ? просто у меня есть домен с порталом и дома статический IP. вот бы прям с портала подключаться к дому ))) |
|
| Вернуться к началу |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|