Несмачний guestbook php. Гостьова книга PHP Guestbook

Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?

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

Дуже часто люди просять скрипт гостьової книги на html або на javascript. На жаль, такого ніколи немає і не буде, тому що для роботи гостьової книги потрібно хоча б записувати повідомлення у файл. А це зробити ні в JavaScriptні, тим більше, в HTMLнеможливо.

Тепер копіюйте папку guestу корінь свого сайту. Далі розміщуйте на сторінці свого сайту посилання на гостьову книгу ( http://ваш_сайт/guest).

Наступним кроком буде налаштування гостьової книги. Для цього зайдіть на адресу http://ваш_сайт/guest/admin.php. Введіть пароль " admin" і після успішної авторизації зайдіть у вкладку " Конфігурування". Короткий описвсіх налаштувань:

  • Ім'я скрипту- Поставте свою назву для гостьової книги Вашого сайту.
  • Текст привітання- напишіть будь-який текст, який Ви бажаєте, щоб бачили Ваші відвідувачі при відвідуванні гостьової книги.
  • Рекламний блок- якщо Ви хочете розмістити рекламу в гостьовій книжці, то скопіюйте її код. Якщо її немає, залиште це поле порожнім.
  • Посилання на головну сайту- Поставте посилання на головну сторінку свого сайту.
  • Емайл адміна / надсилати повідомлення- вкажіть свій e-mail, а також виберіть: хочете Ви отримувати повідомлення на свою пошту чи ні.
  • Пароль адміну- Обов'язково поставте свій пароль. Не залишайте " admin".
  • Включити МОДЕРУВАННЯ повідомлень?- якщо Ви хочете перевіряти кожне повідомлення перед публікацією, увімкніть цю опцію.
  • Задіяти функцію антиспам?- тут можна відключити систему захисту від спаму, або вибрати один із трьох варіантів: звичайна капча, загадка чи матоперація. Якщо Ви оберете звичайну цифрову капчу, вкажіть також довжину капчі в текстовому полі праворуч.
  • Задіяти функцію антифлуду?- дана опція дозволяє відфільтрувати повідомлення за темою.
  • Робити посилання у тексті активними?- якщо поставите " Так", тоді посилання в тексті повідомлень будуть активними. Це зручно для користувачів, але Ваша гостьова книга буде хорошим місцем для спамеру.
  • Увімкнути/вимкнути графічні смайли?- якщо поставите " Так", то користувач зможе використовувати смайли.
  • Макс. довжина імені- Допустима кількість символів в імені користувача.
  • Макс. довжина повідомлення- допустима кількість символів у повідомленні.
  • Повідомлень на сторінку- кількість повідомлень, що виводяться на одній сторінці.
  • Слідування повідомлень- Сортування за зростанням або зменшенням дати написання повідомлення.
  • Скін- зовнішній вигляд.

Насправді, існує величезна кількість найрізноманітніших скриптів гостьових книг. І коли я шукав його, то перебрав не менше двох десятків і зупинився на цьому з таких причин.

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
І не тобі вирішувати користуватися моїм правом чи ні.

У цьому повісті going to see how we can build a guestbook easily with PHP and MySQL. This is very simple andстрійнаперед. All we need is:

  • A webserver або hosting account
  • phpMyAdmin або деякийтижневий для access access database

Перший, ми маємо створити creative database and necessary tables. Перейти до нашого керуючого panel (cPanel or something) і go to databases. Create a new database. Notice the database name. Новий розробник user і add the user to that database. Якщо ви думаєте про це, насолоджуйтесь сервісним центром вашого hosting provider. Процеси значною мірою відрізняються від host до host, depending on control panel вони виконують. Відомості про те, що повний файл електронної пошти, user name і database host. В більшості випадків, в базі даних host є «localhost». Але деякі постачальники як customers для використання remote mysql host. У тому випадку, мабуть, що host down. Якщо ви використовуєте WAMP-сервер на Windows, можна http://localhost/phpmyadmin/ and you shall get the options there.

Now we’re ready to import the table. Перейти до phpMyAdmin, вибрати вашу версію вашогоデータベースу і використовувати following SQL commands to create the table:

CREATE TABLE IF NOT EXISTS `comments` (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `website` varchar(255) NOT NULL, `message` text NOT NULL, `timestamp` int(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Окаи, якщо ви execute command, ми повинні мати table nameed “comments” with 6 fields. The “id” field is the primary key and the unique identifier. The other fields are – name, email, website, message and timestamp. Timestamp field stores unix epoch value (how many seconds passed after 1st January 1970) of time. It will be generated using the time() function of php. В інших сферах є self explanatory.

Тепер ми повинні створити файл configuration which shall be used to store the mysql connection data. Створити файл назви: “config.php” і почати following codes in it:

So, the config.php lets you use your own configuration data. Натисніть, щоб змінити значення параметрів для зміни вашого набору.

Now we create the first page. Створити файл назви “index.php” і почати ці коди в нього:

My Little Guest Book

Post A Comment:

Name:

Email:

Website:

Message:

Exisiting Comments:

Name:($comment["name"])
"; echo" Email:($comment["email"])
"; echo" Website:($comment["website"])
"; echo" Message:($comment["message"])
"; echo" Posted at:" .date("Y-d-m H:i:s",$comment["timestamp"]). "

"; } } ?>

So what does this script do? Це має html form to fill up the data necessary. Після того, як форма, будуть виконані всі коментарі, збережені в 데이터베이스 і відображати їх на сторінці. Якщо немає коментарів, ми знаємо, що це print that out. Did you notice that the form action є “post.php”? Yes, form data буде бути поставлена ​​на posts.php які низькі процеси fields and store them in database. So, let’s crate post.php and put the following codes:

My Little Guest Book

На цій сторінці, ми збираємося, і всі філії були пов'язані. Якщо не буде, ми можемо print error message. Якщо всі сфери були пов'язані, ми намагалися зберігати contents до database. We create the timestamp value using time() and extract the keys out of $_POST variable. Якщо Database Insertion Fails, будуть також print out error message. Якщо все це є окаям, ми робимо visitor до index.php, де він або shall може бути доведений до коментарів тільки до форми.

We're now done with our little guestbook. It is not that feature rich but it works! У coming posts, ми повинні додати, що ми можемо змінити його до validation, pagination and ajax interactions. Stay tuned!

Tizag PHP Page Counter is efficient online PHP counter незалежно від MySQL database. Ви можете скористатися цим програмним забезпеченням для визначення ваших веб-сайтів webtraffic і скачати повні випадки для ваших веб-сторінок. Ви можете легко налаштувати цей PHP application на вашому веб-сайті і configure для використання ваших веб-сайтів.

Якщо ви потребуєте guestbook на вашому сайті, ви є в правому місці. GuestBook Script PHP є script, який є приємним і швидким йти на свій веб-сайт.
Visitors для вашого веб-сайту може повідомити коментарі і feedback. Features: administrator page which...

CodeLock is anasy to use PHP and HTML encryptor. Codelock V2.0 works by encrypting the entire PHP page. Ви можете також PHP mixed with HTML і JavaScript. Codelock V2.0 використовує unique (unconventional) algoritms for it's encryption (along with...

DigiOz Graphic counter є counter script написаний specifically для PHP files. Цей script counts number of times PHP page has been viewed through the browser. In order for script to work, the counter.php file will have to be...

php/MySQL easy data editor. A single php pageабо з одним налаштуванням файлу для захисту, щоб зробити його зручним і безпечним для не programmers/web designers/mysql gurus to add, edit and delete records. * * * * Не потрібно створювати новий interface for each table!

HTML Resume Template is a php based script to generate resumes in HTML format.A easy to use programme. used to...

Сьогодні я опишу, мабуть, найкраще завдання для новачків мови програмування PHP. Гостьова книга. На мій погляд це завдання є найпростішим, але при цьому дозволяє дізнатися про всі основні особливості роботи з PHP і базою даних MySQL. Крім цього, це завдання нескінченно розширюється, що дозволяє відточувати нові технології.

Опис і вирішення цього завдання буде написано відразу тут, без перевірок на працездатність, тому, можливо, є помилка десь. Зроблено це не через мою лінощі, а знову таки через додаткове тренування, при створенні гостьової книги Вами. Також представлене рішення буде трохи «кривувато», але про це вже наприкінці цієї статті у розділі «Самостійна робота».

Якщо Ви зовсім не знаєте як працювати з PHP, то для початку раджу прочитати нотатку PHP - з чого почати.

Ми розбиратимемо створення найпримітивнішої гостьової книги, без дизайну та адміністрування. Тобто ми обмежимося входом у книгу, реєстрацією та й залишенням повідомлень.
З завдання стає зрозуміло, що ми можемо цілком обмежиться трьома файлами php, для реалізації цієї задачі. Звичайно завдання реєстрації можна розбити на дві: форма реєстрації та додавання даних до бази, проте робити ми цього не будемо. Аналогічні міркування допустимі й у процедури залишення коментарів. Таким чином створюємо три файли: index.php, registration.php, book.php.

За назвами файлів можна відразу зрозуміти, за що вони відповідатимуть: index.php - сторінка входу, registration.php - сторінка реєстрації, book.php - сторінка гостьової книги.

Найпростіше у нашому випадку це сторінка входу. Так як сторінка відповідає за введення пари логіну та паролю — на ній має бути присутня форма для відправки цих даних на сторінку book.php. А також посилання на сторінку з реєстрацією. Маємо:

Вхід до гостьової книги

Логін:
Пароль:

Реєстрація

Трохи відійшовши від теми, для тих хто не смакує що означає код вище. Тут ми маємо голий HTML. Ключовим моментом є тег formякий приймає два параметри action, який відповідає за адресу сторінки, яка відкриється після підтвердження введення даних, та параметр метод, який відповідає яким чином ці форми будуть надсилатися на вказану сторінку (див. POST і GET простими словами). Всередині тега form вказуються поля для введення (input, select), які обов'язково повинні мати атрибут name. Саме за значенням даного атрибуту можна буде отримати введені користувачем дані на сторінці, вказаній у параметрі форми action. Обов'язково всередині форми повинен знаходитися input з типом submit, який за своєю суттю є кнопкою, натисканням на яку і відбудеться відправка даних на сторінку action.

Продовжимо… Тепер нам потрібно створити сторінку із реєстрацією нового користувача. Варто одразу продумати, що саме ми хочемо мати. Я вирішив, що для простої гостьової книги буде цілком достатньо мати користувачів з унікальними логінами, а також знати адресу їхнього Web сайту (якщо він є). Якщо ми визначилися з тим, що ми хочемо знати про користувача, то ми можемо почати проектувати нашу базу даних.

Заходимо до phpMyAdmin. Створимо там основу з ім'ям gb. У цій базі створимо таблицю Users з такими полями:

Login varchar(50) unique //логін користувача, унікальне поле password varchar(150) //пароль www varchar(255) //адреса сайту

А якщо ми вже зайшли до редактора бази, то можна відразу й подумати про те, як ми зберігатимемо повідомлення. У нашому випадку цілком підійде знати хто і коли залишив повідомлення, та й власне текст нашого повідомлення. Так само для зручності варто пронумерувати наші повідомлення. З цим ми визначилися, отже, можна сміливо створювати ще одну таблицю Messages з наступною структурою:

Id int ai(auto_increment) primary_key //номер повідомлення, лічильник, який сам буде збільшуватися mes text //текст повідомлення who varchar(50) //логін того, хто залишив повідомлення when timestamp default(current) //час залишення повідомлення замовчуванням Поточна датата час

Із базою даних розібралися. Тепер переходимо до файлу registration.php. Підбивши підсумок вищевикладеному маємо:

Реєстрація

Логін:
Пароль:
Пароль ще раз:
WWW: http://


На головну

Трохи про код. Як Ви вже помітили, тут є PHP. Описувати форму я вже не буду, але, як ми бачимо, тут дані форми посилаються на ту саму сторінку, де розташована дана форма. Тобто файл registration.php надсилає дані сам на себе. Так робити ніхто не забороняє, проте використовувати це можна не завжди, тому що це сильно псує читабельність коду. Однак, з іншого боку, це наочно демонструє можливості мови PHP. По суті, наша сторінка розділена на два випадки. Перший випадок це коли на сторінку надсилаються дані POST запитом, другий випадок, коли на сторінку ніякого запиту POST не надіслано. У другому випадку ми покажемо форму для реєстрації, а першому почнемо виконувати перевірки надісланих даних. Як видно дані йдуть у вигляді асоціативного масиву (тобто масиву, індексами якого є рядки). Причому індекси збігаються з назвами полів input, зазначеними у формі надсилання даних. Тобто. якщо ми пишемо

то у нас, при надсиланні цих даних POST запитом, буде змінна

$_POST["vasa-peta"]

Також варто зауважити, що жодних перевірок на повтор логіну ми не робимо. Дана перевіркабуде здійснюватися лише на рівні бази даних, оскільки поле логін позначено як унікальне.

Тепер останнє. Залишилося зробити саму гостьову книгу. Небагато міркувань. Так як гостьова книга працює за логіном і паролем, то перше, що нам доведеться робити - перевіряти введений логін і пароль на наявність у базі. Так як ми вирішили додавати повідомлення так само у файлі book.php, то очевидно слідом повинна здійснюватися процедура додавання повідомлення. Ну і наприкінці відображення всіх повідомлень. (якщо зробити додавання повідомлення після їх відображення, то додане повідомлення відобразиться тільки після перезавантаження сторінки). Маємо:

Гостьова книга "; ) else ( echo "Ваше повідомлення не додано!


"; } } ?>
" name="login" /> " name="password" />

"; echo "Текст: ".$row["mes"]."
"; ) ) mysql_close($link); ?>

Ось насправді і все. Якщо код 100% робітник, добре. Якщо ні, то рекомендую Вам постаратися самостійно виправити помилки. Тепер обіцяний розділ.

Самостійна робота
Як уже говорилося на початку, це рішення «криве». Якщо Ви ще не зрозуміли чому, то зараз поясню. Як ви могли помітити у файлі book.php у формі додавання коментаря присутні кілька прихованих полів, при цьому два з них - це введений користувачем логін та пароль. Не добре, чи не так? Спробуйте виправити цей недолік використовую сесії (Як працювати з сесіями в PHP).
Постарайтеся відповісти на питання, чим відрізняються функції empty/issetі exit/die?
Змініть запит вибірки повідомлень з бази так, щоб при виведенні повідомлень відображався веб-сайт автора повідомлення.
Якщо ви помітили, пароль користувача в базі даних зберігається у відкритому вигляді, а це дуже не добре. Відредагуйте код так, щоб у базі зберігався хеш пароля користувача (наприклад, MD5 або SHA1).

Підтримайте проект - поділіться посиланням, дякую!
Читайте також
Коли apple перестане підписувати ios 10 Коли apple перестане підписувати ios 10 Огляд електронних ваг Xiaomi Mi Smart Scale: стеж за собою Огляд електронних ваг Xiaomi Mi Smart Scale: стеж за собою Що таке плейлист у ютубі і все про нього Що таке плейлист у ютубі і все про нього