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

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

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

СКАЧАТЬ

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

5 комментариев
  1. Антон:

    Странно, но, у меня не пашет…
    в book.txt заносит,но, не отображает…

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

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