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

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


Форум, работающий с базой данных 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. Далее рассмотрим, как разместить ответ на сообщение.

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

Автор: 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 обязательна. Карта сайта.