Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako napraviti jednostavan forum u php-u ?

[es] :: PHP :: Kako napraviti jednostavan forum u php-u ?

Strane: 1 2

[ Pregleda: 13214 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.ftl.fdn.com



+1 Profil

icon Kako napraviti jednostavan forum u php-u ?01.04.2002. u 18:09 - pre 268 meseci
U poslednje vreme dosta ljudi se javljalo kako zele da instaliraju forum za njihov sajt , pa imaju teskoce oko instaliranja foruma tipa IkonBoard, phpBB itd itd....
Zasto ne bi napravili svoj forum ? Veoma je jednostavno i nije tesko... Uz osnovno znanje php-ja i mysql, u roku od pola sata mozete napraviti funkconalan php-based forum u kome moze postovati bilo ko.
Na pocetku, da kazem da je potrebno da znate html i basic stvari oko sintakse php i mysql-ja, posto u sintaksu troje pomenutih necemo zalaziti.

Za pocetak, da razmotrimo sta nam je sve potrebno za nas forum ?

Prvo, trebamo da napravimo tabelu u bazi gde ce se sve poruke nalaziti. Nazovimo nasu tabelu posts. Polja koja bi ta tabela trebalo da sadrzi bi otprilike bila:

Code:

id - integer(5), auto increment, primary key
pid - integer(5)
autor - char(30)
subject - char (30)
text - blob
datum - char(20)


Svakoj poruci ce automatski biti dodeljen id broj, koji ce biti razlicit za svaku poruku. Sada moramo razmotriti kako prepoznati prvu poruku u nekoj temi ? Pa, veoma lako. Za to nam sluzi polje pid. Naime, svakoj pocetnoj poruci u nekom threadu cemo dodeliti pid vrednost 0 kako bi znali koja nam je prva poruka u nekom threadu. Posle toga kada neko odgovori na tu poruku, tj. napise odgovor u tom threadu, svakoj poruci cemo deliti pid koji ce biti jednak sa id-om pocetne poruke.
Primer:
Ako zelim da napisem novu temu, kada unesem sve potrebne podatke, poruci se dodeljuje id=35 na primer, a za pid se dodeljuje 0 naravno.
Sada kada neko dodje i zeli da odgovori na temu, on isto pise novu poruku, samo sto se toj novoj poruci dodeljuje id bilo koji sledeci, a pid ce biti 35 kao sto pogadjate i sami.

Za unos pocetne poruke u bazu koristimo nesto tipa:

Code:

$result = mysql_query ("insert posts, set pid=0, autor='$var_autor', subject='$var_subject', text='$var_text', datum='$var_datum'", $db);


Promenljive $var_autor, $var_subject, $var_text dolaze iz forme i to sami mozete srediti, a promenljivu $var_datum treba srediti nesto kao:

Code:

$var_date=date("m-d-Y");


Kada treba da izlistamo sve threadove, to znaci da treba da izlistamo naslove svih poruka ciji je pid=0 a to cemo uraditi na sledeci nacin:

Ovako izgleda nas list.php fajl

Code:

echo "<table border='1'><tr><td>Autor<td>Subject<td>Datum</td></tr>";
$result=mysql_query("select autor, subject, datum, id from posts where pid=0", $db);
while ( $myrow = mysql_fetch_array($result) ) {

$a=$myrow[0];
$s=$myrow[1];
$d=$myrow[2];

echo "<tr><td>$a<td><a href='view_thread.php?mid=$myrow[3]'$s</a><td>$d</td></tr>";

}

echo "</table>";


Nas view_thread.php bi trebalo da izgleda ovako:

Code:

echo "<table border='1'><tr><td>Autor<td>Text</td></tr>";

$result=mysql_query("select * from posts where pid='$mid'", $db);
while ( $myrow = mysql_fetch_array($result) ) { 

echo "<tr><td>$myrow[2]<p>$myrow[5]<td>$myrow[3]<p>$myrow[4]</td></tr>";
}


echo "</table>";


Dakle, napravili smo dve stvari, listu svih tema (list.php) i listu svih poruka u nekoj temi (view_thread.php).
Sada je potrebno uraditi stranicu za repliku.

Kada se vrsi replika, tj odgovor na thread, onda prvo moramo da znamo koji je pid od poruke na koju vrsimo odgovor.

Na stranici view_thread.php u formularu gde ce se nalaziti Reply button, morate uraditi sledece:

Code:

<form ation='reply.php?id=$mid' method='post'>
(ovde dodajete taster reply)
</form>


Kada user klikne na Reply, onda ga vodi na reply.php?id=35 na primer.

Na stranici reply.php napravite formu za unos na sledeci nacin

Code:

<form method='reply1.php?id=$id' method='post'>
(ovde pravite formu sa svim poljima)
</form>


Na stranici reply1.php konacno se vrsi unos poruke u bazu:

Code:

$var_autor=htmlspecialchars($var_autor);
$var_subject=htmlspecialchars($var_subject);
$var_text=htmlspecialchars($var_text);

$result=mysql_query("insert posts set pid='$id', autor='$var_autor', subject='$var_subject', text='$var_text', datum='$var_datum'", $db);


Takodje na stranici reply1.php zelite da stavite nesto tipa:

Code:

echo "Vasa poruka je uneta. <a href='list.php'>Kliknite ovde</a> za povratak na glavnu stranu";


To bi bilo to otprilike, Obratitie paznju da je ovo najjednostavniji forum sistem koji postoji. Imalo bi tu jos dosta stvari da se poradi kako bi se poboljsao kvalitet. Neke od stvari koje nisu pomenute:

-verifikacija polja, (da li je neko polje prazno?)
-lepse formatiranje displaya
-duzina texta koji je unet
-umesto datum polja koristiti timestamp(14) u mysql-u
-kao sto vidite, ovo je samo jedan forum , a ako zelite da imate vise kategorija foruma kao sto na es postoji, onda morate imati tabelu forms na primer, to nisam objasnjavao ovde, jer bi stvari postale slozenije

I tako dalje i tako dalje. Iako mozda izgleda sve slozeno i nerazumno, u principu je prosto.

Za primer pogledajte na www.zoki.co.yu pod stavkom Forum rezultat ovoga sto sam objasnio.

Nadam se da sam bar nekom pomogao da napravi svoj php forum, i da ne mora da se muchi oko instalacije Ikonboarda ili phpBB foruma i tako dalje.... Pre ili kasnije svako shvati da je php kraljevski jezik :D


[Ovu poruku je menjao Trunks dana 17.09.2002. u 12:39 GMT]
 
Odgovor na temu

madboy
The Republic Of Zabjelo

Član broj: 419
Poruke: 62
195.66.174.*

ICQ: 139501986
Sajt: www.madboyisveryangry.com


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?02.04.2002. u 08:59 - pre 268 meseci
Vauuu ovo je bilo super. Ovakvih stvari bi trebalo da bude vise jer ovako ne samo sto cemo mi naucit da napravimo forum ili sl nego se lakse upoznajemo sa php-om eto..
:::::::::::::::::::::::::::::::::::::::::
::---------veliki pozdraw sa------::
::-------------------------------------::
::-------ZABJELA REPUBLIKE-----::
:::::::::::::::::::::::::::::::::::::::::
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.proxy.aol.com



+2 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?02.04.2002. u 09:08 - pre 268 meseci
Pa nije Zoki maciji kasalj brate, to ti je Florida...Svaka cast, ali ne samo na forumu sto si napisao nego na uspehu, jer ja iskreno da se nalazim na Floridi vecinu vremena bih provodio ganjajuci Charapanke. :)

Ljepo uradjeno i objsanjeno.
 
Odgovor na temu

FlatLine
Beograd

Član broj: 873
Poruke: 72
*.isionline-dialin.de



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?05.04.2002. u 03:54 - pre 268 meseci
Vidiš, ja sam pre par dana napisao jedan mini forum koji je skoro potpuno isti kao i ovaj tvoj, samo se nisam setio da može pid da se ubacuje nego sam napravio dva table-a, jedan sa prvim postovima i jedan sa replys, inače sve ostalo je isto :)

Samo ovo mi nije jasno: "datum - char(20)", "$var_date=date("m-d-Y");" i "umesto datum polja koristiti timestamp(14) u mysql-u"

Ja sam mu lupio: post_date - INT i onda ubaciš time(); u to polje tako da je baratanje datumom i vremenom pojednostavljeno do maksimuma i uvek format možeš da promeniš. $post_time = date ("H:i d/m/y ", $row["post_date"]);

A i ovo iz iskustva: $var_text=nl2br(htmlspecialchars($var_text));

Sve jedno, dobro je da se neko potrudio da objasni ovo. Ja znam da ja ne bih mogao. Jedno je pisati script a nešto sasvim drugo, uputstvo. Svaka čast!
guru in training
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vis.clearwire-dns.net.



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?05.04.2002. u 05:25 - pre 268 meseci
Pa ovo za datum, to sam stavio da se datum pravi pomocu date komande i da se u bazi cuva kao char(20). Najjednostavniji nachin.

A posle toga kao predlog na kraju sam rekao da bi datum mogao da se cuva kao timestamp(14) u bazi, s tim sto kad se vadi iz baze dobije se jedan 14-cifreni broj, a to u stvari predstavlja godinu(4 cifre), mesec, dan, sat, min i sekunde. Pa za to bi trebalo onda napraviti funkciju koja razdvaja sve to i prikazuje lepo formatiran datum. Slozeniji nachin :)

I da, na kraju sam samo zaboravio da dodam nl2br (niko nije savrsen :), koji pretvara sve \n kodove u <br> tagove.

Hvala svima na lepim rechima.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?05.04.2002. u 10:55 - pre 268 meseci
S tim da svi oni koji nemaju MySQL na serverima mogu samo da blenu u ovaj kod... Trebalo je napisati (ako vec postoji potreba) da sve stoji u nekom plaintext-u ili DB bazi (ona postoji svuda! i ugradjena je u PHP)... Cisto da se sirokim narodnim masama priblizi sve to...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?06.04.2002. u 21:26 - pre 268 meseci
Da, hajde da vidimo kako bi sve izgledalo bez mySQL-a. Pokazi PHP fstream (fopen(), fwrite(), fclose())... Ako moze naravno.

If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vis.clearwire-dns.net.



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?06.04.2002. u 22:46 - pre 268 meseci
Hmm pa moze naravno ali nisam to do sad radio...Videcu da probam nesto kada budem imao vremena, a mogli bi i ostali da ovo prihvate kao izazov da napisu nesto ovako :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.in.us.prserv.net



+2 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?06.04.2002. u 22:54 - pre 268 meseci
Hocete da se napise sa writable fajlovima .txt i da se tu cuva sve, ima da probam veceras da to napravim :)
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?06.04.2002. u 23:29 - pre 268 meseci
Prikazivanje sadržaja fajla (učitava se u string)

$fajl = readfile("imefajla");
echo $fajl;

međutim problem mi se dešavao prilikom formatiranig ispisa. Zna li neko proceduru za ispis liniju po liniju, isto tako potrebna mi je sintaksa za kreiranje fajla (formatiranog), da se prosledi tekst iz forme.

Neki drugi način sem

$f = fopen("imefajla", "w");
$tekst = "$txt";
fputs($f, $tekst);
fclose($f);

?

If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vis.clearwire-dns.net.



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:25 - pre 268 meseci
evo ja upravo to radim ali nemogu nikako da ga nateram da predje u novi red

probao sam

fwrite($fp, "\n");

ali on samo stavlja onaj kvadratic u txt fajl ali ne prelazi u novi red ?
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:27 - pre 268 meseci
Da, o tome ti govorim .. jedino shto se moze uraditi je html code da ubacish <br> ali to nije prakticno resenje ... Nista cu radim, valjda cu neshto da procackam.
Anyway, si primetio broj koji stavlja na kraju ? Barem se meni to deshava ako radim sa readfile ?
If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vis.clearwire-dns.net.



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:33 - pre 268 meseci
ne znam koji broj na krahu ???

anyway, provalio sam ovo. Potrebno je uraditi \r\n, tako da izgleda nesto ovako:

fwrite($fp, "\r\n");

tada ce preci u novi red :)

ja sam osmislio da se id od poruka cuva u prvom redu fajla, a postovi se posle appenduju u svakoj novoj liniji sa pocetnom reci [new_post] itako dalje....

idem sad u prodavnicu, nadam se da cu napraviti nesto do veceras :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.in.us.prserv.net



+2 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:40 - pre 268 meseci
Sto ne pomesas sa html
fwrite ($fp, <BR>\n);
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:42 - pre 268 meseci
Da skontah za novi red, ID nije problem, ali ovaj kod mi sad stvara muke, elem na kraju svakog stringa proizvoljno dodaje 329, 12 ili tako nesto. Kako ti ispisujesh fajlove ?

If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:46 - pre 268 meseci
Citat:
01011011:
Sto ne pomesas sa html
fwrite ($fp, <BR>\n);


Jer morash znati koliki ti je size boxa u kojem ces ispisivati fajlove, shto moras priznati zvuci idiotski.
If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.tehnicom.net



Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 00:50 - pre 268 meseci
Citat:
01011011:
Pa nije Zoki maciji kasalj brate, to ti je Florida...Svaka cast, ali ne samo na forumu sto si napisao nego na uspehu, jer ja iskreno da se nalazim na Floridi vecinu vremena bih provodio ganjajuci Charapanke. :)

Ljepo uradjeno i objsanjeno.


I tata bi sine, ali nisam znao bas da ima dosta charapanki na floridi - pojasni malo, bas me interesuje.

Izvinjavam se sto odstupam od teme, ali ... :)

pozdrav
fire, walk with me
 
Odgovor na temu

FlatLine
Beograd

Član broj: 873
Poruke: 72
*.isionline-dialin.de



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 16:04 - pre 268 meseci
Citat:
t3chX:
Prikazivanje sadržaja fajla (učitava se u string)

$fajl = readfile("imefajla");
echo $fajl;


int readfile (string filename [, int use_include_path])
Reads a file and writes it to standard output. --> Znači, ovaj code gore je pogrešan.. uopšte ne definišeš varijablu $file jer funkcija readfile sama izbaci sadržaj fajla. Probaj bez echo i videćeš:
Code:
readfile ("imefajla");


Ja skoro uvek koristim:
Code:
 $file = implode ("", file ("imefajla"));



guru in training
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vis.clearwire-dns.net.



+1 Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?07.04.2002. u 22:23 - pre 268 meseci
Ja chitam fajl, otvorim ga sa fopen(); pa onda liniju po liniju retrivujes u petlji.

Anyway pogledajte temu o txtForumu, napravio sam ga!
 
Odgovor na temu

Sale81

Član broj: 3814
Poruke: 386
62.41.48.*

Jabber: sale@elitesecurity.org


Profil

icon Re: Kako napraviti jednostavan forum u php-ju ?02.06.2002. u 01:51 - pre 266 meseci
Evo da iskopam ovu temu... jer je topic ODLICAN!

Bilo bi fino da kod zipujete i postavite :)
- necitak -
 
Odgovor na temu

[es] :: PHP :: Kako napraviti jednostavan forum u php-u ?

Strane: 1 2

[ Pregleda: 13214 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.