Гостевая книга PHP на файлах без MySQL

  Александр Маврин   Комментариев нет

Гостевая книга на PHP

Здравствуйте. друзья! Представляю вашему вниманию самый простой скрипт гостевой книги, написанный на PHP без использования базы данных MySQL. Чисто на файлах, вернее все данные хранятся в одном текстовом файле .txt. Поймет даже чайник, никакого ООП, только процедурный подход. Достаточно скачать скрипт, установить на хостинг и он уже будет работать. И естественно код будет отрытым и совершенно бесплатным. Чтобы написать сообщение не нужна авторизация, поэтому хакеры не смогут получить к ней доступ, так как взламывать нечего. Предлагаю посмотреть пример и протестировать гостевую книгу.

Демо

Скрипт гостевой книги на PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?php
$file = "book.txt";
$data = date('d.m.Y H:i'. ' мск');
$text = $_REQUEST['text'];
$name = $_REQUEST['name'];
if (@$_REQUEST['add']) {
  $f = fopen($file, "a");
  if (@$_REQUEST['text']) fputs($f, '<span class="date-mess">'.$name.' '.$data. " <br />". " <span class='message'>" .$text ."</span>"."\n");
  fclose($f);
  $random = time();    // случайный параметр, чтоб не кешировалось
  Header("Location: //{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?$random#form");
  exit();
}
$gb = @file($file);
if (!$gb) $gb = [];

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

1
2
3
4
5
6
7
8
9
10
< ?php
include 'book.php';
foreach($gb as $text) {?>
  < ?=($text)?><br /><br />
< ?}?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" id="form">
  <input type="text" name="name" placeholder="Имя" id="name"/>
  <textarea name="text" placeholder="Текст"></textarea><br />
  <input type="submit" name="add" value="Добавить запись"/>
</form>

Эта гостевая книга не использует Ajax, поэтому страница перезагружается после нажатия кнопки отправки сообщения. Соответственно поля очищаются, а для того, чтобы каждый раз не приходилось вводить свое имя заново, можно использовать LocalStorage, что мы и сделаем.

1
2
3
4
5
6
7
<script>
var i2 = document.querySelector('#name');
i2.value = localStorage.getItem('names');
i2.oninput = function() {
  localStorage.setItem('names', i2.value);
}
</script>

Кстати, то ж самое можно сделать с помощью cookie на PHP. Теперь, когда вы покинете страницу после написания сообщения и зайдете спустя какое-то время, то обнаружите, что поле Имя будет по-прежнему заполнено. Это удобно. Хранится будет до тех пор, пока вы не очистите локальное хранилище браузера. Гостевую книгу можно установить в качестве модуля для написания отзывов на одностраничном сайте или в качестве системы комментирования. Но нужно быть внимательным, ведь защиты от ботов здесь никакой нет. Они могут достучаться до формы и выливать огромное количество спама, что приведет к увеличению объема текстового файла. Поэтому за этим нужно следить. на этом все, вы можете свободно скачать скрипт гостевой книги по прямой ссылке.

СКАЧАТЬ

Добавить страницу в закладки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *