Для работы форума необходим веб-сервер Apache с поддержкой PHP и база данных MySQL. Скрипт forum.php3 помещается в каталог /usr /local /apache /htdocs (без пробелов). Работающий форум можно посмотреть здесь, а полный листинг здесь.
Начало
Прежде,чем начать рассмотрение практического применения PHP,нужно войти в MySQL как администратор и создать базу данных,в которой будет храниться вся информация.
Создаем базу данных forum.
mysqladmin -u root -p create forum;
use forum;
Создаем 3 таблицы в базе данных forum.В них будет записываться вся информация.
create table info (
id int (4) not null auto_increment primary key,
name varchar (15) not null,
password varchar (15) not null,
email varchar (40) not null,
posts int (4) default '0',
key (name),key (password));
create table topics (
top_id int (4) not null auto_increment primary key,
Функции,использованные в форме, служат для проверки информации,введенной пользователем. Далее, нужно обработать данные. Для соединения с БД используется функция mysql_connect ().Поскольку соединяться с БД придется не раз,я вынес все данные в функцию connect ()
function connect () {
$hostname="localhost:3306";
$user="root";
$password="ваш пароль";
$db="forum";
mysql_connect ($hostname,$user,$password);
$request=mysql_select_db ($db);
if (!mysql_connect) {
echo "Error: ".mysql_error ();
}
}
Эта функция подключает базу данных и проверяет наличие ошибок соединения. Теперь можно получить и обработать данные пользовательского ввода.
if ($action=="register") {
connect ();
if ($verify) {
$query="select id from info where name='$login'"; // Запрос к БД.
$result=mysql_query ($query);
if (mysql_num_rows ($result)) { // Проверяем,не существует ли уже такой пользователь.
print_header ();
echo "<p align=center><b>Error!</b>";
echo "<p>Name <b>".$login."</b> already exists.Please,go back and choose another name.";
Все поля обязательны для заполнения. Пользователь должен ввести свое имя,под которым он регистрировался в БД и пароль.Скрипт проверяет наличие их в БД,и если все нормально-помещает сообщение в таблицу topics.Если же имя и пароль введены неверно-выдается ошибка.Помещать сообщения могут только зарегистрированные пользователи. Вот как это выглядит:
elseif ($action=="add_new_top") {
connect (); // Соединяемся с БД.
if ($test) {
// Читаем данные из формы.
$date=date ( "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)
Все эти предосторожности не лишние. Во-первых в целях безопасности самой базы данных. Во-вторых для защиты форума от случайных посетителей и от взлома. Новый топик создан и информация добавлена в таблицу topics. Далее рассмотрим,как разместить ответ на сообщение.
Посылка ответа на сообщение
Она ничем не отличается от создания нового топика,только ответ помещается в таблицу replies. Сгенерируем форму.
Создал блог о туризме Прошу указать на мои ошибки, может чего добавить нужно Вот одна из статей:Сайт про http://slyspider.net - путешествие по странам мира. В хорошем качестве для вас фото сюжеты и аудио-передачи.
Привет, я хочу сделать дома ремонт и обставить все дизайнерской мебелью, ну или какой нибудь интресно (не как у всех), не подскажите фирму или сайт где можно найти специалистов, но только так что бы они были уже проверены и были гарантии качества? Подскажите пожалуйста.
Интересные обзоры полезных игр Всё таки тема наверняка многим достала, но http://obzormania.ru/ - лучшие игры, всё таки есть. На http://obzormania.ru/igronevs/ - http://obzormania.ru/