Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Пройдя теоретический курс PHP, Я поняла, что без практики никуда и никак. А как начать самостоятельную практика всё не знала как, поэтому пошла в Гугл за ответами. Посетив, сайтов 15 по запросу «PHP для начинающих», я увидела везде повторяющийся совет-задание для новичков — нужно создать гостевую книгу. А, так как я начала заниматься PHP, чтобы использовать свои знания в веб-строительстве, поставила себе задание по советам Гуру, создать гостевую книгу для сайта.

Гостевая книга для сайта

Я решила все файлы (кроме таблицы стилей css сделать на php. По-началу было трудно и приходилось каждый этап гуглить и посещать разнообразные форумы и блоги. Потратив несколько суток (именно суток, так как практиковалась ночи напролёт), я даже вывела для себя и других полезные советы начинающим PHP-программистам. Надеюсь, эти рекомендации помогут многим новичкам при освоении языка веб-программирования.

Как сделать гостевую книгу

Для начала нам нужно создать php-файл с формами для заполнения полей, которые нужно записать в базу данных, нажав на кнопку «Отправить». Создаём новый файл (я использую в этих целях программу Notepaad++, это специальный усовершенствованный блокнот с подсветкой кода).

Простая гостевая книга

Итак, создаём PHP-файл, например, kniga.php. PHP — язык программирования англоязычный, поэтому все названия должны быть латинскими буквами. Ниже код нашего нового файла с подробными комментариями PHP-кода.

<?php
echo "
<html>
<head>
<link rel='stylesheet' type='text/css' href='style.css' />
<title>Гостевая книга на PHP</title>
</head><body>
<form id='forma' action='script.php' method='post'>
<h1>Гостевая книга</h1>
<p>Заполнив данные поля формы, вы сможете отправить нам своё сообщение, отзыв, комментарий и т.п.</p>
<p>Имя пользователя<br /><input type='text' name='name'></p>
<p>E-mail<br /><input type='text' name='email'></p>
<p>Сообщение<br /><textarea name='mail' cols='40' rows='3'></textarea></p></p>
<p><input type='submit'></p></form><br /><br />
<h1 style='width:500px; margin-left:50px;'>Записи в нашей гостевой книге:</h1>
</body></html>";

// Подключаемся к БД 
$db_host = 'здесь должен быть ваш хост';
$db_user = 'здесь должен быть ваш пользователь БД';
$db_password = 'здесь должен быть ваш пароль к БД';
$database = 'здесь должно быть ваше название базы данных';

mysql_connect($db_host, $db_user, $db_password); 
mysql_select_db($database); 
mysql_select_db('название вашей базы данных'); // Выбираем нужную БД 
$r=mysql_query("SELECT * FROM kniga ORDER BY `id` DESC"); // Создаем SQL запрос, сортировка по убыванию ID
for($i=0; $i<mysql_num_rows($r); $i++) // Перебор всех записей в таблице 
{ 
   $f=mysql_fetch_array($r); // Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
		print "<table id='zapici'><tr id='z1'><td>$f[1]<hr></td></tr><tr id='z2'><td>$f[2]:</td></tr><tr><td>$f[4] <br></td></tr></table>"; // Вывод значений в HTML, где $f[0], значение первого столбца, $f[1] - значение второго и т.д.  
} 
?>

Как мы видим из кода с комментариями выше, Я прописала название таблицы в базе данных для гостевой книги — kniga. Теперь нам необходимо написать файл-обработчик, который отправит данные формы в базу данных, создаст при необходимости (если таковой нет) новую таблицу в базе данных, отвечающую за записи в гостевой книге. PHP-файл ниже, назовём его script.php

<?php
//Передаём переменным данные форм
//Присваиваем каждой форме переменную
$name=$_POST['name']; 
$email=$_POST['email']; 
$mail=$_POST['mail']; 
// Подключаемся к БД
$db_host = 'здесь должен быть ваш хост';
$db_user = 'здесь должен быть ваш пользователь БД';
$db_password = 'здесь должен быть ваш пароль к БД';
$database = 'здесь должно быть ваше название базы данных';

mysql_connect($db_host, $db_user, $db_password); 
mysql_select_db($database); 

mysql_query("CREATE TABLE IF NOT EXISTS kniga (`id` int(10) unsigned NOT NULL auto_increment, `date_created` datetime NOT NULL, `name` text, `email` text, 
`mail` text,  PRIMARY KEY  (`id`) ) 
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6849") or die(mysql_error());

//Записываем в БД данные форм
$query="INSERT INTO `kniga` (`id`, `date_created`, `name`, `email`, `mail`)
                  VALUES ('', NOW(), '$name', '$email', '$mail')"; 
        $result = mysql_query($query); 
        if (!$result) { 
          $feedback = 'ОШИБКА - Ошибка базы данных'; 
          $feedback .= mysql_error(); 
          return $feedback; 
        }
?>

И осталось лишь «Причесать код и навести красоту». В этом нам и поможет знакомые таблицы стилей, а кратко — css. Называем файл style.css, подключили мы его сразу в файле kniga.php, теперь настраиваем стилей по-своему. Я настроила так:


#forma {
	text-align: left;
	font-family: Georgia, Verdana, Geneva, sans-serif;
	font-size: 16px;
	border: 1px outset #06540A;
	padding-left: 10px;
	width: 500px;
	margin-left: 50px;
}

H1{
	text-align: center;
	font-family: Georgia, Verdana, Geneva, sans-serif;
	font-size: 25px;
	color: #06540A;
}

#zapici{
	width:500px; 
	border:1px outset #06540A; 
	margin-left:50px;
	font-family: Georgia, Verdana, Geneva, sans-serif;}

#z1{
	font-size: 11px;
	text-align: left;
	}

#z2{
	font-size: 14px;
	font-weight: bold;
	text-align: left;
	}

Отправка письма (e-mail) администратору о новой записи в гостевой книге

Вам, как администратору будет приходить на e-mail письмо всегда, когда на вашем сайте пользователь буде оставлять сообщение в гостевой книге. Нужно просто в таком случае добавить следующий код в файл script.php как раз после передачи данных переменным данных форм:

//Задаём переменные для письма админу о новой записи в гостевой
$address = 'здесь должен быть ваш email';
$sub = "Здесь должна быть ваша тема сообщения";
$mes = "Здесь должно быть ваше сообщение: $name \nУказал свой адрес: $email \nСодержание письма: $mail";
 //Отправляем письмо админу о новой записи в книге
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Сообщение отправлено<br /><br />
<a href=kniga.php>Вернуться назад</a></p>";
}
else 
{
echo "<p>Сообщение не отправлено</p>";
}

Вот и всё! PHP скрипт гостевой книги готов! В общей сложности у вас должно быть 3 файла (kniga.php, script.php, style.css). Созданные файлы закачайте по фтп на сервер, желательно в отдельную папку и ещё раз протестируйте свою гостевую книгу.


Возможно, я что-то упустила или не совсем понятно изложила в материале — задавайте свои вопросы в комментариях, постараюсь помочь.