» » GBook
Цей PHP скриптдопоможе вам реалізувати функцію гостьової книги на вашому сайті. Без використання будь-якої Бази Даних MySQLвона не потрібна, щоб скрипт працював. Скрипт Gbook включає безліч потужних SPAM фільтрів. А також захист пошти від СПАМЕрів.
У скрипті є 2 txt файли – header.txt та footer.txt. За допомогою цих файлів ви зможете доповнити рекламними блоками або лічильниками свою гостьову книгу. Повністю змінити шаблон під стиль вашого сайту, теж не викличе особливих труднощів. Програма Gbook може бути перекладена будь-якою мовою світу. Просто змініть слова в одному файлі language.
Переваги сценарію.
- Підтримка смайликів.
- Не потребує БД MySQL. Усі повідомлення зберігаються у файлі.
- Оповіщення адміна поштою, про нове повідомлення у Гостьовій Книзі.
- Містить 2 кроки антиспам перевірки.
- Можна забанити IP-адресу, щоб не змогли залишати повідомлення.
- Отримуйте повідомлення на пошту щоразу, коли хтось підписав вашу гостьову книгу.
- Перевірка повідомлення: список заборонених (не цензурних) слів до публікації. Прикривається ****
- Функція антифлуд. Для того, щоб користувачі не публікували повідомлення так часто.
- Особисті повідомлення.
На тему створення гостьових книг було написано велику кількість статей, проте більшість із них розкривали процес написання не повністю, а частково. До того ж, написані книги були максимально прості, і не могли нічого, як додавати повідомлення. У цій статті я намагатимуся докладно описати процес створення гостьової книги з непоганим набором функцій. Гостьова книга написана на PHP з використанням текстових файлівзберігання даних.
Отже, перш за все нам потрібно розібратися з файлами. Їх у нас буде чотири, хоча можна поєднати і в один, але це вже вам вирішувати.
Файл №1 - guestbook.inc.dat
Створимо його, залишимо порожнім, і вкажемо йому права (0777-*nix, rwx/rwx/rwx)
Сюди записуватимуться всі повідомлення… Так-так! Саме в один файл! Але не лякайтеся. Мною особисто перевірялося на відомому сервері WallSt. база даних розміром 5, 10, 100, 250, 500, 1000 Кб! Гальмування було лише на 1000 Кб книзі, повірте, це понад 3000 середніх записів! Вам вистачить її з лишком.
Файл №2 – config.inc
$gb_on_page = "10";//кол-во мессаг в гостевой на стр. $name_max_size = "15"; // максимальная длина ника $email_max_size = "50"; // максимальная длина мыла $message_max_size = "1000";//максимальная длина сообщения $recipient ="Name.Sirname@email.zone"; $subject = "Новое сообщение на сайте"; $site_name = “Ваш сайт”; ?>
Файл №3 – gb.php
$guesttext
"; ) $col=$c/$gb_on_page; echo "
Всього повідомлень: $c"; echo "
Файл №4 - gbadd.php
include("config.inc");
/* укажем, что данные должны передаться скрипту из формы... иначе можно было бы отправить сообщение примерно таким образом:
http://myhost.ru/gb/gbadd.php?name=admine&email=you@#admin.com&guesttext=message_have_been_posted спасибо CompDocs */
$name=$_POST["name"];
$email=$_POST["email"];
$guesttext=$_POST["guesttext"];
if ($name !="" and $guesttext !="")
{
$date=date("d.m.Y");
$time=date("H:i");
// заменяем двоеточия
$guesttext = ereg_replace(":::",":::",$guesttext);
$name = ereg_replace(":::",":::",$name);
$email = ereg_replace(":::",":::",$email);
// разрешим только шрифты, картинки и списки
// теги как украшение
$guesttext = ereg_replace("<", "<", $guesttext);
$guesttext = ereg_replace(">", ">", $guesttext); $name = ereg_replace("<", "<", $name);
$name = ereg_replace(">", ">", $name); $email = ereg_replace("<", "<", $email);
$email = ereg_replace(">", ">", $email); // немає лапок! 2=DeaD= thanX! $name = ereg_replace(""", """, $name); , $email); ereg_replace(" +"," ",$name); $email=ereg_replace(" +"," ",$email); //праворуч і зліва $name=trim($name); ); $guesttext=trim($guesttext); // переклад рядка $guesttext = ereg_replace("n", "
", $guesttext); // щоб весь текст був на одному рядку! $guesttext = ereg_replace("r", "", $guesttext); // мегалапки $name = stripslashes($name); e-mail); ^- /", "- ", $guesttext); // число-число $guesttext = preg_replace ("/(d)-(d)/", "\1–\2", $guesttext); // слова з дефісом $guesttext = preg_replace ("/(S+)-(S+)/", "
Ну а тепер банановий 🙂 На закуску хочу запропонувати вам набір BB-codes, які допоможуть вашим відвідувачам урізноманітнити повідомлення в гостьових книгах 🙂
Привіт, друзі! Сьогодні ми поговоримо про створення гостьової книги дJoomla, що дозволяє користувачам залишати свої записи з питаннями, думками та відгуками. Для цієї мети нам знадобиться безкоштовний, простий, зручний і з російським інтерфейсом компонент, що підтримує всі існуючі версії Joomla. Під усі ці визначення підходить!
Гостьова книга – ще один чудовий спосіб налагодити контакт із користувачами вашого сайту. Нагадаю, що раніше ми вже розглядали створення форми зворотного зв'язку та додавання на сайт.
За своєю структурою гостьова нагадує сторінку без будь-якого контенту, але з коментарями. Відмінність тільки в порядку додавання записів: свіжі коментарі додаються до списку, а в гостьовій книзі останні записи розташовуються навпаки. Крім цього, під гостьову книгу виділяється окрема сторінка, тоді як коментарі розташовуються на різних сторінках як доповнення до їхнього контенту.
Хоча що я про це розповідаю! Думаю, більшість із вас багато разів стикалися з нею на різних сайтах, бо ця фішка дуже популярна. Досить розговорити, давайте приступимо до практики.
Установка та русифікація Phoca Guestbook
Перш ніж приступати до встановлення компонента Phoca Guestbook, його слід завантажити. Ідемо на офіційний сайт розробників, де нам слід завантажити дві речі:
Встановіть компонент і мовний пакет через . При установці Phoca Guestbook з'явиться таке вікно:
Оскільки ми встановлюємо компонент Phoca Guestbook, а не оновлюємо його, натискаємо «Install». Установка пройде автоматично, і після її закінчення в розділі «Компоненти» з'явиться новий підпункт – Phoca Guestbook. У нього ми й заходимо.
Створення гостьової книги у Joomla 2.5
Інтерфейс повинен бути російською мовою, що значно спростить роботу з Phoca Guestbook та створення гостьової книги Joomla. Переходимо в розділ «Гостьові книги» і натискаємо кнопку створити в тулбарі.
Все, що від нас вимагається, це ввести назву гостьової в поле заголовка і натиснути «Зберегти та закрити» у тулбарі.
Отак швидко ми створили гостьову книгу! Тепер слід вивести її на сторінку сайту.
За створення сторінок відповідають пункти меню Joomla, тому створюємо новий пункт меню з типом "Phoca Guestbook - Гостьова книга". В обов'язкових параметрах вибираємо щойно створену гостьову та тиснемо «Зберегти та закрити».
Налаштування гостьової книги, захист від спаму
Перед тим як гостьова книга прийме перших користувачів, її ще необхідно налаштувати та захистити від спаму. На панелі керування компонента Phoca Guestbook скористаємося кнопкою «Налаштування».
Всі опції повністю російською та забезпечені підказками, які з'являються при наведенні на них курсору миші, тому розібратися з ними буде нескладно.
В закладці «Форма» розміщуються параметри форми для складання повідомлення: які поля будуть присутні, позиція по відношенню до записів, розміри вікна редактора і деякі інші опції.
У розділі «Основні» представлені наступні опції:
- Показувати перевірку користувача — при відключеній перевірці, гості сайту можуть використовувати для залишення повідомлення імена та адреси електронної пошти зареєстрованих у Joomla користувачів.
- Тільки зареєстровані користувачі – гостьова книга стане доступною лише зареєстрованим відвідувачам;
- Розглядати повідомлення – перед тим, як запис з'явиться, вона має пройти модерацію та бути схвалена адміном Joomla. Працювати із записами слід через розділ "повідомлення" компонента Phoca Guestbook.
- Надіслати Email — на email обраного користувача Joomla надходитиме лист із оповіщенням про появу нового запису.
Третій розділ "Повідомлення" дозволяє настроїти зовнішній вигляд записів гостьової книги Joomla.
Насправді, я порадив би відключити зовсім капчу від Phoca Guestbook і скористатися відмінним плагіном.
Останній розділ - "Права". Задає права доступу для груп користувачів, хоча його можна не чіпати.
Ось і розібралися із плагіном Phoca Guestbook. Дуже дякую за увагу! Бережіть себе!
1. На безкоштовному хостингу є лише те, що дають.
2. Краще, але не обов'язково. Порядний гість залишить повідомлення так, як потрібно (через мою форму), а гарнийхакер все одно обійде ваші $_GET, $_POST, $_COOKIE та $HTTP_REFERER теж.
3. Контроль довжини проводитися, але неявно, самої БД (єдине, що саме повідомлення може бути величезне - до 64Кб).
4. Так, є, HtmlSpecialChars була використана, не використовував AddSlashes (і це велика помилка, визнаю свою провину, див. нижче). При ключеній magic_quotes_gpc, дана проблема не настільки гостра, але дірка в безпеці залишається (в панелі управління).
5. Так, згоден, можна було б і вирізати, але ім'я #[email protected]%#$^%$
нічим не гірше ніж AF4ETX09T43. У e-mail та url є дірка, можна використовувати скрипти.
6. Цікаво, що не є ініціалізованим?
Є ще ряд цікавих прийомів, як, наприклад, захист від автоматичного введення через картинку (як на цьому сайті) http://www.сайт/webmast/php/Security-Images-in-PHP/
...
Картинок здається не було, навіщо ускладнювати демонстраційний приклад. Поки що жодного разу не зустрічав гостьовий із подібним захистом. Щодо цього сайту, то це не гостьова.
Анатомія міжсайтового скриптингу XSS
http://www.woweb.ru/index.htm/id/1073393942
Дуже цікаво, дякую.
З.И. Якби Аффтор попрацював би почитати (і вникнути) у статті що на цьому ж сайті, то зрозумів би, наскільки його праця непрофесійна. Варто враховувати досвід попередніх Авторів і, принаймні, поважати їхню працю - вони ж вам писали.
Де є не пошана? Вибачте, якщо кого образив.
Щодо захисту, то раджу ще раз прочитати перший абзац статті, я не ставив за мету розглядати надійну гостьову, а лише показати як можна написати найпротішугостьову, для тих хто тільки починає пізнавати CGI, адже не все одразу приходить, треба починати з простого, і ти теж не одразу став таким розумним, теж робив помилки, тож давай залишимо аспекти захисту іншим статтям, іншим авторам.
Так, з погляду захисту цей скрипт непрофесійний, і я непрофесіонал у галузі захисту, тому в першому абзаці і стоїть відповідне застереження, яке, на жаль, не всі прочитали.
PS
Цитата:
Закон "Про авторське право та суміжні права"
Стаття 6. Об'єкт авторського права. загальні положення
1. Авторське право поширюється на твори науки, літератури та мистецтва, що є результатом творчої діяльності, незалежно від призначення та перевагитвори, а також від способу його вираження.
Решта можеш прочитати тут: http://www.febras.ru/~patent/copyright/2_3part2.html
У тому числі Стаття 9. п.1
І не тобі вирішувати користуватися мені чи моїм правом ні. Відновлення даних