Гостевая книга на php и mysql процедурный стиль

Гостевая книга на php + бесплатный скрипт (исходник)
Здравствуйте, дорогие друзья! В этой статье мы рассмотрим создание гостевой книги с помощью php и mysql. Будет приведен исходный код, и конечно же комментарии к нему. Ну и соответственно мы разбираем самый простой пример, специально для новичков.

Гостевая книга на php за 30 минут

Вся наша лабуда будет состоять из 3 php скриптов и одной базы данных в которой будет одна таблица:

  1. index.php Главный файл, здесь у нас будет жить html верстка и скрипт вывода записей в цикле.
  2. db.php Ну а в этом фале мы будем создавать базу данных и конектиться к ней
  3. iaa.php В этом скрипте мы перехватываем данные из формы и добавляем их в базe

 

Шаг 1. Скрипт, в котором мы будем подключаться к базе и создавать её.

[ad 3]

Итак, этот скрипт называется у нас db.php.

[accordion]
[item title=Исходный код]

<?php
// название сервера БД
$host = localhost;
// название базы данных
$name = gb;
// пользователь MySQL
$user = root;
// пароль к MYSQL
$pass = ;

// создаем базу данных и таблицу gb
$link1=mysql_connect($host, $user, $pass) or die(Нет конекта с MySQL сервером!);
mysql_query (CREATE DATABASE IF NOT EXISTS .$name) or die (Не могу создать базу данных gb.);
mysql_select_db($name) or die(Нет содениения с требуемой базой данных!);
mysql_query (CREATE TABLE IF NOT EXISTS gb (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR (100), dt DATETIME, msg TEXT)) or die (Не могу создать таблицу gb.);
?>

[/item]
[/accordion]

Табличка gb создается с необходимыми нашей книге полями:
username имя чувака, оставляющего сообщение в гостевой;
dt ну это время и дата сообщения;
msg а это текст сообщения.
Если база данных и таблица уже имеются, то ничего не происходит.

Этот файл будет подгружаться каждый раз когда это будет необходимо.

Шаг 2. Теперь выводим в цикле все что у нас есть в базе данных.

За эту функцию у нас отвечает файл index.php

[accordion]

[item title=Исходный код]

<?php
require_once (db.php);
?>

<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>This is guest book</title>
<link rel=stylesheet type=text/css href=style.css>
</head>
<div id=lalka>
<div id = zagolov>
<h1 align=center>Guest book!</h1>
</div>

<! блок отображения сообщений>

<?php
$c=0;
$r=mysql_query (SELECT * FROM gb ORDER BY dt DESC); // выбор всех записей из БД, отсортированных так, что самая последняя отправленная запись будет всегда первой.
while ($row=mysql_fetch_array($r)) {
if ($c%2)
$col=bgcolor=#f9f9f9; // цвет для четных записей
else
$col=bgcolor=#f0f0f0; // цвет для нечетных записей

?>
<table border=0 cellspacing=3 cellpadding=0 width=90% <? echo $col; ?> style=margin: 10px 0px;>
<tr>
<td width=150 style=color: #999999;>User name:</td>
<td><?php echo $row[username]; ?></td>
</tr>
<tr>
<td width=150 style=color: #999999;>Date:</td>
<td><?php echo $row[dt]; ?></td>
</tr>
<tr>
<td colspan=2 style=color: #999999;></td>
</tr>
<tr>
<td colspan=2>
<?php echo $row[msg]; ?>
<br>
</td>
</tr>

</table>
<?php
$c++;
}

if ($c==0) // если ни одной записи не встретилось
echo <p style=color:red>- Guest book clear!</p><br>;

?>
<br>
<h3>Create message:</h3>
<! форма отправки сообщения >

<! код формы >
<form name=myForm action=iaa.php method=post onSubmit=return splash();>
<input type=hidden name=action value=add>
<p> Your name: </p>
<input type=text name=username>
<p> Your message: </p>
<textarea name=msg style=width: 300px;>
</textarea> <br>

<input type=submit value=submit>

</form>

</div>
</body>
</html>

[/item]

[/accordion]

Функция while() и выводит в цикле все наши записи. Стоит отметить что четные и нечетные записи отображаются у нас разными цветами.

Данные из формы передаются в файл iaa.php.

Шаг 3. Добавление данных в базу.

За это у нас отвечает файл iaa.php

[accordion]
[item title=Исходный код]

<?php
require_once (db.php);

// получаем переменные из формы
$username=$_POST[username];
$msg=$_POST[msg];
$action=$_POST[action];

if ($action==add)
{
// добавление данных в БД
$sql=INSERT INTO gb(username, dt, msg) VALUES ($username, NOW(), $msg);
$r=mysql_query ($sql);
}

if ($action==delete)
{
// удаление базы гостевой
$sql=DELETE FROM gb;
$r=mysql_query($sql);
}

header(Location: index.php);
?>

[/item]
[/accordion]

Файл action.php ничего не возвращает браузеру. При выполнении action.php происходит редирект на файл index.php.

Ну вот и все. Наша гостевая книга на php готова.

СКАЧАТЬ ИСХОДНИК

Понравился материал? Расскажите о нем своим друзьям!



2 комментария

  • Ответить января 30, 2014

    romeo

    выскакивает ошибка в данной строке:
    $r=mysql_query («SELECT * FROM gb ORDER BY dt DESC»);

    • Ответить января 31, 2014

      Вячеслав Хилков

      Скачай исходник, здесь на странице кавычки меняются на неправильные.

Ответить

Войти с помощью: