System komentarzy


Komentarze, szczerze powiedziawszy jeszcze nie wiem jak to zrobic. Po to pisze ten artykuł, mam nadzieje ze mi pomoze. Zaczne od definicji słowa komentarz, jest to opinia kogos do czegos i wyraża stosunek osoby do jakiejś sprawy, przedmiotu; pozytywny lub negatywny.
Zatem potrzebna będzie nam baza danych lub cokolwiek żeby mieć gdzie trzymac te opinie. Może być nawet czysty zeszyt w kratke ale musi mieć dużo kartek. ^_^
Ale ja zrobie to na bazie o takiej postaci:


CREATE TABLE `comments` (
`id` mediumint(10) NOT NULL auto_increment,
`what` varchar(255) NOT NULL default ”,
`idwhat` varchar(255) NOT NULL default ”,
`guest` varchar(255) NOT NULL default ”,
`user_id` varchar(10) NOT NULL default ”,
`content` text NOT NULL,
`mail` varchar(255) NOT NULL default ”,
`data` datetime NOT NULL default ‘0000-00-00 00:00:00′,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;


A teraz opis:

id to jest id, taka liczba porządkowa, what tutaj trzymane jest to co ma rozruznić czy komentarzowi podlega obrazek, artykół czy inny urzytkownik, w moim przypadku jest to id modułu który obsługuje daną treść ale równie dobrze może on odnosic się do jakiejś tablicy czy czegoś co wskaże baze danych w ktorej znajduje się element. Idwhat to id tego elementu w bazie. Guest to nick gościa ktury daje komentarz jeśli nie jest zalogowany, user_id to id gościa który jest zalogowany, content to treść komentarza, mail to mail a data to data.


Let’s do it.


Oczywiście cały skrypcik będzie w osobnym pliku. Odwolamy się do niego przez dwa linki, pokaż komentarze i skomentuj, np. takie:

Index.php?page=comments&what=$page&idwhat=$jakias_rzecz_id&mode=new

i

Index.php?page=comments&what=$page&idwhat=$jakias_rzecz_id&mode=show


Zarówno pierwszy jak i drugi link jest prosty do rozwinięcia, zacznijmy od pierwszego, ma on dodawac komentarz, a zatem trzeba zrobic formularz w srodku jakiegos ogólnego ifa:


If($mode==’new’) {
..
} elseif ($mode==’show’) {
..
} else {
Echo „ktoś mi haCkuje komentarze?”;
}


I formularz do nowego komentarza:


If($run==’ok’) {
..
} else {
If($_session[‘loged’]==1) {
$adds=’’;
} else {
$adds=”
<tr><td><input type=text name=nick></td></tr>
<tr><td><input type=text name=mail></td></tr>
”;
}
$content=”
<form method=post action=”./*tu wiadomo co*/.”>
<table width=100%>
$adds
<tr><td>
<textarea name=coment rows=10 cols=40></textarea>
</td></tr>
<tr><td><input type=submit name=run value=ok></td></tr>
</table>
</form>”;
}

Następnie zapytanie do bazy danych która to zapisze. (wstawiamy to tam gdzie kropeczki)


if (strlen($coment)>400) {
$content=”zbyt dlugi komentarz gosciu”;
} else {
$sql->query(“insert into comments (what, idwhat, guest, user_id, content, mail, data)
values (‘$what’, ‘$idwhat’, ‘$nick’,’{$_SESSION['uid']}’, ‘$coment’, ‘$mail’,'”.date(“YmdHis”).”‘)”);
$content=”Thx za komentarz!”;
}

I to tyle. Jeszcze tylko wyświetlanie formularzy które odbędzie się przez zapytanie do bazy danych:


Select * from comments where what=’$what’ and idwhat=’$idwhat’


I wyświetlenie ich przez pętle while.


Chyba proste. Dobrze sprawdza się zastosowane w takim systemie jak napisalem w artykule o budowie stron.


Leave A Reply

Comments

No comments yet, be the first to add one!

Kategorie