map1 map2 map3 map4 map5 map6 map7 map8 map9 map10 map11 map12 map13 map14 map15 map16 map17 map18 map19 map20 map21 map22 map23 map24 map25 map26 map27 map28 map29 map30 map31 map32 map33 map34 map35 map36 map37 map38 map39 map40 map41 map42
65 годовщина Победы!
Вконтакте
Статистика
Зарегано на сайте:
Всего: 519
Новых за месяц: 1
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0

Из них:
Модераторов: 0

Администраторов: 0
Проверенных: 67
Обычных: 452

Из них:

Парней: 486
Девушек: 33
OnLine
Юзеры онлайн:
Нас посетили:

Мини чат
календарь
новые файлы

Орел Девятого Легиона
(Кино)
Загрузок: 0
Просмотров: 1644
Добавил: stim
Дата: 05.05.2011

Случайные файлы

Анимированная шапка для counter strike сайта
(Шапки для ucoz)
Загрузок: 0
Просмотров: 408
Добавил: Omon
Дата: 23.03.2011


Буквы с сердечками (PSD алфавит)
(Шрифты для Фотошопа)
Загрузок: 0
Просмотров: 418
Добавил: Veteran
Дата: 18.04.2011

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Владельцу сайта » Статьи Web-мастеру » Гостевая книга своими руками на PHP и MySQL
Гостевая книга своими руками на PHP и MySQL
stimДата: Суббота, 26.03.2011, 22:35 | Сообщение # 1
[table]Наша гостевая книга будет состоять из трех php-файлов, одной базы данных и одной таблицы MySQL.

В данной статье приведены только фрагменты кода гостевой книги.
Скачать полные исходные коды гостевой книги можно на сайте автора.

1. Подключаемся к СУБД, создаем базы и таблицы для гостевой книги

Файл dbconnect.php, служит для подлючения к серверу БД MySQL и создания базы данных и базы данных и необходимой таблицы для гостевой книги.

// название сервера БД
define ("HOST", "localhost");
// название базы данных
define ("DATABASE", "gb");
// пользователь MySQL
define ("MYSQL_USER", "root");
// пароль к MYSQL
define ("MYSQL_PASS", "");

// создаем базу данных и таблицу gb
$link1=mysql_connect(HOST, MYSQL_USER, MYSQL_PASS)
or die("Нет соединения с MySQL сервером!");
mysql_query ("CREATE DATABASE IF NOT EXISTS ".DATABASE)
or die ("Не могу создать базу данных gb.");
mysql_select_db(DATABASE)
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.");

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

Если уж очень хочется экономить на запросах к БД, то строки с созданием БД и созданием таблицы можно вынести в отдельный *.php файл-установщик, который надо будет запускать всего 1 раз.

Файл dbconnect.php мы будем загружать каждый раз, если есть необходимость обращения к БД.

2. Что у нас в БД? Выводим содержимое гостевой книги

Файл index.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'"; // цвет для нечетных записей

?>

style="margin: 10px 0px;">













Имя пользователя:
Дата опубликования:

---------------------------------------------------------------





$c++;
}

if ($c==0) // если ни одной записи не встретилось
echo "Гостевая книга пуста!
";

Код формы для отправки сообщений выглядит следующим образом:

















Имя пользователя:



Сообщение:





Проверка правильности заполнения формы происходит на стороне клиента, для чего реализована JavaScript-функция splash();

function splash()
{
if (document.myForm.username.value =='')
{
alert ("Заполните имя пользователя!");
return false;
}

if (document.myForm.msg.value =='')
{
alert ("Заполните текст сообщения!");
return false;
}

return true;
}

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

3. Добавляем записи в гостевую книгу

Файл action.php - ядро гостевой книги. В этот файл принимаются данные из формы отправки сообщения и может выполняться одно из двух действий:
- добавление записи в гостевую книгу (при параметре action=add)
- удаление всех записей из гостевой книги (при параметре action=delete)

Заметим, что случай, когда action=delete может наступить только тогда, когда эта команда будет передана в ручную, с помощью вызова action.php?action=delete.

include ("dbconnect.php");

// получаем переменные из формы
$username=$_REQUEST['username'];
$msg=$_REQUEST['msg'];
$action=$_REQUEST['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");
?>

Файл action.php создан специально для того, чтобы не передавать данные в файл index.php. Если бы мы передавали данные в index.php, то при обновлении страницы или при пользовании кнопками "назад", "вперед" в браузере, мы бы могли встретиться с ситуацией излишней повторной отправки данных. Что приводило бы созданию дубликатов записей в гостевой книге и излишней путанице пользователей.

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

Форум » Владельцу сайта » Статьи Web-мастеру » Гостевая книга своими руками на PHP и MySQL
  • Страница 1 из 1
  • 1
Поиск: