CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Дайте жалобную книгу!

Данил КЛИМЕНКО

Если вы не были в гостевой книге какого-либо сайта, считайте, что вы не были на этом сайте вообще. Не мечтали ли вы каждое утро перед выходом в школу/университет/на работу, проверяя свой e-mail, обнаруживать новое доброжелательное сообщение в гостевухе? Если да, то эта статья именно для вас.

Для тех, кто не знает, что такое гостевая книга. Сомневаюсь, что такие есть, но все же. Гостевая книга — это страница вашего сайта, где ваши посетители будут сообщать свое мнение о сайте, о размещенной на нем информации, о том, что «здеся был Жёрик» и другие приятные вещицы. Созданием такой страницы мы сегодня и займемся. Многие скажут, что в Интернете много сервисов, где есть уже готовые скрипты гостевых книг, достаточно только зарегистрироваться и поставить на сайте ссылку. Но ведь гораздо приятнее, когда посетители похвалят вас за то, что вы умеете делать такие замечательные гостевушки, а то и автограф ненароком попросят :-).

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

Для реализации этого плана создайте 3 файла: index.php, guest.dat и add.php. Файл index.php будет отображать созданные сообщения и содержать форму для добавления новой записи. Файл guest.dat — для хранения записей. Каждая строка в этом файле будет соответствовать одной записи. А файл add.php будет добавлять запись, отсылать уведомление о новой записи вам на e-mail и переадресовывать браузер обратно на index.php. Дизайн гостевой книги тоже вещь немаловажная, но я думаю, с этим вы разберетесь и сами.

Логичнее сначала заняться index.php. Открываем его в любимом текстовом редакторе и прописываем:

Разберем строки, которые могут вызвать у вас затруднения. Строка $all=file("guest.dat"); загружает в массив $all построчно содержание нашего guest.dat. Функция File практически полностью заменяет сочетание fopen(), fget() и fclose() — она делает то же самое, но данные выдает в виде массива. Затем строкой $count=count($all); мы создаем переменную $count и придаем ей значение, обозначающее количество записей. Напомню, что каждая строка документа guest.dat является отдельной записью. Затем строками

мы выводим содержание этого массива в браузер. Обратите внимание, мы создаем не простой цикл, а обратный, чтобы самая последняя запись отображалась сверху. Затем идет чистый HTML. Мы создаем якорь add, чтобы пользователь с начала страницы, кликнув по ссылке Добавить, мог сразу перейти к добавлению записи, а потом создаем форму с текстовыми полями и двумя кнопками. Поле с именем name передает имя посетителя, поле email — адрес электронной почты, hp — домашнюю страницу, а message, соответственно, текст сообщения. Здесь, вроде бы, все понятно. Теперь перейдем к add.php, на который и отправляется форма, после заполнения и нажатия кнопки Добавить. Здесь начинается самое интересное:

Первыми семью строками мы форматируем содержания переменных таким образом, чтобы они правильно отображались у нас на странице. Первые две строки удаляют из текста сообщения HTML-тэги. Точнее, не удаляют, а заменяют значки < и > специальными символами-кодами: &lt; и &gt;. Затем идут махинации с именем и e-mail'ом посетителя. Вот из этих переменных уже полностью удаляются HTML-тэги. Строками $name = StripSlashes($name); $message = stripslashes($message); мы заменяем все BackSlash’ы \ на простые /. Строка $message = ereg_replace("(\r\n|\n|\r)", "<br />",$message) ищет в тексте сообщения, переносы строк и заменяет их HTML-тэгом <BR>. Если этого не сделать, одно сообщение при записи в файл займет несколько строк, поэтому при чтении сообщений оно будет неправильно отображаться. Затем, открывается для записи файл guest.dat, проверяются переменные, хранящие значения E-mail'а и сайта посетителя, и формируется единая строка $text, которая и будет добавлена в файл guest.dat. Так что если у посетителя нет e-mail'а или сайта, эти поля не будут сохраняться вообще, чтобы не показывать пустые ссылки. Потом идет запись в файл — как мы уже договорились, в guest.dat. Теперь, чтобы вы не лазили всякий раз к себе на сайт и не проверяли таким образом гостевую на наличие новых сообщений мы сделаем так, чтобы скрипт отсылал вам это радостное известие прямо на e-mail. Отправку писем на e-mail вам поможет организовать функция Mail. Выглядит она таким образом:

Параметр to указывает адрес e-mail, на который будет отправлено письмо, subject указывает тему письма, message содержит текст письма. Параметр additional_headers поможет вам добавить еще что-нибудь к заголовку письма, например, можно сразу указать, кем было добавлено сообщение. Мы этот параметр опускаем, потому что он нам не нужен. В нашем скрипте в тексте письма указывается имя, введенное посетителем, адрес его сайта, электронная почта, дата добавления записи и IP-адрес. Спешу вас предупредить: если вы пользуетесь бесплатным хостингом, по умолчанию функция mail может быть недоступна. Для того чтобы ее активизировали, вам нужно связаться с администрацией и обговорить возможность ее активации. Такой уж он, бесплатный сыр :-). Последняя неразобранная строка —Header("Location: index.php");. Она переадресовывает браузер на страницу отображения всех записей —index.php. Вместо index.php может быть указан путь к любому документу, причем не только к локальному файлу. Вот и все! Если будут вопросы — пишите на switch@mail.zp.ua. До следующих встреч на страницах МК!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov