ShoutBox in PHP de Radu Mogos
:: ShoutBox in PHP ::
Probabil ca va intrebati cum se face un shoutbox in PHP, a-ti vrea si voi ceva identic
pentru site-ul vostru sau pur si simplu nu aveti ce citi...
De aceea m-am gandit ca o serie de explicatii privind
sursa aplicatiei ar prinde bine cuiva, si anume celor interesati. Pentru download mergeti la sfarsitul paginii.
Sa trecem peste literatura si sa analizam primele linii de cod...

Cred ca partea de mai sus nu are nevoie de nici o
explicatie. La "link rel..." introducem CSS-ul folosit de pagina noastra (ca sa arate mai bine).

In urmatoarea sectiune declaram variabilele. $host, $user si $pass sunt
folosite pentru conectare si le inlocuiti cu cele folosite de voi. In $baza avem numele bazei de date din care citim.
Aici, fie creati o baza de date cu acest nume, fie o
inlocuiti cu una existenta. Tabelul $tabel contine urmatoarele campuri: indice:Int(9), auto_increment | autor:varchar(140)
| mesaj:tinytext | website:varchar(130).
$nr_mesaje=20, va afisa ultimele 20 de mesaje introduse. Modificati valoarea in functie de preferinte.
$bg_tabel="#F5F5F5", culoarea de decor a tabelului cu mesaje.
$max_mesaj=300, aici limitati lungimea maxima a mesajului la 300 de litere. Variabila
va fi folosita la declararea campului _mesaj: 
Urmeaza apoi conectarea si selectarea bazei de date:

La "if (isset($_POST['_submit']))" verificam daca a fost apasat butonul "Salveaza"(are numele "_submit") al form-ului, si introducem noile
informatii. Daca am face aceasta verificare la sfarsit atunci ultimul mesaj introdus nu ar fi afisat. Prima paranteza este si ea obligatorie,
de ex: "if isset($_POST['_submit'])" ar da o eroare.
In variabila $data3, de tip string, salvam cererea de inserare a noilor informatii, si apoi cu mysql_query procesam cererea.

Urmatorul pas reprezinta selectarea informatiilor deja existente.
"Select * from '{$tabel}' WHERE 1" face exact acest lucru. In $info1 salvam rezultatul procesarii cererii(query)
si apoi variabila $total va contine numarul maxim de campuri din tabelul $tabel. Daca avem de exemplu 3 mesaje introduse in baza de date,
$total va avea valoarea 3. De ce avem nevoie sa stim numarul de inregistrari din tabelul nostru? Pentru ca vrem sa afisam doar ultimele $nr_mesaje,
si nu pe toate, asa ca trebuie sa stim intre ce valori sa cautam. De exemplu, sa zicem ca $total=46, si vrem sa afisam ultimele 15 mesaje (deci $nr_mesaje=15)
atunci o sa selectam mesajele cu indicele intre 31 si 46, adica $start va fi 31($total-$nr_mesaje) si $end va fi 46($start+$nr_mesaje sau chiar $total). La
"if ($start<0) $start=0;" ne asiguram ca $start pastreaza o valoare pozitiva.

Selectia propriu-zisa o facem acum:

Selectam intai toate mesajele("Select * ...") apoi ordonam selectia
in functie de indice("ORDER BY indice" desi aceasta in mod normal ar fi ordonata, pentru ca indicele nostru se auto incrementeaza; totusi, nu se stie niciodata :))
si setam limita inferioara si superioara de cautare("LIMIT ".$start.",".$end.""). Rezultatul
cautarii noastre va fi salvat in $info2.
Si ultima parte, afisarea...

Prima parte o reprezinta afisarea capului de tabel, cu echo "tabel.. bgcolor={$bg_tabel}". La "if ($total==0)" verificam
daca baza noastra de date este goala, si afisam un mesaj corespunzator, altfel trecem la
afisarea mesajelor, pe care le luam pe rand, cu mysql_fetch_assoc($info2). Tineti minte ca nu afisam toate rezultatele
, ci doar ultimele $nr_mesaje introduse. $row va fi acum o variabila de tip array() care va contine
campurile "autor", "website", "mesaj" si "indice", dar doar pe primele 3 le vom afisa.
"if ($row['website'])" verifica daca avem ceva introdus la campul "website". Daca nu, nickul autorului va fi afisat simplu, bold
altfel vom introduce ca link pagina sa personala, si nickul sau va fi rosu inchis. Afisam in final mesajul continut, si dupa
toate afisarile stergem variabila $info2 si continutul acesteia [mysql_free_result($info2)] si inchidem conexiunea, cu mysql_close().
Nu uitati sa inchideti niciodata conexiunea, pentru ca s-ar putea sa aveti mari probleme cu furtul de informatii.
In final, ShoutBoxul dumneavoastra ar trebui sa arate cam asha ceva:

Ce va ramane de facut e sa-l modificati dupa cum doriti, sa introduceti si verificari pentru website,
verificari pentru mesaje obscene, etc. De exemplu, sa zicem ca la sectiunea de declarare a variablelor introduceti 2 variabile array()
$nu=("prost","idiot","nebun",...);
$da=("destept","geniu","simpatic",...);
Inainte de afisarea mesajului puteti scrie ceva de genul: $row['mesaj']=str_replace($nu,$da,$row['mesaj']);
Sper ca cineva va gasi de folos acest tutorial, sau articol, sau ce o fi. :: Pace ::
Sursa este disponibila: AICI
Autor: Gogs
Sus |
| Trimis de : Radu Mogos | Data intrarii : 3 Ianuarie 2004 | Nivel : incepator |
|
|