InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте



Запчасти для посудомои hansa. Запчасти для посудомоечных машин hansa repairpieces.ru.



Размещение сквозной ссылки

 

Форум, работающий с базой данных 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>&nbsp; <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>&nbsp;<b>Message:</b><p>&nbsp;&nbsp;<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>&nbsp;<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);

// Здесь следует дать пояснения об использовании 
//функций htmlspecialchars (),str_replace () и nl2br ().
// htmlspecialchars () используется для того,чтобы
//преобразовать html-теги.Это делается в целях безопасности и для защиты от разного рода шутников :)
// str_replace () заменяет символ одинарной кавычки на пробел,
//т.к. внесение одинарной кавычки в БД //недопустимо-это специальный служебный символ.Это защитит БД от взлома.
// nl2br () преобразует символ конца строки в html-тег<br>.
//Это используется для того,чтобы текст,введенный в форму сохранился неизменным.
$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) { // Если все ОК,вставляем данные в таблицу topics. $query="insert into topics (top_name,name,message,post_date,last_reply)
values ('$theme','$nick','$message','$date','$date')"; $result=mysql_query ($query); // Обновляем таблицу info-увеличиваем количество // постов для данного пользователя на 1. $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 ?>?action­d_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 ?>?action­d_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 ?>?action­d_new_top">Go back</a> | <a href="<?php echo $script ?>?action=remind_pass">Forgot password?</a>|</center> <?php } }

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

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


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua