- •Оглавление
- •Что такое интернет
- •Готовимся к созданию Web-страниц
- •Железо, железо и еще раз железо...
- •Домашняя эргономика — безопасность прежде всего!
- •Программное обеспечение для Web-мастера
- •Выбор хостинга
- •Знакомьтесь — РНР
- •История создания РНР
- •Установка РНР
- •Настройка РНР для Apache
- •Виртуальные хосты в Apache
- •Тестирование РНР
- •Установка и настройка дополнительных модулей
- •Переносимость и совместимость
- •Синтаксис РНР
- •Возможности РНР
- •Работа с базами данных
- •HTTP-аутентификация средствами РНР
- •Работа с изображениями
- •Поддержка закачки файлов
- •Поддержка HTTP-cookie
- •Использование регулярных выражений
- •Обработка ошибок
- •Управление электронными письмами
- •Вывод на экран и переменные в РНР
- •Простейшие арифметические операции
- •Простейшие логические операции
- •Циклы
- •Массивы
- •Работа со строками
- •Сессии
- •Программирование на РНР
- •Сравнение чисел
- •Вложение файлов в документ
- •Простейший счетчик посещений
- •Обработка форм
- •Отправление почты
- •Отправление письма в HTML-формате
- •Дата по-русски
- •Счетчик посещений с использованием базы данных
- •Счетчик персональной посещаемости
- •Сохраняем информацию о посещениях
- •Ах, баннеры, баннеры...
- •Счетчик посещений с выводом информации на экран
- •Счетчик сессий
- •Создание динамического меню
- •«Грабим» странички
- •Голосование на сайте
- •Гостевая книга
- •Технология создания
- •Свой чат — это просто
- •Использование специального привата
- •Интернет-магазин
- •Технология создания
- •Сервисы интернет-магазина
- •Архив рассылок
- •Совет первый: а нужно ли вам это?
- •Совет второй: забудьте все советы
- •Пример системы безопасности
- •HTTP-аутентификация в РНР
- •Защита программы
- •РНР в вопросах и ответах
- •Приложения
- •Приложение 3. Некоторые функции РНР
- •Приложение 4. Cookie
- •Приложение 5. Методы передачи данных POST и GET
- •Приложение 6. Время Unix
190 |
Программирование на РНР |
Это значит, что если переменной $nu присвоить значение ur5, то значение $nu будет равно переменной $ur5. Например:
$ur5 = 1 0 ;
$nu = "ur5";
echo $nu;
Результат на экране — число 10.
Вот и все хитрости. Если вы не смогли понять, откуда взялась переменная $nom, могу подсказать: пришла из предыдущего файла с формой. В принципе, ее можно было найти и здесь, но проще сформировать именно там и передать сюда. Попробуйте модифицировать этот код так, как нужно именно вам, и разберитесь с работой форм, это избавит вас в дальнейшем от головной боли по поводу их работы.
Архив рассылок
Если на вашем сайте посетители могут подписаться на рассылку, совсем не лишним будет организовать архив рассылок. Конечно, это не нужно, например, для рассылки прайса фирмы, а вот для новостей или новинок будет очень полезным. Этим мы одновременно выполняем два действия: во-первых, позволяем посетителям просматривать неполученные ранее, просто пропущенные или удаленные рассылки без обращения к администратору. Во-вторых, гарантируем наращивание информации на сайте для поисковых систем. Они в последнее время стали интеллектуальными и индексируют только полезную информацию, которой является, например, хорошая рассылка новинок.
Самое главное, что нам понадобится, — это собственно сам архив рассылок. Сначала нужно выделить для этого отдельный каталог и определиться с форматом хранимых рассылок. Для каждого сеанса рассылки максимально может понадобиться хранить по три файла — обычный html с собственно рассылкой, zip для тех, кто
Архиврассылок |
191 |
предпочитает скачивать информацию, и, наконец, текстовый файл с кратким содержанием или оглавлением рассылки (чтобы пользователь представлял себе, что и зачем он скачивает или смотрит). Причем файлы html и zip рекомендую хранить в разных подкаталогах. Это нужно для увеличения быстродействия всей системы в целом, так как осуществлять поиск будем по файлам, и лишние в этом каталоге нам ни к чему.
Итак, для хранения кода программы нам понадобится всего один файл. Назовите его так, как вам нравится, это не принципиально, и сделайте ссылку на него на своем сайте — «Архив рассылок». Теперь откройте сам файл в текстовом редакторе, и можно начинать программировать.
$katalog_archiv = "archiv/";
В этой переменной у нас хранится имя каталога, в котором находятся сами рассылки. Такие переменные лучше определять заранее, так как может понадобиться их изменить. Это будет легко сделать, поменяв значение переменной всего один раз, в начале.
Начало имени всех файлов у нас будет такое:
$name_temp = "Archiv_News!_";
Имена могут быть абсолютно любыми, так как отбрасываются
впроцессе работы, но с ними должны совпадать реальные имена
вкаталоге с архивом рассылок. Я, для удобства, принял для себя такой формат имен:
Начальное имя_число_месяц_год выпуска рассылки
Этого формата следует придерживаться для всех трех компонентов рассылки: файлов html, zip и txt. Последний также является файлом в формате html, но имеет расширение txt.
Открываем наш каталог с рассылками и ищем в нем файлы с расширением txt:
$dir_archiv = opendir{$katalog_archiv);
while($f = readdir($dir_archiv))
{
192 |
Программирование на РНР |
Вот почему я рекомендовал не хранить здесь остальные файлы, так как поиск усложняется, если файлов становится слишком много.
Сначала разделим имя проверяемого файла на составляющие, что понадобится нам в дальнейшем:
$f1 = trim{str_replace (".","~", $f) ) ;
@list ($id_name, $id_ras) = split ("~", $f1);
И вот, наконец, найден текстовый файл, можно начать вывод сообщения, так как это просто информация об очередной новинке, которую нужно показать на экране:
if ($id_ras == "txt")
// блок вывода сообщения об очередной дате новинки
Разделяем имя файла таким образом, чтобы выделить из него еще и дату рассылки. Нам не надо хранить ее отдельно, так как она присутствует в самом имени файла:
$f2 = trim(str_replace ($name_temp,"", $f)); $f2 = trim(str_replace (".txt","", $f2));
$f1 = trim{str_replace ("_","~", $f2)); @list ($den, $m, $god) = split ("~", $f1);
$q[] = "";
$q[] = "января"; $q[] = "февраля"; $q[] = "марта"; $q[] = "апреля"; $q[] = "мая"; $q[] = "июня";
Архиврассылок |
193 |
$q[] = "июля"; $q[] = "августа"; $q[] = "сентября"; $q[] = "октября"; $q[] = "ноября"; $q[] = "декабря";
if ($m == "01") $m = 1; if ($m == "02") $m = 2; if ($m == "03") $m = 3; if ($m == "04") $m = 4; if ($m == "05") $m = 5; if ($m == "06") $m = 6; if ($m == "07") $m = 7; if {$m == "08") $m = 8; if ($m == "09") $m = 9;
$m = $q[$m];
Алгоритм немного грубый, но вы можете проявить свою фантазию и придумать что-то более простое и изящное.
Выводим на экран сообщение о рассылке и дате ее выхода:
echo "<р><b>Рассылка от $den $m 20$god года: </b><br>
Содержание:<br><br>";
Подготавливаем к рассылке текстовый файл:
include ("$katalog_archiv$name_temp$f2.txt");
Несмотря на расширение, HTML-код в нем будет выполнен. Осталось вывести ссылки для просмотра и скачивания нашей рассылки:
