Пройдя теоретический курс 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). Созданные файлы закачайте по фтп на сервер, желательно в отдельную папку и ещё раз протестируйте свою гостевую книгу.
Возможно, я что-то упустила или не совсем понятно изложила в материале — задавайте свои вопросы в комментариях, постараюсь помочь.
