|
ВТОРОЙ УРОК...
ВТОРОЙ УРОК...
Добавляем отзыв в БД
Ну а теперь давайте запишем наши данные в базу данных MySQL.
Что нам для этого потребуется? Ну собственно сама база и доступ к ней (хост, логин и пароль).
И так берем сделанный в прошлом уроке скрипт обработки отправки сообщения.
<?php
if($_POST['add_otziv']) {
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$otziv = htmlspecialchars($_POST['otziv']);
$chek = htmlspecialchars($_POST['chek']);
$page = $_SERVER['REQUEST_URI'];
$date = date("d.m.Y - H:i");
if($chek == 'nobot'){
if($name != '' AND $email != '' AND $otziv != ''){
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{$err = 'Неверно введен е-mail.';}
if(!$err){
$massege = "<html><head></head><body>
Новый отзыв на сайте! <br><br>
К странице http://www.имя_сайта.ru".$page.", написали отзыв:<br><br>
<table width=100% border=0>
<tr><td width=10></td>
<td><b>".$name."</b> (".$email.")<br>".$date."
<br>".$otziv."
</td>
</tr></table><br>
</body></html>";
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Мой сайт <admin@мой_сайт.ru>\r\n";
if(mail("admin@мой_сайт.ru", "Новый отзыв с Вашего сайта", $massege, $headers))
{$err="Спасибо за отзыв".$name;}else{$err='Ошибка в отправлении';}
}
}else{
$err = 'Вы заполнили не все поля!';
}
}else{
$err='Вы не человек :( ';
}
}
?>
|
Первое что нам необходимо сделать, это подключиться к базе. Для этого используем следующий код (его надо вставить перед if($_POST['add_otziv'])):
include("config.inc.php");
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД');
|
В файле config.inc.php будут следующие данные:
<?php
$DBSERVER = "адрес сервера";
//Пользователь и пароль
$DBUSER = "Пользователь";
$DBPASS = "Пароль";
//База данных
$DB = "Название базы";
?>
|
Если Вы сделаете все правильно и запустите страницу, то отобразится форма. Если что то не правильно, появится предупреждение об ошибке.
Отлично, теперь нам нужно создать таблицу в нашей БД, в которую будут заноситься данные. Обычно для этого используется PhpMyAdmin предоставляемый хостером. И так у нас будет 5 полей с данными и 1 поле это id, итого 6.
Просто выполните этот запрос во вкладке SQL:
CREATE TABLE `otzivi` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`otziv` TEXT NOT NULL ,
`page` VARCHAR( 255 ) NOT NULL ,
`date` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
|
Обращаю Ваше внимание что таблица была создана в кодировке Юникод (utf-8).
В нашем случае id является уникальным полем и имеет параметр авто инкремента (т.е. увеличение значения от на единицу).
Осталось только занести в базу данные. После того как отправили сообщение, допишем следующий код:
mysql_query (" INSERT INTO otzivi (name, email, otziv, page, date)
VALUES ('$name', '$email', '$otziv', '$page', '$date')");
|
Определяем куда заносить данные, это таблица otzivi, и перечисляем в какие поля какие данные заносим. Вот полный код получившегося скрипта:
<?
include("config.inc.php");
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД');
if($_POST['add_otziv']) {
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$otziv = htmlspecialchars($_POST['otziv']);
$chek = htmlspecialchars($_POST['chek']);
$page = $_SERVER['REQUEST_URI'];
$date = date("d.m.Y - H:i");
if($chek == 'nobot'){
if($name != '' AND $email != '' AND $otziv != ''){
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{$err = 'Неверно введен е-mail.';}
if(!$err){
//формируем html сообщение
$massege = "<html><head></head><body>
Новый отзыв на сайте! <br><br>
К странице http://www.ИМЯ_САЙТА.ru".$page.", написали отзыв:<br><br>
<table width=100% border=0>
<tr><td width=10></td>
<td><b>".$name."</b> (".$email.")<br>".$date."
<br>".$otziv."
</td>
</tr></table><br>
</body></html>";
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Мой сайт <admin@ИМЯ_САЙТА.ru>\r\n";
if(mail("admin@ИМЯ_САЙТА.ru", "Новый отзыв с Вашего сайта", $massege, $headers))
{$err="Спасибо за отзыв".$name;}else{$err='Ошибка в отправлении';}
mysql_query (" INSERT INTO otzivi (name, email, otziv, page, date)
VALUES ('$name', '$email', '$otziv', '$page', '$date')");
}
}else{
$err = 'Вы заполнили не все поля!';
}
}else{
$err='Вы не человек :( ';
}
}
?>
|
Не забываем поместить файл с настройками БД в дну папку со скриптом или измените путь к нему.
В последнем уроке покажу как можно вывести отзывы.
Полный код урока.
Выводим отзывы из БД
|