Kar nekaj časa je minilo od zadnjega članka, ki je bil namenjen programerjem, zato sem sklenil,
da napišem nekaj, kar vam bo v pomoč pri izdelavi spletnih strani s pomočjo jezika PHP.
V tem članku se bomo ukvarjali z izdelavo enostavne strani za novice, ki bo do neke mere podobna strani z novicami, ki
je uporabljena na www.3delavnica.com, je pa tudi predelava že objavljenega članka "PHP News scripta" in
sicer z uporabo objektno orientiranega pristopa. Sam članek pa je v osnovi bolj prikaz, kako uporabljati
razrede in objekte, kot pa namenjen produkcijski rabi.
Za testiranje kode, ki je priložena, potrebujete nameščen
PHP različice 4.x.x,
APACHE WEB strežnik (lahko tudi IIS), ter
MySQL Bazo. Lahko pa si namestite
PHP Triad,
ki s seboj prinese vse potrebne komponente (PHP, APACHE in MySQL).
Predlagam tudi, če niste seznanjeni z jezikom PHP, da si preberete članka
"PHP - Osnove" in
"PHP - Operatorji", katera je spisal naš uporabnik
xbite.
Pa preidimo na članek.
Struktura strani (prenesi ):
class (direktorij z datotekami, ki vsebujejo class-e)
Common.php (splošne funkcije)
DBFunctions.php (funkcije za delo z bazo)
User.php (funkcije za delo z uporabniki)
include (direktorij za bolj splošne datoteke)
Variables.php (datoteka z definiranimi spremenljivkami, konstantami, ...)
index.php (začetna stran uporabljena za prikaz novic)
comments.php (stran za prikaz komentarjev)
news_add.php (stran za dodajanje novic)
news_del.php (stran za brisanje novic)
comm_add.php (stran za dodajanje komentarjev)
comm_del.php (stran za brisanje komentarjev)
login.php (stran za prijavo v sistem)
logoff.php (stran za odjavo)
Stran uporablja tudi podatkovno bazo, in sicer s sledečo strukturo
(prenesi
):
test
novice (tabela za novice)
Ime Tip NULL Default Extras
id int(6) unsigned NO auto_increment
naslov varchar(100) NO
opis text NO
datum datetime NO 0000-00-00 00:00:00
avtor varchar(20) NO
komentarjev int(4) NO 0
prikaz tinyint(1) NO 1
komentarji (tabela za komentarje)
Ime Tip NULL Default Extras
id int(6) unsigned NO auto_increment
id_novica int(6) NO 0
komentar text NO
datum datetime NO 0000-00-00 00:00:00
avtor varchar(20) NO
uporabniki (tabela za uporabnike)
Ime Tip NULL Default Extras
id int(6) unsigned NO auto_increment
uporabnik varchar(20) NO
geslo varchar(8) NO
Razlaga uporabljenih funkcij in ukazov za lažje razumevanje kode
echo - uporablja se za izpis vsebine na stran
include_once() - s to funkcijo vključimo izbrano datoteko v obstoječo stran in kot samo ime pove, funkcija preverja, če je bila datoteka že vključena
$spremenljivka = new Objekt() - pri objektnem programiranju objekt kreiramo s pomočjo funkcije new
$this-> - s tem ukazom dostopamo do spremenljivk in funkcij znotraj razreda (class-a)
class ImeRazreda extends ImeOsnovnegaRazreda - extends razširi osnovni razred z dodatnimi funkcionalnostimi
empty() - preverimo, če je spremenljivka prazna
isset() - preverimo, če je spremenljivka nastavljena
unset() - objekte po uporabi sprostimo, da ne zasedajo pomnilnika
while() - najenostavnejša zanka v PHP
if, else - preverjanje pogojev, ...
ob_start() - vsebino, ki jo vrne skript, shranimo v interni buffer
ob_end_flush() - izpis vsebine bufferja
header() - pošiljanje headerja strani (uporabno za preusmeritve, autentikacijo, ...)
define() - definicija konstante
date() - vrne datum in/ali čas glede na izbrani format
strtotime() - sprememba tekstualnega datuma v Unix timestamp
array() - definiranje arraya vrednosti
count() - preštetje vrednosti v spremenljivki (tipično v arrayu)
$_REQUEST[] - branje request spremenljivke
$_COOKIE[] - branje cookie spremenljivke
setcookie() - kreiranje piškotka (cookie)
addslashes() - dodajanje slashev spremenljivkam, kjer je to potrebno
stripslashes() - inverzna funkcija od addslashes
nl2br() - zamenjava novih vrst (nl) s HTML novimi vrstami ( )
is_numeric() - preverimo, če je podana vrednost število
die() - takojšnje končanje izvajanja skripta
Slovarček
class - Razred
function - Funkcija
extend - Razširiti
Opombe:
Za vse kar je klicano na način $db->nekaj, ali $comm->nekaj, pomeni, da imamo opravka z objektom, ki ima metode zapisane v razredu.
|