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