Пятница, 19.06.2026, 16:16
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

Пишем скрипт гостевой книги 2

Итак собственно скрипт отображающий гостевую книгу:
gbook.php


<?
require_once
"gbook.lib";
gbook_init();
// Выберем все сообщения из таблицы
// записи сортируем по убыванию времени:
// от последних сообщений к первым
$r=mysql_query("select k_msg, guest, email, url, icq, time,
msg, replay from $table order by time desc"
) or my_error();
$pgsz=8; // Количество сообщений на страницу
$pgbar=''; // Здесь будет сформирован текст ссылок на страницы
if(!isset($pg))$pg=0; // По умолчанию с первого сообщения
$rows=mysql_num_rows($r); // Число записей = число сообщений
$pgcnt=$rows/$pgsz; // Число страниц
// Формируем строку страниц
for($i=0;$i<$rows;$i+=$pgsz)
if( (
$i>=$pg) && ($i<($pg+$pgsz)) )
$pgbar.=($i/$pgsz+1);
else
$pgbar.="<a href=gbook.php?pg=$i>".($i/$pgsz+1)."</a> ";
?>
<html>
<head>
<title>Гостевая книга</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<h2 align=center>Гостевая книга</h2>
<div align=center><?=$pgbar?></div>
<table width=100% border=1>
<?
// Выведем сообщения
$i=0;
while(
$f=mysql_fetch_array($r))
{
if( (
$i>=$pg) && ($i<($pg+$pgsz)) )
{
echo
"<tr><td align=center valign=top width=25%>";
echo
htmltrim($f['guest'])."<br>";
$email=htmltrim($f['email']);
$href='mailto:'.$email;
echo
"<a href=$href>$email</a><br>";
$url=htmltrim($f['url']);
echo
"<a href=$url>$url</a><br>";
echo
"ICQ: ".htmltrim($f['icq'])."<br>";
echo
my_date($f['time']);
echo
"</td>";
$mes=nl2br(htmltrim($f['msg']));
echo
"<td align=left valign=top>$mes";
$replay=nl2br(htmltrim($f['replay']));
if(
$replay):
echo
"<hr>$replay";
endif;
echo
"</td>";
if(
$admin):
// А это только для администратора
echo "<td width=10% align=center valign=top>";
// Ссылка для редактирования сообщения
echo "<a href=replay.php?sid=$sid&id=$f[k_msg]>Ответить</a><br>";
// Ссылка для удаления сообщения
echo "<a href=drop.php?sid=$sid&id=$f[k_msg]>Удалить</a>";
echo
"</td>";
endif;
echo
"</tr>";
}
$i++;
if(
$i>=($pg+$pgsz)) break;
}
?>
</table>
<div align=center><?=$pgbar?></div>
<table align=center><tr><td>
<form action="post.php" name=frm method=post>
<h3 align=center>Оставьте свое сообщение</h3>
<table>
<tr><td align=right><b><font color=red>*</font>Имя:</b></td>
<td><input class=e type=text name=Login size=40></td></tr>
<tr><td align=right><b>e-mail:</b></td>
<td><input class=e type=text name=Email size=40></td></tr>
<tr><td align=right><b>URL сайта:</b></td>
<td><input class=e type=text name=Url size=40></td></tr>
<tr><td align=right><b>ICQ:</b></td>
<td><input class=e type=text name=Icq size=40></td></tr>
</table>
<b><font color=red>*</font>Сообщение:</b><br>
<center>
<textarea class=t cols=40 rows=8 name=Msg></textarea><br>
<input type=submit value="Отправить">
</center>
</form>
<div align=center><br>gbook 1.0 beta © Золотов Алексей 2005<br>
<a href=http://zolotov.h14.ru>http://zolotov.h14.ru</a>
</div>
</body>
</html>


Вот и все. Это самое основное, осталось сделать панель модерирования гостевой книги, чтобы можно было легко удалять и редактировать оставленные сообщения. Для входа в режим администрирования создадим отдельный скрипт. Когда пользователь вводит пароль, то на основе его и текущей даты генерируется код сессии, если переданный в скрипт код сессии правильный, то считается, что зашел администратор, и ему открываются все возможности.
admin.php


<?
$addr=dirname($SCRIPT_NAME);
if(
$addr=='/')$addr='/gbook.php'; else $addr.='/gbook.php';
$addr="http://".$SERVER_NAME.$addr;
require_once
"gbook.lib";
if(isset(
$pass))
{
my_redirect($addr."?sid=".md5($pass.date('dmYH')));
exit;
}
?>
<html>
<head>
<title>Гостевая книга</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<h3 align=center>Вход в режим модерирования</h3>
<form action=admin.php method=post>
<table align=center><tr><td>
<b>Введите пароль:</b>
<input type=password name=pass>
<input type=submit value="Войти">
</td></tr></table></form>
<div align=center><br>gbook 1.0 beta © Золотов Алексей 2005<br>
<a href=http://zolotov.h14.ru>http://zolotov.h14.ru</a></div>
</body>
</html>


В главном скрипте в режиме администратора мы создали ссылки для редактирования и удаления сообщений. Для начала приведу скрипт для удаления сообщения - он короче.
drop.php


<?
require_once
"gbook.lib";
$id=trim($id);
gbook_init();
if(!
$admin) error("Отказано в доступе");
if(!
$id) error("Не задан идентификатор удаляемого сообщения<b>id</b>");
// Удалим сообщение
mysql_query("delete from $table where k_msg=$id") or my_error();
$addr=dirname($SCRIPT_NAME);
if(
$addr==='/') $addr.='gbook.php'; else $addr.='/gbook.php';
$addr="http://".$SERVER_NAME.$addr;
my_redirect($addr);
echo
"<b>Сообщение удалено. <a href=$addr>Назад</a></b>"
?>


А теперь скприпт, отображающий страницу для редактирования сообщения.
replay.php


<?
require_once
"gbook.lib";
$id=trim($id);
gbook_init();
if(!
$admin) error("Отказано в доступе");
if(!
$id) error("Не задан идентификатор редактируемого сообщения<b>id</b>");
$r=mysql_query("select k_msg, guest, email, url, icq, time, msg, replay
from $table where k_msg=$id"
) or my_error();
if(
mysql_num_rows($r)==0) error("Сообщения с id=$id нет в гостевой таблице");
$f=mysql_fetch_array($r);
$name=htmltrim($f['guest']);
$email=htmltrim($f['email']);
$url=htmltrim($f['url']);
$icq=htmltrim($f['icq']);
$msg_n=htmltrim($f['k_msg']);
$replay=htmltrim($f['replay']);
$msg=htmltrim($f['msg']);
$date=my_date($f['time']);
?>
<html>
<head>
<title>Гостевая книга</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<h3 align=center>Редактирование сообщения</h3>
<form action=save.php method=post>
<table align=center><tr><td>
<table>
<tr><th align=right>Имя:</th>
<td><input class=e type=edit name=Login value='<?=$name?>'></td></tr>
<tr><th align=right>E-Mail:</th>
<td><input class=e type=edit name=Email value='<?=$email?>'></td></tr>
<tr><th align=right>ICQ:</th><td>
<input class=e type=edit name=Icq value='<?=$icq?>'></td></tr>
<tr><th align=right>Сайт:</th><td>
<input class=e type=edit name=Url value='<?=$url?>'></td></tr>
<tr><th align=right>Дата:</th><td><?=$date?></td></tr>
</table>
</td><td>
<b>Сообщение:</b><br>
<textarea cols=40 rows=10 name=Msg><?=$msg?></textarea><br>
<b>Ответ:</b><br>
<textarea cols=40 rows=10 name=Replay><?=$replay?></textarea>
</td></tr></table>
<input type=hidden name=sid value=<?=$sid?>>
<input type=hidden name=id value=<?=$msg_n?>>
<center><input type=submit value='Сохранить'></center>
</from>
<div align=center><br>gbook 1.0 beta © Золотов Алексей 2005<br>
<a href=http://zolotov.h14.ru>http://zolotov.h14.ru</a></div>
</body></html>


Сохранение редактированного сообщения происходит в скрипте save.php
save.php


<?
require_once
"gbook.lib";
$Login=trim($Login);
$Email=trim($Email);
$Url=trim($Url);
$Icq=trim($Icq);
$Msg=trim($Msg);
$Replay=trim($Replay);
$k_msg=trim($id);
gbook_init();
if(!
$admin) error("Отказано в доступе");
if(!
$k_msg) error("Неуказан идентификатор <b>id</b> сохраняемого сообщения");
if(!
$Login || !$Msg)
error("Поля <b>Имя</b> и <b>Сообщение</b> должны быть заданы");
// Обновим запись
mysql_query("update $table set guest='$Login', email='$Email', url='$Url',
icq='$Icq', msg='$Msg', replay='$Replay' where k_msg=$k_msg"
) or my_error();
$addr=dirname($SCRIPT_NAME);
if(
$addr==='/') $addr.='gbook.php'; else $addr.='/gbook.php';
$addr="http://".$SERVER_NAME.$addr;
my_redirect($addr);
echo
"<b>Сообщение отправлено. <a href=$addr>Назад</a></b>"
?>


Вот и весь скрипт. Осталось только установить и использовать.
Категория: php | Добавил: freeone (14.06.2007)
Просмотров: 2691 | Комментарии: 50 | Рейтинг: 0.0 |

Всего комментариев: 2
2 Lre6p57l  
0
http://en.krccima.ir/index.php?option=com_k2&view=itemlist&task=user&id=473300 - substitute for cane sugar
http://igortaranov.com/index.php?option=com_k2&view=itemlist&task=user&id=23551 - small business credit reporting agencies
http://ourghana.info/index.php?option=com_k2&view=itemlist&task=user&id=328570 - dr site

1 Lrkud2l1  
0
http://m4d.se/webalizer/usage_201611.html - study abroad for a year
http://www.frankderrick.com/stats/usage_201611.html - buy hyundai online
http://www.paynetogo.com/webalizer/usage_201611.html - lvn program in houston

Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006