... Дальше запускаем install.php Всё, дор готов к работе...
... Открываем config.php в блокноте, меняем значения переменных: $CONF['door_name'] - сюда вписываем название дора (то, что будет в теге <title>) $CONF['feed_href'] - адрес фида, куда будет посылаться трафик с дора $CONF['feed_height'] - высота фрейма, в котором показывается выдача фида $CONF['redirect'] - использовать редирект? true или false...
... Update: Важно! Если ваш на вашем хостинге в php не включена директива allow_url_fopen, то новые страницы в дор добавляться не будут! Создайте файл test.php c содержанием: <?phpphpinfo(); ?> Откройте в браузере и найдите allow_url_fopen...
... Ещё, поскольку мы ограничили поля ввода в html, неплохо бы сделать substr полученным данным, то есть обрезать в строке все лишние символы: $title=substr(az09($_POST['title']),0,20); Этого набора функций вполне хватает для безопасной работы с данными из форм и т.д...
... Напишем несколько функций: //Эта функция проверяет, если в строке есть хотбя бы один символ, //отличный от: a-z, 0-9, она возвращает пустое значение function az09($str) { if(ereg("^([a-zA-Z0-9]+)$",$str)) return $str; else return ""; } //Проверяем E-mail на валидность...
... Вешаем нужную нам функцию на нужную переменную и получаем обработанный результат: $title=az09($_POST['title']); Если в $_POST['title'] содержались символы, отличные от a-z, 0-9, функция вернёт пустую строку...
... Ещё, поскольку мы ограничили поля ввода в html, неплохо бы сделать substr полученным данным, то есть обрезать в строке все лишние символы: $title=substr(az09($_POST['title']),0,20); Этого набора функций вполне хватает для безопасной работы с данными из форм и т.д...
... Но мы будем хитрее, и напишем вот такую функцию: function my_md5($str) { $hash=trim($str); for($i=0; $i<strlen($str); $i++) $hash=md5($i.$hash."my_word"); return $hash; } Как видите, расшифровать такую строку будет непросто...
... Поскольку алгоритм md5() выдаёт строку длины 32 символа, значит их конечное число, а паролей может быть бесконечно много...
... Что касается редиректов, которые происходят уже непосредственно внутри php-скрипта, то можно устроить вот такой редирект обращениям с www: if(!strstr($_SERVER['HTTP_HOST'],"www.")) { $host = substr($_SERVER['HTTP_HOST'],4); $uri = $_SERVER['REQUEST_URI'] Header("HTTP/1.1 404 Not Found"); Header("Location:http://".$host.$uri); exit; } Но всё же те задачи, которые можно решить ресурсами апача, нужно ими и решать...
... Итак, чтобы не заставлять бота два раза бегать по одним и тем же документам, и чтобы сэкономить наш трафик, который уходит в небытие, напишем в файле .htaccess в корне нашего сайта такие волшебные строчки: RewriteEngine On RewriteRule ^.htaccess$ - [F] RewriteBase / RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L] Строки пронумерованы только для наглядности, не вздумайте писать эти циферки в самом файле :) Итак, первой строкой мы включаем возможность преобразования урлов, второй - не разрешаем смотреть содержимое файла .htaccess...
... Четвёртой строкой устанавливаем путь от корня папки, в которой лежит .htaccess до директории, в которой будем производить замены урлов...
... Нужно всего-то дописать перед RewriteCond такую строчку: RewriteCond %{REQUEST_FILENAME} !-d Которая проверяет, является ли строка (то есть кусок урла от RewriteBase) не директорией...
... И опытым путём выяснилось, что строка: RewriteBase /blog/ На результат редиректа не влияет ни коим образом...
... Открываем в браузере http://yourdomain.com/%catalog_dir%/index.php вписываем требующиеся настройки, жмём старт и идём пить чай пару часов...
... Первым делом заглянем в /config/rewrite.php и изменим урлы страниц, добавив туда нужных кеев типа download, album, mp3, mp3search и т.д...
... Например в /inc/artist.php найдём такую строчку: if($i<3) $firstAlbums .= " - ".$result["_name"]; и изменим её на: if($i>$query->numRows()-4) $firstAlbums .= " - ".$result["_name"]; В /inc/album.php проделаем тоже самое только с треками...
... Нам нужно будет создать функцию к примеру allmusic(), и прописать в /inc/artist.php строчки: $mp3Content = allmusic($result["_name"]); а затем $tpl->assign("MP3_CONTENT", $mp3Content); Ну и в шаблоне указать где-нибудь это самое {MP3_CONTENT} Получим очень много страниц с нормальным контентом, а все знают что контент - король...
... Что получилось видно тут: <?php $file=file_get_contents("http://www.google.com/search?q=noulake &hl=en&start=0&sa=N"); $str = "\<h2 class=r\>(([\r\n])*[\s]*)\<a href=\"([^\"]+)\"([^\>]+)\>(.+)\<\/a\> (([\r\n])*[\s]*)(\<br\>)?(([\r\n])*[\s]*)\< \/h2\>(.*)\<td class=\"j( hc)?"\>(([\r\n])*[\s]*) \<font size=-1\>(<span class=f\>(.+)\<\/span\> (.+)\<br\>)?((.*)\<br\>)?\<span class=a\>"; preg_match_all("/$str/Uis",$file,$matches); for($i=0; $i<count($matches[1]); $i++) { $serp[$i]['title'] = $matches[5][$i]; $serp[$i]['description'] = $matches[18][$i]; $serp[$i]['url'] = $matches[3][$i]; } print_r($serp); ?> Переносы строк в урле гугловой выдачи в строке регулярного выражения сделаны специально, чтобы не растягивать всё по горизонтали, когда будете пихать это в код, нужно будет собрать в одну строчку...
... Что получилось видно тут: <?php $file=file_get_contents("http://www.google.com/search?q=noulake &hl=en&start=0&sa=N"); $str = "\<h2 class=r\>(([\r\n])*[\s]*)\<a href=\"([^\"]+)\"([^\>]+)\>(.+)\<\/a\> (([\r\n])*[\s]*)(\<br\>)?(([\r\n])*[\s]*)\< \/h2\>(.*)\<td class=\"j( hc)?"\>(([\r\n])*[\s]*) \<font size=-1\>(<span class=f\>(.+)\<\/span\> (.+)\<br\>)?((.*)\<br\>)?\<span class=a\>"; preg_match_all("/$str/Uis",$file,$matches); for($i=0; $i<count($matches[1]); $i++) { $serp[$i]['title'] = $matches[5][$i]; $serp[$i]['description'] = $matches[18][$i]; $serp[$i]['url'] = $matches[3][$i]; } print_r($serp); ?> Переносы строк в урле гугловой выдачи в строке регулярного выражения сделаны специально, чтобы не растягивать всё по горизонтали, когда будете пихать это в код, нужно будет собрать в одну строчку...
... Системные требования: php 5, Zend Optimizer 3.* Функция mail() и библиотека Curl для php Safe mode = Off (Если эта директива на вашем хостинге включена, возможно не все букмарки будут работать, но постить будет) Спешу вас обрадовать, что любой современный нормальный хочтинг всеми перечисленными пунктами обладает...
... Ах, да, ещё на сайте присутствуют в огромных количествах всякие анимированные гиф картинки, ненужные стрелочки, бегущие строки, а на страницах, которые в меню есть, но заполнять их лень или чаще всего просто нечем, стоит такая большая, на всю страницу картинка "Under Construction"...