Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Пишем гостевую книгу на PHP (вариант на файлах) - Форум

  • Сторінка 1 з 1
  • 1
Пишем гостевую книгу на PHP (вариант на файлах)
DcKriLLДата: Неділя, 04.09.2011, 10:56 | Сообщение # 1



DcKriLL
Рыцарь
Группа: Пользователи
Сообщений: 217

Замечания:

Оффлайн
Сейчас мы разработаем приложение "Гостевая книга на PHP".

Сообщения будут храниться в файлах, которые расположены в директории RECORDS (позже мы разработаем вариант гостевой книги, основанный на хранении сообщений в базе данных). Код размещен в двух файлах: index.php (отображение сообщений) и addrec.php (добавление сообщений, их проверка и запись в файл).

Итак, создайте файл addrec.php и в той же директории, в которой расположен этот файл создайте директорию RECORDS.

Сначала проверяем, ввел ли пользователь данные и правильно ли он их ввел:
<?
$error = "";
$action = $_POST["action"];
if (!empty($action))
{
$name = trim($name);
$msg = trim($msg);
if (empty($msg)) // если не введено сообщение
{
$action = "";
$error = $error."<LI>Вы не ввели сообщение\n";
}
if (empty($name)) // если не введено имя
{
$action = "";
$error = $error."<LI>Вы не ввели имя\n";
}
if (!empty($email))
/* если введен e-mail, то проверяем с помощью регулярного выражения
правильность ввода */
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
$action = "";
$error = $error."<LI> Неверно введен е-mail.&nbsр Введите e-mail
в виде <i>softtime@softtime.ru</i> \n";
}
}

Теперь обрабатываем введенный пользователем текст функциями удаления HTML-тегов и обратных слешей:
$name = substr($_POST["name"],0,32);
$name = htmlspecialchars(stripslashes($name)); // обрабатываем имя
$city = substr($_POST["city"],0,32);
$city = htmlspecialchars(stripslashes($city)); // обрабатываем город
$email = substr($_POST["email"],0,32);
$email = htmlspecialchars(stripslashes($email)); // обрабатываем e-mail
$url = substr($_POST["url"],0,36);
$url = htmlspecialchars(stripslashes($url)); // обрабатываем url-адрес
$msg = substr($_POST["msg"],0,1024);
$msg = htmlspecialchars(stripslashes($msg)); // обрабатываем сообщение

В нашей гостевой книге поддерживается полужирное начертание, курсив, подчеркивание, верхние и нижние индексы. Для того, чтобы пользователь мог, к примеру, выделить блок текста в сообщении курсивом, его необходимо заключить в теги <i></i> и т.д. Поэтому для после того, как текст введен, нужно заменить эти искусственные теги на их реальное HTML-представление:
if (empty($error)) // если ошибок нет, обрабатываем сообщение
{
$msg = nl2br($msg);
$msg = str_replace("","<u>",$msg);
$msg = str_replace("","<u>",$msg);
$msg = str_replace("","<i>",$msg);
$msg = str_replace("","<i>",$msg);
$msg = str_replace("","<B>",$msg);
$msg = str_replace("","<B>",$msg);
$msg = str_replace("","<SUB>",$msg);
$msg = str_replace("","<SUB>",$msg);
$msg = str_replace("","<SUP>",$msg);
$msg = str_replace("","<SUP>",$msg);
$msg = str_replace("","</u>",$msg);
$msg = str_replace("
","</u>",$msg);
$msg = str_replace("","</i>",$msg);
$msg = str_replace("
","</i>",$msg);
$msg = str_replace("","</B>",$msg);
$msg = str_replace("
","</B>",$msg);
$msg = str_replace("","</SUB>",$msg);
$msg = str_replace("","</SUB>",$msg);
$msg = str_replace("","</SUP>",$msg);
$msg = str_replace("","</SUP>",$msg);
$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a
href=\\2>\\2</a>\\3",$msg);
$msg = str_replace("\n"," ",$msg);
$msg = str_replace("\r"," ",$msg);

Открываем файл и добавляем в него, введенную пользователем информацию:
/* создаем файл с именем вида "rec.+время добавления сообщения" */
$file = fopen("records/rec.".time(),"w");
// записываем информацию в файл, по одной строчке на каждое поле
fputs($file,$name."\n");
fputs($file,$city."\n");
fputs($file,$email."\n");
fputs($file,$url."\n");
fputs($file,$msg."\n");
// закрываем файл
fclose($file);

Вызываем скрипт index.php, ответственный за отображение сообщений:
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
print "</HEAD></HTML>\n";
}
}

Добавляем код вывода сообщений об ошибках и HTML-код формы добавления сообщения:
if (empty($action))
{
?>
<HTML>
<HEAD>
<TITLE>Гостевая книга - добавление записи</TITLE>
</HEAD&tg;
<BODY>
<H3>
<? print "<center>"; ?>
<font color=#1E90FF>Добавление записи</font>
</H3>
<?
if (!empty($error))
/* если есть ошибки, выводим сообщение об ошибках */
{
print "<P><font color=green>Во время добавления записи произошли
следующие ошибки:</font></P>\n";
print "<UL>\n";
print $error;
print "</UL>\n";
}
?>
<!-- пишем HTML-код формы добавления сообщений !-->
<center>
<table width=1 border=0>
<form action=addrec.php method=post>
<input type=hidden name=action value=post>
<tr>
<td width=50%>Имя:<font color=red><sup>*</sup><font></td>
<td align=right>
<input type=text name=name maxlength=32 value='<? echo $name; ?>'>
</td>
</tr>
<tr>
<td width=50%>Город:</td>
<td align=right>
<input type=text name=city maxlength=32 value='<? echo $city;; ?>'>
</td>
</tr>
<tr>
<td width=50%>E-Mail:</td>
<td align=right>
<input type=text name=email maxlength=32 value='<? echo $email; ?>'>
</td>
</tr>
<tr>
<td width=50%>URL:</td>
<td align=right>
<input type=text name=url maxlength=36 value='<? echo $url; ?>'>
</td>
</tr>
<tr>
<td colspan=2>Сообщение:<font color=red<sup>*</sup></font><br>
<textarea cols=50 rows=8 name=msg><? echo $url; ?>
</textarea>
</td>
</tr>
<tr>
<td colspan=2><input type=submit value='Добавить'></td>
</tr>
</form>
<tr>
<td colspan=2><font color=red><sup>*</sup></font> - поля,
обязательные для заполнения
</td><td align=left>
</table>
</center>
</BODY>
</HTML>
<?
}
?>


[Warning][/Warning]
 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz