Tutoriale PHP
  Comunitatea PHP Romania
 

 
Tutoriale PHP
Articol
Index / Baze de date / Articol
ShoutBox in PHP
de

Situatie: off off off off off
Vezi comentariiDiscuta acest articol (1 comentarii)
TiparesteTipareste
Adauga la favorite-Doar pentru membriiAdauga la favorite
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 MogosData intrarii : 3 Ianuarie 2004Nivel : incepator


[ Profil autor ]
Radu Mogos

Gazduire

Tutoriale

Discuta in forum

Parteneri

Copyright © 2001-2008 PHP Romania Add PHPRomania to Google Add PHPRomania to Del.icio.us Add PHPRomania to Stumbleupon Add PHPRomania to Yahoo! Add PHPRomania to Digg Add PHPRomania to Blink Adverse Credit Remortgage | Mortgages | Mortgages | Mortgage Calculator | Loans
Ads: Partener Way2Web Nework: gazduire web | inregistrare domenii | web design | imobiliare | web hosting
Powered by Simplis