Перейти к содержимому


- - - - -

БД форума


Сообщений в теме: 5

#1 Mechanicus

    Бывалый

  • Members
  • PipPip
  • 183 сообщений
  • Интересы:Тяжелая музыка, интернет, веб-дизайн, компьютеры (железо).

Отправлено 15 Октябрь 2006 - 21:03

Народ, пожалуйста, подскажите принцип организации базы данных форума, если можно, с примерами или ссылками на статьи по сабжу.

#2 Expramentoxifologic

    туберкулез

  • Members
  • PipPipPipPipPip
  • 1 207 сообщений

Отправлено 16 Октябрь 2006 - 08:51

А чё там объяснять? phpMyAdmin и вперёд смотреть... там всё по названиям понять можно.
hate

#3 Mechanicus

    Бывалый

  • Members
  • PipPip
  • 183 сообщений
  • Интересы:Тяжелая музыка, интернет, веб-дизайн, компьютеры (железо).

Отправлено 16 Октябрь 2006 - 16:17

О, спасибо, а то я в этих делах пока что чайник)
Сейчас же начну с этой прогой разбираться.

#4 sizz

    Бывалый

  • Members
  • PipPip
  • 150 сообщений

Отправлено 27 Октябрь 2006 - 13:00

гостевую книгу делал когда-нибудь? если нет - то начни с нее.
форум - по сути несколько гостевых книг.

Сообщение отредактировал sizz: 27 Октябрь 2006 - 13:01


#5 V1t

    Старейшина

  • Members
  • PipPipPipPipPip
  • 1 124 сообщений
  • Пол:Мужчина
  • Город:Саратов
  • Интересы:IT<br />/ Мы из группы людей которые делают правильные вещи, причиняют ласку и вытворяют добро! /

Отправлено 28 Октябрь 2006 - 12:21

Вот нашел примитивный скрипт. Понятно что это криво, неверно и прочее, но чтобы понять как оно все работает самое то. Аффтор сего скрипта: www.chemport.ru

install.php (кстати требуется MySQL). Ну понятно что делает.
 
<?
if (!isset($action)) {
echo "<html><head><title>Инсталляция форума</title></head><body><form action=\"$PHP_SELF\" method=\"POST\"><table align=center width=70%><tr><td align=right>Сервер БД:&nbsp;</td><td align=left><input type=\"text\" name=\"serv\" size=\"40\" value=\"localhost\"></td></tr><tr><td align=right>login для доступа к БД:&nbsp;</td><td align=left><input type=\"text\" name=\"logi\" size=\"40\"></td></tr><tr><td align=right>пароль для доступа к БД:&nbsp;</td><td align=left><input type=\"text\" name=\"passw\" size=\"40\"></td></tr><tr><td align=right>имя БД:&nbsp;</td><td align=left><input type=\"text\" name=\"d_name\" size=\"40\"></td></tr><tr><td align=right>название создаваемой таблицы:&nbsp;</td><td align=left><input type=\"text\" name=\"t_name\" size=\"40\" value=\"forum\"></td></tr><tr><td align=right>логин для администрирования форума:&nbsp;</td><td align=left><input type=\"text\" name=\"u_log\" size=\"40\"></td></tr><tr><td align=right>пароль для администрирования форума:&nbsp;</td><td align=left><input type=\"text\" name=\"u_pass\" size=\"40\"></td></tr><tr><td align=center colspan=2><input type=\"hidden\" name=\"action\" value=\"install\"><input type=\"submit\" value=\"сохранить\" size=\"40\">&nbsp;<input type=\"reset\" value=\"очистить\" size=\"40\"></td></tr></table></form></body></html>";
}
if (isset($action) && $action=="install") {
$file=fopen("index.php","r") or die ("Нет доступа к файлу index.php");
$rf=fread($file,filesize("index.php")) or die ("Нет доступа к файлу index.php");
fclose($file);
$rf=eregi_replace("nameofdbserver",$serv,$rf);
$rf=eregi_replace("dblogin",$logi,$rf);
$rf=eregi_replace("dbpassword",$passw,$rf);
$rf=eregi_replace("dbname",$d_name,$rf);
$rf=eregi_replace("nameoftable",$t_name,$rf);
$rf=eregi_replace("administratorlogin",$u_log,$rf);
$rf=eregi_replace("userpassword",$u_pass,$rf);
$file=fopen("index.php","w") or die ("Нет доступа к файлу index.php");
fwrite ($file,$rf) or die ("не разрешена запись в index.php");
fclose($file);
mysql_connect($serv, $logi, $passw) or die("не могу подключиться к базе");
mysql_select_db($d_name) or die("Не могу выбрать базу данных");
mysql_query("CREATE TABLE `$d_name`.`$t_name` (`id` int(11) NOT NULL auto_increment,`msg` text NOT NULL,`ans` int(11) NOT NULL default '0',`author` text NOT NULL,`topic` text NOT NULL,`date` text NOT NULL,`host` text NOT NULL,UNIQUE KEY `id` (`id`)) TYPE=MyISAM") or die ("не могу создать таблицу в базе данных");
header("Location: index.htm");
}
?>

Основное. index.php
 
<?
$server="nameofdbserver";
$db_user="dblogin";
$db_pass="dbpassword";
$database="dbname";
$admin="administratorlogin";
$password="userpassword";
$t="nameoftable";
mysql_connect($server, $db_user, $db_pass) or die("не могу подключиться к базе");
mysql_select_db($database) or die("Не могу выбрать базу данных");

function DelTree($ref, $lvl, $ta) { 
$result=mysql_query("SELECT id,msg,ans,author,topic,date,host FROM $ta WHERE ans=".$ref." ORDER BY id desc");
global $lvl;
mysql_query("delete from $ta where id='$ref'");
$lvl++; 
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result) ) {
$ID1 = $row["id"];
mysql_query("delete from $ta where id='$ID1'");
DelTree($ID1, $lvl, $ta); 
$lvl--;
}
}
}
function ShowTree($ref, $lvl, $mssge, $log, $pas, $tb) { 
global $lvl; 
$result=mysql_query("SELECT id,msg,ans,author,topic,date,host FROM $tb WHERE ans=".$ref." ORDER BY id desc");
$lvl++; 
if (mysql_num_rows($result) > 0) {
echo("<UL type=square>\n");
while ($row = mysql_fetch_array($result) ) {
$ID1 = $row["id"];
echo("<LI>\n");
echo("<a href=\"$PHP_SELF?cmd=show&id=".$ID1."\" target=\"mes\">".$row["topic"]."</a><font  style=\"font-size:80%\"> - прислано ".$row["author"]." @ ".$row["date"]."</font>");
if ($mssge==1){
echo "<form method=\"POST\"><input type=\"hidden\" name=\"cmd\" value=\"del\"><input type=\"hidden\" name=\"login\" value=\"$log\"><input type=\"hidden\" name=\"id\" value=\"$ID1\"><input type=\"hidden\" name=\"pass\" value=\"$pas\"><input type=\"submit\" value=\"удалить\"></form>";
}
else { echo "\n"; }
ShowTree($ID1, $lvl, $mssge, $log, $pas, $tb); 
$lvl--;
}
echo("</UL>\n");
}
}
if (!isset($cmd) && !isset($login)) {
echo "<html><head><title>Форум</title><head><style>a {text-decoration: none; font-weight: bolder;}</style></head>";
echo "<body>";
ShowTree(0, 0, 0, 0, 0, $t);
}
if (isset($cmd) && isset($id) && $cmd=="show"){
echo "<html><head><title>Форум</title>";
$a=mysql_query("select id,msg,ans,author,topic,date,host from $t where id='$id'");
$b=mysql_fetch_row($a);
$m=eregi_replace("\n","<br>",$b[1]);
$l=gethostbyaddr($REMOTE_ADDR);
$n=date("r");
$p=eregi_replace("\n","\n:",$b[1]);
echo "<table width=100% border=1><tr><td width=50% align=left bgcolor=yellow><b>Автор: </b>$b[3]   <b>Время: </b>$b[5]";
echo "   <b>ID: </b>$b[0]<br><b>Host: </b>$b[6]   <b>Тема: </b>$b[4]</td><td width=50% align=center bgcolor=yellow>";
echo "<b>Ваш ответ:</b></td></tr><tr><td valign=top align=justify>$m</td><td align=center><center><form action=$PHP_SELF method=\"POST\" !TARGET=_SELF><table align=center border=0><tr><td align=right>Name: </td><td align=left><input type=\"text\" name=\"name\" size=\"40\"></td></tr><tr><td align=right>Subject: </td><td align=left><input type=\"text\" name=\"topic\" size=\"40\" value=\"Re: $b[4]\"></td></tr><input type=\"hidden\" name=\"cmd\" value=\"new\"><input type=\"hidden\" name=\"time\" value=\"$n\"><input type=\"hidden\" name=\"ans\" value=\"$b[0]\"><input type=\"hidden\" name=\"host\" value=\"$l\"><tr><td align=right>Message: </td><td align=left><textarea name=\"msg\" rows=7 cols=30>:$p</textarea></td></tr><tr><td align=center colspan=2><input type=\"submit\" value=\"Отправить\">&nbsp;<input type=\"reset\" value=\"Очистить\"></td></tr></table></form></center></td></tr></table><p align=right><a href=\"$PHP_SELF?cmd=ac\" style=\"text-decoration: none\"><font size=\"-2\">restricted area</font><br></a><center><font size=\"-2\">Скрипт предоставлен <a href=http://www.chemport.ru>www.chemport.ru</a></font></center>";
}
if (isset($cmd) && $cmd=="new"){
mysql_query("insert into $t (msg,ans,author,topic,date,host) values ('$msg','$ans','$name','$topic','$time','$host')");
echo "
<script language=\"JavaScript\">
<!--
parent.location.href=\"index.htm\";
//-->
</script>";
}
if (isset($cmd) && $cmd=="mes"){
$l=gethostbyaddr($REMOTE_ADDR);
$n=date("r");
echo "<html><head><title>Форум</title><center><h3>Новая тема:</h3><form action=$PHP_SELF method=\"POST\" !TARGET=_SELF><table align=center border=0><tr><td align=right>Name: </td><td align=left><input type=\"text\" name=\"name\" size=\"40\"></td></tr><tr><td align=right>Subject: </td><td align=left><input type=\"text\" name=\"topic\" size=\"40\" value=\"$b[4]\"></td></tr><input type=\"hidden\" name=\"cmd\" value=\"new\"><input type=\"hidden\" name=\"time\" value=\"$n\"><input type=\"hidden\" name=\"ans\" value=\"$b[0]\"><input type=\"hidden\" name=\"host\" value=\"$l\"><tr><td align=right>Message: </td><td align=left><textarea name=\"msg\" rows=7 cols=30>$k</textarea></td></tr><tr><td align=center colspan=2><input type=\"submit\" value=\"Отправить\">&nbsp;<input type=\"reset\" value=\"Очистить\"></td></tr></table></form></center><p align=right><a href=\"$PHP_SELF?cmd=ac\" style=\"text-decoration: none\"><font size=\"-2\">restricted area</font><br></a><center><font size=\"-2\">Скрипт предоставлен <a href=http://www.chemport.ru>www.chemport.ru</a></font></center>";
}
if (isset($login) && $login==$admin && isset($pass) && $pass==$password && !isset($cmd)){
echo "<center><h3>При удалении сообщения удаляются и все ответы на него!!!</h3></center>";
ShowTree(0,0,1,$login,$pass,$t);
}
if (isset($login) && $login==$admin && isset($pass) && $pass==$password && isset($cmd) && $cmd=="del") {
DelTree($id,0,$t);
header("Location:$PHP_SELF?login=$admin&pass=$password");
}
if (isset($cmd) && $cmd=="ac"){
echo "<form action=\"$PHP_SELF\" method=\"POST\"><table align=center><tr><td align=right>login:&nbsp;</td><td align=left><input type=\"text\" name=\"login\"></td></tr><tr><td align=right>пароль:&nbsp;</td><td align=left><input type=\"password\" name=\"pass\"></td></tr><tr><td collspan=2 align=center><input type=\"submit\" value=\"oтправить\">&nbsp;&nbsp;<input type=\"reset\" value=\"очистить\"></td></table></form>";
}
echo "</body></html>";
?>

Сообщение отредактировал V1t: 28 Октябрь 2006 - 12:23


#6 Mechanicus

    Бывалый

  • Members
  • PipPip
  • 183 сообщений
  • Интересы:Тяжелая музыка, интернет, веб-дизайн, компьютеры (железо).

Отправлено 24 Ноябрь 2006 - 11:17

V1t, спасибо!





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анононимных