Форма обратной связи на PHP.

Форма обратной связи на PHP.

В этой статье разберем вопрос о форме обратной связи.

Приступим к созданию.

Создадим файл form. php.

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Форма обратной связи</title>

<style type="text/css"> textarea, input

{ outline:none;

}

.text

{ width:200px; border:1px solid #999;

}

.message

{ width:200px; border:1px solid #999; resize:none; height:100px;

}

</style>

</head>

<body>

<form action="submit. php" method="post">

<table width="400" border="0">

<tr>

<td><label for="name">Ваше имя:</label></td>

<td><input type="text" name="name" id="name" class="text" required></td>

</tr>

<tr>

<td><label for="email">Ваш email:</label></td>

<td><input type="email" name="email" id="email" class="text" required></td>

</tr>

<tr>

<td><label for="theme">Тема:</label></td>

<td><input type="text" name="theme" id="theme" class="text" required></td>

</tr>

<tr>

<td valign="top">Сообщение:</td>

<td><textarea name="message" id="message" class="message" required></textarea></td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="submit" id="submit" value="Отправить"></td>

</tr>

</table>

</form>

</body>

</html>

Далее нам понадобится файл submit. php. Который будет записывать сообщания в базу данных.

Submit. php include('db. php'); function add_slashes($text)

{ if (!ini_get(magic_quoties_gpc))

$text = addslashes($text); return $text;

} function addMessage($db, $name, $email, $theme, $message)

{

$name = add_slashes($name);

$email = add_slashes($email);

$theme = add_slashes($theme);

$message = add_slashes($message);

$result = mysql_query("INSERT INTO 'form' ('form_name','form_email', 'form_theme','form_message') VALUES ('$name','$email','$theme','$message')", $db); if ($result) return 1; return 0;

} if (addMessage($db, $_POST[name], $_POST[email], $_POST[theme], $_POST[message])) header('Location: success. php'); else header('Location: error. php');

В этом файле главная функция addMessage, которая добавляет сообщение в базу данных. Первое что мы делаем в этой функции, это экранируем sql опасные символы из переменных $name, $email, $theme и $message, если это нужно. Далее мы вставляем в базу данных эти значения. Если успешно, то возвращаем 1, если нет, то 0.

Ещё в этом файле есть функция add_slashes. Эта функция экранирует sql опасные символы, если это нужно.

Сначала идет проверка if (!ini_get(magic_quoties_gpc)), т. е. если автиматическое экранирование отключено, то экранировать.

Функция ini_get проверяет установлен ли параметр, в нашем случае это magic_quoties_gpc.

При выполнении этого файла сразу выполняется функция addMessage, т. е. добавляются сообщения. Если успешно, то скрипт перенаправляет нас на страницу success. php, если нет, то на error. php.

В этой статье я не буду описывать как создавать файлы success. php и error. php, потому что думаю их вы и сами сможете создать, т. к. в них надо написать просто оповещение о том что сообщение отправлено или произошла ошибка.

Файл db. php.

Ну в этом файле все просто.

$db = mysql_connect('localhost', 'root', ''); mysql_select_db('form', $db); mysql_query("SET NAMES utf8", $db);

Создание таблицы.

Теперь Вам надо создать эту таблицу в базе данных.

CREATE TABLE IF NOT EXISTS 'form' (

'form_id' int(11) NOT NULL AUTO_INCREMENT,

'form_name' varchar(255) NOT NULL,

'form_email' varchar(255) NOT NULL,

'form_theme' varchar(255) NOT NULL,

'form_message' text NOT NULL,

PRIMARY KEY ('form_id')

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

Файл output. php

И это последний файл формы. И он предназначен для вывода сообщений из базы данных, для того чтобы их было удобно просматривать. Потому что не удобно каждый раз заходить в phpmyadmin.

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Вывод сообщений</title>

</head>

<body>

<table width="90%" border="1" cellspacing="0">

<tr>

<td width="20%">Имя</td>

<td width="20%">Email</td>

<td width="20%">Тема</td>

<td width="40%">Сообщение</td>

</tr>

<?php include('db. php');

$result = mysql_query("SELECT * FROM 'form'", $db); while ($myrow = mysql_fetch_array($result))

{

?>

<tr>

<td><?=$myrow[form_name];?></td>

<td><?=$myrow[form_email];?></td>

<td><?=$myrow[form_theme];?></td>

<td><?=$myrow[form_message];?></td>

</tr>

<?

}

?>

</table>

</body>

</html>

Скачать исходники


Карта сайта


Информационный сайт Webavtocat.ru