четвер, 24 липня 2008 р.

Как создать ротатор баннеров?

Создаем ротатор баннеров прямо сейчас.

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

Начинаем:

1. В PHP страницы своего сайта вставьте такой код, его нужно вставить в то место, где должны появляться баннеры. Не делайте в коде ни каких изменений, вставляйте так, как есть:

<?php
$ourFile = fopen("bannerlist.txt", "r");
for ($i=0; $s=fgets($ourFile, 10000); $i++) {
if (mt_rand(0, $i) == 0) $line = $s;
}
echo $line;
?>

2. С помощью обычного блокнота создайте текстовый документ, и обзовите его так: bannerlist.txt Когда будете файлу давать имя, пишите только bannerlist, точка и txt это рассширение файла, оно само встанет куда надо.

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

неділю, 20 липня 2008 р.

Преобразователь регистра

Опять же нам понадобятся 2 функции

1ая функция будет возвращать строку символов нужного регистра

function _alf($type=0){
return
$type
? 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM'
: 'йцукенгшщзхъфывапролджэячсмитьбюqwertyuiopasdfghjklzxcvbnm';
}
?>

В зависимости от переменной $type возвращается строка символов в верхнем регистре или строка эквивалентных символов в нижнем регистре

Следующая функция будет изменять регистр


function changeReg($str,$type=1){
return
$type
? strtr($str,_alf(0),_alf(1))
:
strtr($str,_alf(1),_alf(0));
}
?>

В зависимости от переменной $type в строке преобразуется регистр
strtr($str,_alf(0),_alf(1)) - от нижнего в верхнему
strtr($str,_alf(1),_alf(0)) - от верхнего к нижнему

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


function changeReg($str,$type=1){
return
$type
? strtr($str,_alf(0),_alf(1))
:
strtr($str,_alf(1),_alf(0));
}

function
_alf($type=0){
return
$type
? 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM'
: 'йцукенгшщзхъфывапролджэячсмитьбюqwertyuiopasdfghjklzxcvbnm';
}

echo
changeReg('Hello',1);

?>

Генератор паролей

Во-первых нам нужна функция генерации случайного символа

function randSymbol(){
$str = 'qwertyuiopasdfghjklzxcvbnm';
return $str[mt_rand(0,strlen($str)-1)];
}

В переменной $str - указываются символы из которых будет состоять пароль

Разберем подробно строку

return $str[mt_rand(0,strlen($str)-1)];

strlen($str) - кол-во символов в строке $str

mt_rand(0,strlen($str)-1) - случайное число от 0 до [Длина строки $str]-1, т.е. номер символа

$str[mt_rand(0,strlen($str)-1)] - случайный символ из строки

Во-вторых нужна функция создания строки
И тут я хочу использовать, возможно не всем знакомую функцию обратного вызова
preg_replace_callback()

Формат вызова такой:
mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )

Функция заменяет фрагменты текста, удовлетворяющие регулярному выражению
И вот как мы можем применить это:

function genPwd($length = 10){
$pass = str_repeat(chr(32),$length);
return
preg_replace_callback('#.#','randSymbol',$pass);
}
?>

Рассмотрим ее более подробно

str_repeat(chr(32),$length) - генерируем строку строку длинной $length, состоящую из пробелов

#.# - регулярное выражение, вернет каждый символ строки
randSymbol - наша функция генерации произвольного символа
$pass - пустая строка длины $length

preg_replace_callback('#.#','randSymbol',$pass) - каждый символ строки меняется на произвольный символ

Что мы имеем в итоге?
Компактую комбинацию

function genPwd($length = 10){
$pass = str_repeat(' ',$length);
return
preg_replace_callback('#.#','randSymbol',$pass);
}

function
randSymbol(){
$str = 'qwertyuiopasdfghjklzxcvbnm';
return
$str[mt_rand(0,strlen($str)-1)];
}

echo
genPwd(6);
?>

Создающую пароль произвольной длины из заданных нами символов

explode

PHP 3, PHP 4, PHP 5

Функция explode - одна из важнейших функций PHP. Она очень удобна, например, если вам нужно хранить в базе данных строку "родительских" id для какой-либо страницы, а потом распаковывать ее, превращая в отдельные номера-id. В таком случае перед записью в базу массив айдишников объединяется в строку с помощью функции implode, а при необходимости снова превращается в массив при помощи explode.

Синтаксис функции не сложен:
array explode ( string separator, string string [, int limit] )

Аргумент separator делит строку string. Если в строке нет этого сепаратора, то функция поместит всю строку в один элемент массива. Если сеператор вообще пустая строка (""), то функция explode вернет FALSE. Не путайте пустой сепаратор с пробелом (" "), пробел для функции ничем не отличается по сути от запятой или точки.

Если передан аргумент LIMIT (он появляется начиная с версии PHP 4.0.1), массив будет содержать максимум LIMIT элементов, при этом последний элемент будет содержать остаток строки string.

$parents = "12,5,3";
$parentsm = explode(",", $parents);
echo
$parentsm[0]; // 12
echo $parentsm[1]; // 5
echo $parentsm[2]; // 3
?>


Местоположение аргументов separator и string в функции explode строго определено - separator всегда расположен впереди.

Хотя эта функция создает массив, но создает его из строки, поэтому ее принято считать "строковой" функцией.

пʼятницю, 18 липня 2008 р.

Обзор бесплатных хостингов

В последнее время стало очень модно иметь свой сайт. Причем не только для больших и мелких фирм, магазинов, но и для рядовых пользователей, подключенных к интернету. Одни делают обычные странички, другие – крупные сайты и порталы. Однако далеко не каждому по карману платить за хостинг 5-10$ каждый месяц, да и как-то стремно. Зачем вообще платить, когда есть целая куча хостеров, предоставляющих вполне сносные условия. Вот именно таких бесплатных хостеров мы сейчас и рассмотрим.

Читать далее...

суботу, 12 липня 2008 р.

Выбор хостинга - семь раз проверь

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

Читать далле...

Обзор платных хостингов

Изложено краткое описание компаний, которые надают платный хостинг.
Даллее: http://uportal.com.ua/bit/links/web.htm

Интересные блоги

Хочу представить интересные блоги:
http://serhiymatviyenko.blogspot.com/
http://sun-powers.blogspot.com/
http://serhiymatviyenkoinvest.blogspot.com/
http://internet-worker.blogspot.com

пʼятницю, 4 липня 2008 р.

Защита от форс-мажора (резервное копирование)

Знакомая ситуация — веб-проект, на который ушло несчитанное количество человеко-часов был просто уничтожен ошибкой при работе с базой, установкой непроверенного компонента, сбоем в работе системы и тд. Чтобы этого избежать бессмысленной потери времени (а равно нервов и драгоценного сна), рекомендуется делать резервное копирование данных. Резервное копирование необходимо для возможности быстрого и недорогого восстановления информации (документов, программ, настроек и т. д.) в случае потери рабочей копии информации по какой-либо причине. Кроме этого решаются смежные проблемы: дублирование данных и передача данных.

Введение в резервное копирование сайта

В случае с использованием Joomla! надо делать копии базы данных MySQL и файлов системы, что не слишком удобно делать «вручную» из-за:

  1. Отдельного копирования данных MySQL базы.
  2. Отдельного копирования файлов сайта.
  3. Применения разных инструментов для операций с разными типами данных.
  4. Синхронизации состояния базы и состояния файлов проекта.
  5. Выделение из резервной копии файлов сайта: папки с временными файлами, папки с кэшируемыми данными (зачем нам таскать мусор с собой).
  6. Опять же на площадке где Вы размещаете, может не быть доступа по SSH, FTP, инструментов для работы с базами данных.
  7. Сложность (вернее трудоемкость) держать файлы базы, файлы проекта в одном архиве для обеспечения синхронизации данных.
  8. Да и охота работать в привычной обстановке, т.е. в административной панели Joomla!

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

Да и не надо забывать про последующее восстановления системы с резервной копии, если восстановиться с ней не возможно или затруднительно, то смысл в ней

При прочтении выше указанных пунктов, сформировались требования к системе резервного копирования:

  • Надёжность хранения информации. Обеспечивается дублированием информации и заменой утерянной копии другой в случае уничтожения одной из копий. Сохранение копии на другом носителе. Быстрый доступ к резервной копии. Авторизованный доступ к резервной копии.
  • Простота в эксплуатации — по возможности минимизировать участие человека.
  • Быстрое внедрение — лёгкая установка и настройка системы резервного копирования, краткое обучение пользователей.
  • Совместное хранение файлов базы и файлов проекта.
  • Интеграция с панелью Администрирования Joomla!
  • Выборочность — возможность выборки игнорируемых папок проекта.
  • Востановимость — простота восстановления исходного состояния системы.

JoomlaPack — инструмент для создания резервных копий

Нашей командой был локализован и модифицирован компонент JoomlaPack — который соответствует выше перечисленным требованиям и позволяет:

  1. Создавать резервную копию базы данных и файлов проекта в один архив.
  2. Работает в «один клик» мышки.
  3. Сохраняет резервную копию в папку сайта.
  4. Позволяет управлять резервными копиями — удаление, копирование их на ваш жесткий диск.
  5. Производить выборку игнорируемых папок, которые не надо включать в проект.
  6. При создании резервной копии Вы можете выбрать режим архивирования или сжатия в один файл (папку).
  7. При создании резервной копии создает установочный дистрибутив Joomla! с вашими настройками — т.е. делается полная копия всех файлов и базы данных — для восстановления, просто запустите установку и вы получите полную копию вашего сайта.

    Примечание: В качестве установщика используется дистрибутив Joomla! LE 2007 – но работать будет на всех версиях 1.12.

  8. Режим совместимости с MySQL 4.x – 5.x.
  9. Кросбраузерность.
  10. Возможность доступа к резервным копиям с любой точки мира.
  11. Работа пользователям любого уровня компетенции.
  12. Настройки сохраняются в файл конфигурации — очень полезно при сбоях базы, или не при желании увеличивать нагрузку.
  13. Множество приятных особенностей, в частности:
    • Процесс создания резервной копии наглядно показывается на странице.
    • Не происходит аварийных сбоев по причине таймаута сервера.
    • Не происходит сбоев по причине ограничение размера памяти для скрипта.

Установка компонента JoomlaPack

  1. Заходим в административную панель, выбираем в меню «Установка–Компоненты».
  2. Выбираем компонент для установки и нажимаем кнопку «Загрузить и установить»
  3. Компонент успешно установился. Читаем имена тех кто локализовал и модифицировал это чудо, обещаем при случае угостить пивом и нажимаем – Продолжить.

Настройка компонента JoomlaPack

После успешной установки выбираем в меню административной панели «Компоненты–JoomlaPack».

Затем, в панели управления компонентом JoomlaPack




выберем пункт «Базовая конфигурация» и производим базовую настройку компонента. Следим чтобы надпись «Файл конфигурации» была зеленого цвета — тем самым мы обеспечим сохранение результатов настройки. В противном случае меняем права файла конфигурации configuration.php, в корне Joomla, на 777.

И начинаем внимательно просматривать поля настройки:

  • Папка для сохранения резервных копий — куда сохранять резервные копии. По умолчанию стоит joomla/administrator/components/com_jpack/temp. Смените куда вам удобней. Следует учесть — эта папка должна быть доступна для записи. Я рекомендую создать папку «copy» в корне сайта и дать на нее права чтения/записи.
  • Временная папка — куда сохранять временные файлы. По умолчанию стоит joomla/administrator/components/com_jpack/temp. Смените куда вам удобней. Однако обратите внимание, что эта папка должна так же быть доступна для записи. Я рекомендую создать папку «tmp» в корне сайта и дать на нее права чтения/записи.
  • Шаблон имени файла — имя файла резервной копии, по умолчанию site-[HOST]-[DATE]-[TIME]. В [] задаются шаблоны переменных. Не надо менять без необходимости, и так неплохо.

Расширенные настройки JoomlaPack

  • Совместимость при экспорте БД MySQ — выбираем режим совместимости формата экспорта баз данных. Рекомендую поставить режим совместимости с версией 4.х. он позволяет без проблем импортировать в версии и выше, но избавит от проблем использования на большинстве серверов.
  • Политика создания списка файлов — при большом сайте следует выбрать за несколько раз, при небольшом за один раз. Отражается на скорость обработки и стабильность работы.
  • Политика сохранения БД MySQL — при большом сайте следует выбрать за несколько раз, при небольшом за один раз. Отражается на скорость обработки и стабильность работы.
  • Сжать архив после создания? — Предлагает сжать резервную копию в один файл ZIP (рекомендую), не сжимать (точная копия сайта с базой в виде инсталляционной версии), сжимать – сжимает файл в один, но не архивирует.

Настроили? Нажимаем «Сохранить» вверху экрана для внесения изменений в конфигурацию компонента. После этого возвращаемся в панель управления компонентом и проверяем состояние JoomlaPack (справа от кнопок панели управления должно быть написано: Готовность. В противном случае исправляем настройки. Затем переключаемся на вкладку «Подробно» и проверяем, что там у обоих пунктов состояние: Доступен на запись. В противном случае или меняем папки в настройках, или выставляем права на папки.

Создание резервной копии с помощью JoomlaPack

Предварительные приготовления закончены, теперь создаем резервную копию. Для этого в панели управления JoomlaPack нажимаем кнопку «Создать резервную копию». Нас предупреждают чтобы мы уселись по удобней, завершили все сторонние процессы с файлами Joomla! (если они были) и выразили свое согласие, нажав на кнопку: «Создать резервную копию».

Резервная копия создается. Пожалуйста не покидайте это страницы, не останавливайте ее, не обновляйте, до завершения операции. В случае ошибки создания резервной копии система постарается сообщить Вам что она предпринимает для успешного завершение операции. В случае критической ошибки, такой как выделения места, времени, попробуйте сменить режим работы в настройках — поставьте проходить несколько раз.

После того, как резервная копия создана можно перейти в раздел Управление резервными копиями и проверить, появилась ли там резервная копия.

Управление резервными копиями в JoomlaPack

Управление резервными копиями производится в специальном разделе компонента JoomlaPack




Чтобы попасть в менеджер резервных копий необходимо в панели управления JoomlaPack нажать кнопку «Управление резервными копиями».

Сразу после создания резервной копии рекомендуется сохранить ее на локальный диск. Для этого нажмите «скачать» расположенную в той же строке что и название вашей резервной копии. После нажатия на кнопку, браузер предложит Вам стандартный диалог сохранения файла, учтите он может отличаться от версии используемого браузера. Также тут можно удалить старые резервные копии, чтобы они не занимали места. Учтите что при создании бекапа делается копия всех папок на сервере, и при большем количестве уже созданных резервных копий они буду попадать в архив, тем самым размер архива будет неоправданно расти.

Для указания системе, о том какие папки не надо включать в архив перейдите в раздел «Исключить из резервной копии» в административной панели компонента. И в предложенном списке укажите папки которые не надо добавлять в резервные копии., в частности выше указанные «copy» и «tmp». После указания папки, JoomlaPack попросит Вас подождать для применения изменений.

Если вы изменили список папок, то после этого рекомендуется создать еще одну резевную копию, без этих папок, и сохранить ее на свой диск.

Восстановление данных из резервной копиии

При восстановлении системы с резервной копии в режиме установки, скопируйте содержимое архива на хостинг, заменив все файлы, и удалите или переименуйте файл «configuration.php» в противном случае, Вы не сможете запустить инсталлятор.

Внимание: если при восстановлении сайта из резервной копии Вы не хотите восстанавливать базу данных, то просто не отмечайте пункт «Удалить существующие таблицы».

Заключение

Все! Теперь наша система надежда готова к превратностям судьбы. Также следует заметить, что так можно не только делать резервную копию, но переносить сайт на хостинг, клонировать сайты, создавать свои сборки. Почему это возможно? Да потому что создается ПОЛНЫЙ ИНСТАЛЯТОР Joomla! со всеми Вашими настройками, базой данной, установленными дополнениями, всеми файлами вашего сайта.

Но все таки для создания сборок рекомендую подождать выхода финальной версии нашего «Сборщика».

Скачать дистрибутив JoomlaPack Joomlaportal Edition можно здесь:

http://www.joomlapack.net/news/releases/111-stable-release.html


Источник:
http://www.uportal-studio.org.ua