Форум, работающий с базой данных MySQL
Для создания нового топика используем следующую форму:
<h3 alignОnter><font color="0000ff">New topic</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="newtop" method="POST">
<table width`% alignОnter bgcolor="aaaaaa">
<tr><td>
<tr><td><b>Your nick:</b><td><input type="text" name="nick" size >
<tr><td><b>Your password:</b><td><input type="password" name="passwd" size >
<tr><td><b>Topic name:</b><td><input type="text" name="theme" size >
<tr><td colspan=2> <b>Message:</b><p> <textarea cols@ rows
WRAP="VIRTUAL" name="message"></textarea>
<tr><td colspan=2><input type="hidden" name="action" value="add_new_top">
<tr><td colspan=2><input type="hidden" name="test" value="ok">
<tr><td colspan=2 alignОnter> <br> <input type="submit" name="post" value="Submit"></table>
<?php
Все поля обязательны для заполнения.Пользователь должен ввести свое имя,под которым он регистрировался в БД и пароль.Скрипт проверяет наличие их в БД,и если все нормально-помещает сообщение в таблицу topics. Если же имя и пароль введены неверно-выдается ошибка. Помещать сообщения могут только зарегистрированные пользователи. Вот как это выглядит:
elseif ($action=="add_new_top") {
connect ();
//
if ($test) {
//
$dateЪte ( "Y-m-d H:i:s",mktime ());
$message=htmlspecialchars ($message);
$message=nl2br($message);
$message=str_replace ("'"," ",$message);
$theme=str_replace ("'"," ",$theme);
$theme=str_replace ('"'," ",$theme);
$theme=htmlspecialchars ($theme);
//
//
//
//
$query="select id from info where name='$nick' AND password='$passwd'";
//
$result=mysql_query ($query);
//
if (mysql_num_rows ($result)) {
if (strlen ($theme)!=0 && strlen ($message)!=0) {
//
$query="insert into topics (top_name,name,message,post_date,last_reply)
values ('$theme','$nick','$message','$date','$date')";
$result=mysql_query ($query);
//
$query="update info set posts=posts+1 where name='$nick'";
$result=mysql_query ($query);
print_header ();
//
?>
<h3 alignОnter>Thank you,<font color="ff0000"><?php echo $nick ?>!</font></h3>
<p>Your topic has been submitted.
<p><center>| <a href="<?php echo $script ?>">Go to topics</a> | <a href="<?php echo $script ?>?actiond_new_top"> Post new topic</a> |</center>
<?php
} else {
print_header ();
//
?>
<h2 alignОnter>Error!</h2>
<p>You didn't enter topic name or message.Please,go back and try again.
<p><center>
| <a href="<?php echo $script ?>?actiond_new_top">Go back</a>
| <a href="?action=remind_pass">Forgot password?</a> |</center>
<?php
}
} else {
print_header ();
//
?>
<h2 alignОnter>Error!</h2>
<p>You entered incorrect name or password.Please,go back and try again.
<p><center>| <a href="<?php echo $script ?>?actiond_new_top">Go back</a>
| <a href="<?php echo $script ?>?action=remind_pass">Forgot password?</a>|</center>
<?php
}
}
Все эти предосторожности не лишние. Во-первых в целях безопасности самой базы данных. Во-вторых для защиты форума от случайных посетителей и от взлома. Новый топик создан и информация добавлена в таблицу topics. Далее рассмотрим,как разместить ответ на сообщение.
|
|