Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> PHP -> Форум, работающий с базой данных MySQL


Форум, работающий с базой данных MySQL

Редактирование сообщения

Редактирование сообщения может понадобиться, если пользователь допустил ошибку, или хочет изменить что-нибудь в тексте. Редактировать можно только свои сообщения, за этим следит скрипт и БД. В зависимости от того, является сообщение топиком или ответом на топик, выводятся 2 разные формы.

connect ();

// Если это топик,находим его в таблице topics.
if ($type=="message") {
$query="select message from topics where name='$nick' and top_name='$top_name'";
$result=mysql_query ($query);
$row=mysql_fetch_array ($result);
$message=$row["message"];
$message=str_replace ("<br>","",$message);

print_header ();

// Помещаем сообщение в форму для редактирования.
?>
<h3 alignОnter><font color="0000ff">Edit message.</font></h3>
<p align=right>| <a href="<?php echo $script ?>">Go to topics</a> 
| <a href="<?php echo $script ?>?action=register"> Register</a> | <p align=right><font color="0000ff">
Only registered users may post messages in this forum.</font> <p><form action="<?php echo $script ?>"
name="editmsg" method="GET"> <table width`% alignОnter bgcolor="aaaaaa"> <tr><td>&nbsp; <tr><td><b>Your nick:</b><td> <input type="text" name="name" size > <tr><td><b>Your password:</b><td>
<input type="password" name="passwd" size > <tr><td colspan=2>&nbsp;<b>Message:</b><p>&nbsp;&nbsp;
<textarea cols@ rows§ WRAP 80="virtual" name="post"> <?php echo $message ?><br></textarea> <tr><td colspan=2>
<input type="hidden" name="action" value="edit"> <tr><td colspan=2>
<input type="hidden" name="submit" value="1"> <tr><td colspan=2>
<input type="hidden" name="top_name" value="<?php echo $top_name ?>"> <tr><td colspan=2>
<input type="hidden" name="nick" value="<?php echo $nick ?>"> <tr><td colspan=2>
<input type="hidden" name="type" value="<?php echo $type ?>"> <tr><td colspan=2>
<input type="hidden" name="reply_date" value="<?php echo $reply_date ?>"> <tr><td colspan=2 alignОnter>&nbsp;
<br><input type="submit" value="Submit"></table> <?php } elseif ($type=="reply") { // Если это ответ на топик,находим его в
//таблице replies по названию топика. $query="select reply from replies where name
='$nick' and top_name='$top_name' and reply_date='$reply_date'"; $result=mysql_query ($query); $row=mysql_fetch_array ($result); $reply=$row["reply"]; $reply=str_replace ("<br>","",$reply); print_header (); ?> <h3 alignОnter><font color="0000ff">Edit reply.</font></h3> <p align=right>| <a href="<?php echo $script ?>">Go to topics</a> |
<a href="<?php echo $script ?>?action=register"> Register</a> | <p align=right><font color="0000ff">
Only registered users may post messages in this forum.</font> <p><form action="<?php echo $script ?>"
name="editmsg" method="GET"> <table width`% alignОnter bgcolor="aaaaaa"> <tr><td>&nbsp; <tr><td><b>Your nick:</b><td>
<input type="text" name="name" size > <tr><td><b>Your password:</b><td>
<input type="password" name="passwd" size > <tr><td colspan=2>&nbsp;<b>Message:</b><p>&nbsp;&nbsp;
<textarea cols@ rows§ WRAP 80="virtual" name="post"> <?php echo $reply ?><br></textarea> <tr><td colspan=2>
<input type="hidden" name="action" value="edit"> <tr><td colspan=2>
<input type="hidden" name="submit" value="1"> <tr><td colspan=2>
<input type="hidden" name="top_name" value="<?php echo $top_name ?>"> <tr><td colspan=2>
<input type="hidden" name="nick" value="<?php echo $nick ?>"> <tr><td colspan=2>
<input type="hidden" name="type" value="<?php echo $type ?>"> <tr><td colspan=2>
<input type="hidden" name="reply_date" value="<?php echo $reply_date ?>"> <tr><td colspan=2 alignОnter>&nbsp;<br>
<input type="submit" value="Submit"></table> <?php } }

Далее, можно считать и обработать данные.

elseif ($action=="edit") {
if ($submit) {
connect ();

// Делаем все как обычно. Переменная 
//$end-это строка, добавляемая в конце редактируемого сообщения. $dateЪte ( "Y-m-d H:i:s",mktime ()); $end="\n----------------------------------------------------------\n
This message was edited by $nick $date."; $post=str_replace ("'"," ",$post); $post.=$end; $post=htmlspecialchars ($post); $post=nl2br ($post); // Проверяем имя и пароль. if ($type=="message") { $query="select id from info where name='$name' and password='$passwd'"; $result=mysql_query ($query); // Если все ОК и это топик-обновляем таблицу topics. if (mysql_num_rows ($result) && $name==$nick) { $query="update topics set message='$post' where top_name='$top_name'"; $result=mysql_query ($query); print_header (); ?> // Говорим пользователю спасибо. <h3 alignОnter>Thank you,<font color='ff0000'><?php echo $nick ?></font>!</h3> <p>Your message was changed. <p><center>| <a href="<?php echo $script ?>">Go to topics</a> |
<a href="<?php echo $script ?>?action­d_new_top">
Post new topic</a> |</center> <?php } else { print_header (); ?> // Если имя и пароль не найдены или пользователь
//не является автором сообщения выдается ошибка. <h3 alignОnter>Error!</h3> <p>This message cannot be edited.May
be you entered incorrect nick or password, or you are not an author of this message. <p>Please,go back and try again. <p><center>| <a href='javascript:history.back ()'> Go back</a>|
<a href="<?php echo $script ?>">Go to topics</a> |</center> <?php } } elseif ($type=="reply") { // Если это ответ на топик, изменяем таблицу replies. $query="select id from info where name='$name'
and password='$passwd'"; $result=mysql_query ($query); if (mysql_num_rows ($result) && $name==$nick) { $query="update replies set reply='$post' where
top_name='$top_name' and name='$nick'
and reply_date='$reply_date'"; $result=mysql_query ($query); print_header (); ?> <h3 alignОnter>Thank you,<font color='ff0000'>
<?php echo $nick ?></font>!</h3> <p>Your message was changed. <p><center>| <a href="<?php echo $script ?>">Go to topics</a>
|<a href="<?php echo $script ?>?action­d_new_top">
Post new topic</a> |</center> <?php } else { print_header (); ?> <h3 alignОnter>Error!</h3> <p>This message cannot be edited.May be you
entered incorrect nick or password, or you are not an author of this message. <p>Please,go back and try again. <p><center>| <a href='javascript:history.back ()'> Go back</a>|
<a href="<?php echo $script ?>">Go to topics</a> |</center> <?php } } }

Как видите, ничего нового.Те же SQL-запросы в связке с PHP-функциями.

[Назад] [Содержание] [Вперед]

Автор: OlegTr
Источник: www.zk.ru/alextr/

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.