Создаем гостевую книгу на PHP

В этом уроке я покажу Вам, как создать красивую и простую гостевую книгу, которая будет использовать PHP и MySql.

Во-первых, мы должны определить, какие данные мы хоти, чтобы хранились в гостевой книге. Скорее всего – это имя пользователя, адрес электронной почты, дата добавления и комментарии.

Для начала, создаем базу данных под названием ‘guestbook‘, а затем вставим эту таблицу:


 CREATE TABLE guestbook (
 ID int NOT NULL AUTO_INCREMENT,
 name varchar(30),
 email varchar(60),
 dateposted date,
 comment text,
 INDEX (ID)
 );
 

У нас получилась таблица с названием guestbook, в которой 5 полей.

Следующее, что надо сделать – это создать форму, в которой пользователи будут вносить данные. Создадим новый файл с названием signguestbook.php и создадим форму.


 <form name="signguestbook" method="POST" action="addmessage.php">
 <table cellspacing="4" style="padding: 0px; width: 500px; border: 0px;">
 <tr>
 <td align="right"><b>Name:</b></td><td><input type="text" name="name" /></td>
 </tr>
 <tr>
 <td align="right"><b>EMail:</b></td><td><input type="text" name="email" /></td>
 </tr>
 <tr>
 <td colspan="2" align="center"><b>Comment:</b><br />
 <textarea name="comment" rows="5" cols="50"></textarea>
 </td>
 </tr>
 <tr>
 <td colspan="2" align="center"><input type="reset" name="reset" value="RESET" />
 <input type="submit" name="submit" value="submit" />
 </td>
 </tr>
 </table>
 </form>
 

Наша форма готова. Она пересылает все введенные данные в файл обработчик, которые мы назвали addmessage.php. Обработчик сохраняет данные и заносит их в нашу базу данных.


 <?php
 function safeAddSlashes($string) { 
 if (get_magic_quotes_gpc()) { 
 return $string; 
 } else { 
 return addslashes($string); 
 } 
 } 
 function mailcheck($emailadr){ 
 if (eregi("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$", $emailadr)) {
 return $emailadr; 
 } else {
 return false;
 }
 }
 $name = $_POST['name']; 
 $email = $_POST['email']; 
 $comment = $_POST['comment']; 
 $datetime = date("Y.m.d"); 
 $comment = safeAddSlashes($comment); 
 $email = mailcheck($email); 
 $dbHost = "localhost"; 
 $dbUser = " guestbook "; 
 $dbPass = "123456"; 
 $dbname = "guestbook"; 
 $db = mysql_connect($dbHost,$dbUser,$dbPass); 
 mysql_select_db($dbname,$db);
 $sql="INSERT INTO guestbook ('name', 'email', 'dateposted', 'comment') 
 VALUES ('$name', '$email', '$datetime', '$comment')";
 $result = mysql_query($sql, $db);
 if ($result) { 
 echo 'Запись добавлена<br />'; 
 echo 'Для просмотра гостевой книги нажмите <a href="/viewguestbook.php" 
 >сюда</a>.';
 } else {
 echo 'Ваше сообщение не может быть добавлено';
 }
 ?>
 

Теперь подробнее рассмотрим, как это работают функции.

Функция защиты


 function safeAddSlashes($string) { 
 if (get_magic_quotes_gpc()) { 
 return $string; 
 } else { 
 return addslashes($string); 
 } 
 }
 

Функция проверки адреса электронной почты пользователя на действительность. Адрес электронной почты раскладывается на две части, текст перед @ и после.


 function mailcheck($emailadr){ 
 if (eregi("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$", $emailadr)) {
 return $emailadr; 
 } else {
 return false; 
 }
 }
 

Теперь пришло время создать файл, который будет показывать, что находиться в гостевой книге. Создадим новый файл и назовем его viewguestbook.php


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html> 
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1251 />
 <title></title>
 </head>
 <body>
 <h3>Гостевая книга</h3>
 <?php 
 $dbHost = "localhost"; 
 $dbUser = ""; 
 $dbPass = ""; 
 $dbname = "guestbook";
 $db = mysql_connect($dbHost,$dbUser,$dbPass); 
 mysql_select_db($dbname,$db);
 $requete = "SELECT ID, name, email, dateposted, comment FROM guestbook ORDER BY ID desc"; 
 $result = mysql_query ($requete,$db);
 while($row = mysql_fetch_assoc($result)) { 
 $name = $row['name']; 
 $email = $row['email']; 
 $comment = $row['comment']; 
 $datetime = $row["dateposted"];
 if ($email) 
 echo '<a href="mailto:'.$email.'">'; 
 echo $name; 
 if ($email) 
 echo '</a>'; 
 echo ' - Добавленно '.$datetime.'<br />'; 
 echo ''.$comment.''; 
 echo '<hr />'; 
 } 
 ?>
 </body> 
 </html>
 

Вот и все! Дальше вы можете использовать все свое воображение и доработать, как вам будет угодно.

Понравился урок? Добавьте его к себе в закладки.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *