Ndodheni ne: Guidat / PHP
Cookies dhe Sessions ne PHP

Cookies dhe Sessions në PHP

Nga më 21 October 2010 në PHP me 6 Komente

Webi është një mjedis ku nuk ruhet gjendja dhe ky është problem në pjesën më të madhe të aplikacioneve që krijojmë. Por gjithmonë ka një zgjidhje dhe për fat të mirë të thjeshtë për çfarëdo niveli. Në këtë guidë do ju tregoj si të përdorni Cookies dhe Sessions në avantazhin tuaj për të ruajtur informacione dhe për ti kaluar ato në zona të ndryshme të aplikacioneve.

Si ç’mund ta dini apo imagjinoni, webi është një mjedis pa gjendje. Kjo do të thotë se çfarë ndodh në dritaren e shfletuesit nuk ruhet për t’u ripërdorur më pas, qoftë brenda një sesioni, apo kur e mbyllni fare dritaren. Për aplikacione ku nevojitet të ruhen informacione, të cilat më pas do të përdoren për të përmirësuar eksperiencën e vizitorit, të mos pasurit gjendje është problematike. Këtu hynjë në lojë Cookies dhe Sessions.

Po tentoj t’ju shpjegoj çfarë janë në thelb Cookies dhe Sessions në fjalë sa më të thjeshta. Si ju thashë më sipër, në web nuk ruhet gjendja dhe çdo veprim i kryer fshihet kur faqja mbyllet apo rifreskohet. Kjo natyrë e webit është logjike, por jo gjithmonë ajo që na duhet. Shpesh herë mund të na nevojitet të ruajmë zgjedhje të vizitorit, të shohim nëse vizitori vjen për herë të parë në faqe apo t’i kërkojmë futjen e të dhënave sensitive për t’i dhënë akses në një faqe tjetër. Për të bërë gjithë këto, na duhet një mënyrë që të ruajmë informacione specifike për çdo vizitor dhe ta lexojmë lehtë atë informacion për ta përdorur në aplikacione. Cookies dhe Sessions bëjnë pikërisht këtë, në koncept me të njëjtën ide, por në implementim të ndryshme.

Implementimi në PHP i Cookies dhe Sessions është bërë më i thjeshtë se kurrë, për fat të mirë. Mund t’i krijoni me vetëm një rresht kod, pa e vrarë mendjen për çfarë ndodh në sfond. Po ju them edhe se një Cookie apo Session, pas krijimit është i aksesueshëm në çdo skedar PHP tjetër. Supozojmë se kemi krijuar një Cookie në skedarin “index.php” dhe vizitori shkon në skedarin “rreth.php”. Cookie do të jetë e aksesueshme edhe në “rreth.php” apo në çdo skedar tjetër. Kjo është e lehtë të merret me mend, por ndonjëherë fillestarët e komplikojnë veten në raste të thjeshta.

Para se t’ju tregoj çfarë janë dhe si të përdoren në PHP, më duhet t’ju them se guida i drejtohet programuesëve fillestarë. Cookies dhe Sessions janë ndër bazat e programimit për web dhe kushdo që ka krijuar një aplikacion, me siguri i ka përdorur. Megjithatë, hidhini një sy artikullit në çfarëdo niveli të jeni, sepse ndoshta gjeni diçka që ju ka shpëtuar apo pse jo, të sugjeroni diçka që më ka shpëtuar mua :)

COOKIES

Cookies janë mënyra më e mirë për të ruajtur të dhëna afatgjatë direkt në kompjuterin e vizitorit. Për t’u realizuar, krijohet një skedar fare i vogël nga shfletuesi që në bazë përmban: ID – numër identifikimi, Emër, Vlerë, Datë Skadimi dhe Domaini ku është vendosur. Me këto të dhëna mund të krijohen Cookie me një emër identifikues për ta aksesuar, vlerë që përdoret në aplikacion dhe datë skadimi. Nëse kjo e fundit ka kaluar, Cookie konsiderohet e pavlefshme dhe duhet rivendosur nga aplikacioni. E bukura e Cookies është që janë lehtësisht të aksesueshme edhe nga Javascript dhe mund të përdorni një kombinim PHP/Javascript për të realizuar çfarëdo çmendurie që ju vjen ndërmend.

Nëse nuk e keni kuptuar mirë paragrafin më sipër, po tentoj t’ju a bëj më të qartë me një shembull. Supozojmë se kemi një aplikacion PHP ku vizitorët plotësojnë një formë, në të cilën mund të vendosin emrin e tyre. Pasi forma plotësohet, të dhënat ruhen në një Cookie dhe në faqe shfaqet një mesazh i tipit “Mirësevjen Fadion”. Nëse vizitori kthehet në faqe pas dy ditësh, aplikacioni do shohë se egziston një Cookie, do e lexojë dhe do shfaqi përsëri mesazhin e personalizuar me emrin e vizitorit. Nuk është shembull shumë realist, por shpresoj t’ju ketë dhënë idenë.

Kini parasysh diçka të rëndësishme për Cookie-t. Duke qenë se krijohen në kompjuterin e vizitorit, modifikimi i tyre është fare i lehtë. Prandaj, kurrë mos ruani të dhëna sensitive në to. Nëse patjetër ju duhet të ruani – psh kur doni të ofroni “mbajtjen mend” të fjalëkalimeve – sigurohuni të përfshini në Cookie një token (kod i gjeneruar) dhe të kontrolloni datën e ekspirimit. Siguria e Cookies është jashtë qëllimit të kësaj guide prezantuese, por online ka mjaft guida për temën. Gjithashtu, do të përfshihet edhe në një guidë të ardhshme për sigurinë në PHP.

Le ta lëmë teorinë mënjanë dhe të shohim disa shembuj kodesh për të krijuar, lexuar dhe fshirë Cookie.

Krijimi i Cookies

PHP vjen me fasilitete për të krijuar Cookie, aq sa gjithçka rrotullohet në një funksion të vetëm që quhet setcookie(). Parametrat e funksionit shpjegohen mirë në manual, por për ata që nuk dinë mirë anglisht, po i shpjegoj unë.

setcookie(emri, vlera, skadimi, direktoria, domaini, e sigurt, vetëm HTTP)

Emri: Emri i identifikimit. Përmes këtij parametri do thërritet Cookie.
Vlera: Të dhënat që Cookie përmban.
Skadimi: Data kur Cookie skadon dhe konsiderohet e pavlefshme.
Direktoria: Direktoria në server ku Cookie quhet e vlefshme. Nëse vendoset “/”, Cookie mund të përdoret kudo. Nëse vendoset një direktori “/feniksi/”, Cookie do të jetë e vlefshme brenda direktorisë “feniksi” dhe çdo direktorie brenda saj. Nëse lihet pa vënë, Cookie është e vlefshme për direktorinë ku ndodhet skedari PHP.
Domaini: Domaini ku Cookie konsiderohet e vlefshme. Nëse doni që Cookie të aksesohet në një nën-domain të caktuar, vendoset “sub.domain.com”. Nëse doni që të aksesohet në të gjitha nën-domainet, vendoset “.domain.com”.
E Sigurt: Përcakton nëse Cookie do transmetohet përmes një lidhjeje të sigurt HTTPS.
Vetëm HTTP: E limiton aksesin e Cookie-t vetëm përmes protokollit HTTP. Nëse aktivizohet, kodi Javascript nuk do të ketë akses.

Me të pasur këto të dhëna, po ju tregoj sa e lehtë është të krijoni një Cookie.

 PHP |  Kopjo Kodin |? 
1
<?php
2
setcookie('faqja', 'Feniksi', time()+60*60*24*5);
3
?>

Jam i sigurt që jeni shumë të qartë deri në parametrin e tretë, atë të vendosjes se datë së skadimit. Para se t’ju shpjegoj datën, vini re që më sipër kam shkruar formën më të thjeshtë për të krijuar një Cookie. Në pjesën më të madhe të rasteve në formë të tillë do e shkruani, sepse Direktorinë apo Domainin, të paktën sipas eksperiencës time, do i përdorni rallë. Dy parametrat e fundit janë akoma më të rrallë. Sidoqoftë, besoj e keni kuptuar tashmë që kam krijuar një Cookie me emër “faqja” dhe vlerë “feniksi”. Po ju shpjegoj çfarë kam shkruar tek data e skadimit.

Parametri i skadimit duhet vendosur si UNIX Timestamp. Funksioni time() kthen Timestamp aktuale, pra orën dhe datën e momentit që thërritet. Ajo që unë doja të bëja ishte vendosja e datës se skadimit pesë ditë më pas. Si rrjedhim:

time()+60 = 60 sekonda pas.
time() + 60*60 = time() + 3600 = 1 orë pas.
time() + 60*60*24 = time() + 3600 * 24 = 24 orë pas.
time() + 60*60*24*5 = time() + 3600 * 24 * 5 = 5 ditë pas.

Në shikim të parë duket friksuese, por kur e kuptoni idenë, do filloni ta përdorni gjithmonë. I gjithë veprimi prodhon numrin 432.000, i cili është edhe numri i sekondave që do kalojnë për të arritur pesë ditë. Mund ta shkruani edhe direkt gjithë atë numër nëse doni t’i bëni veprimet me makinë llogaritëse përpara.

Si ju thashë, forma që kam krijuar Cookie-n është më e thjeshta dhe ajo që do të përdorni në pjesën e madhe të rasteve. Megjithatë, po ju tregoj edhe një shembull ku përfshihen parametrat e Direktorisë dhe Domainit. Kodi më poshtë do të krijojë një Cookie që është e aksesueshmë në çdo direktori të serverit dhe në çdo nën-domain të “feniksi.com”.

 PHP |  Kopjo Kodin |? 
1
<?php
2
setcookie('makina', 'BMW E60 M5 V10', '/', '.feniksi.com');
3
?>

Para se ta mbyll seksionin e krijimit të Cookie, duhet të keni parasysh diçka që mund t’ju shkaktojë shumë dhembje koke. Funksioni setcookie() duhet thërritur përpara se të jetë shfaqur në shfletues kod HTML. Në praktikë, kjo do të thotë se duhet ta thërrisni para çdo kodi HTML apo funksioni echo() në PHP. Arsyeja është sepse Cookie dërgohet nga serveri në shfletues si HTTP Header dhe nëse është printuar HTML, Header-at do jenë dërguar tashmë. Gabimi “Headers already sent” është goxha i famshëm midis fillestarëve dhe me pak kujdes nuk do ju marrë orë nga jeta juaj :)

Leximi i Cookies

Leximi i Cookies është proçedurë edhe më e thjeshtë se krijimi i tyre. Ekipi i PHP ka krijuar një vektor superglobal posaçërisht për Cookies. Vektori quhet $_COOKIES dhe duke përcaktuar emrin e tij si indeks vektori, mund të marrim vlerën e Cookie-t.

Shembulli më poshtë kontrollon nëse një Cookie egziston dhe nëse po, printon vlerën e saj. Kini parasysh që Cookie duhet të jetë brenda datës se skadimit për t’u quajtur e vlefshme. Nëse e ka kaluar, atëherë do konsiderohet sikur nuk egziston.

 PHP |  Kopjo Kodin |? 
1
if (isset($_COOKIE['vizitori'])) { 
2
    $emri = $_COOKIE['vizitori'];
3
    echo "Miresevjen $emri";
4
} else {
5
    echo 'Miresevjen Vizitor!';
6
}

Fillimisht kam kontrolluar me funksionin isset() nëse Cookie egziston. Nëse po, atëherë printoj vlerën e Cookie-t, që në një mjedis të vërtetë do të ishte emri i ruajtur i vizitorit. Nuk ka më tepër për leximin e Cookies; si ç’ju thashë është proçedurë e thjeshtë, prandaj le të kalojmë në hapin e fundit – atë të fshirjes së Cookies.

Fshirja e Cookies

Fshirja e një Cookie është më tepër një truk se sa një metodë e vërtetë, sepse PHP nuk ofron ndonjë funksion. Megjithatë, si ç’do e shihni, është pothuajse i njëjti proçes me krijimin e tyre. I vetmi ndryshim është data e ekspirimit.

 PHP |  Kopjo Kodin |? 
1
<?php setcookie('faqja', 'Feniksi.com', time()-3600); ?>

Truku qendron në vendosjen e datës prapa, në mënyrë që Cookie të ketë skaduar që në momentin e krijimit. Pjesa time()-3600 bën pikërisht këtë, duke marrë kohën aktuale dhe duke i zbritur 3600 sekonda (1 orë). Koha e zbritur mund të jetë çfarëdo vlere (edhe 1 sekondë), por ide e mirë është të jetë e madhe për të mënjanuar ndonjë diferencë orari midis serverit dhe vizitorit.

Kjo ishte gjithçka mbi Cookies dhe manipulimin e tyre. E vetmja gjë do kërkonte pak më tepër shpjegim është siguria, por kjo do të mbetet për një guidë tjetër. Ndërkohë eksperimentoni me krijimin dhe aksesimin e tyre për t’u ndjerë sa më “në shtëpi” dhe do jeni të gatshëm t’i implementoni në projekte menjëherë.

SESSIONS

Sessions, në konceptin bazë janë shumë të ngjashme me Cookies. Edhe ato shërbejnë për të ruajtur të dhëna që mund të përdoren më pas për t’i dhënë gjendje aplikacioneve. Por ka një ndryshim shumë të madh në teknologjinë nga pas. Ndryshe nga Cookies, Sessions ruhen në server dhe janë të përkohshme. Ruajtja në server zakonisht kryhet përmes disa skedarëve të vegjël ose në raste pak më të veçanta, direkt në databazë. Ideja është e njëjtë në të dyja rastet dhe ajo që ka rëndësi është fakti që Sessions nuk mund të modifikohen direkt nga vizitorët. Të qenurit të përkohshëm do të thotë se skadojnë pas një kohe të caktuar (psh 30 minuta) ose kur dritarja e shfletuesit mbyllet.

Në pjesën më të madhe të skenareve, Sessions janë zgjidhja më e mirë, edhe atëherë kur të dhënat nuk janë sensitive. Nëse janë sensitive, atëherë Sessions janë praktikisht zgjidhja logjike, meqë mundësia për t’i manipuluar është shumë më e vogël se sa me Cookies. Imagjinoni një aplikacion me panel administrimi ku administratori futet përmes një forme identifikimi. Kur të dhënat janë të sakta, për të ruajtur gjendjen e identifikuar dhe për të mos i nxjerrë administratorit formën e identifikimit kudo që shkon, kemi dy mundësi: Cookies dhe Sessions. Nëse do përdornim Cookies, sistemi do të duhej të ruante një kod sekret dhe një datë skadimi për çdo identifikim, në mënyrë që të mënjanojë Cookie-t e krijuara manualisht. Edhe me këto masa, Cookies janë të thjeshta të “vidhen” dhe nëse ndodh, sulmuesi ka akses direkt në panelin e administrimit, pa tentuar edhe të bëjë login. Nëse zgjedhim Sessions (duhet t’i zgjedhim!), sesioni është aktiv vetëm për një kohë të caktuar dhe duke qenë se ruhet në server, është praktikisht e pamundur të krijohet manualisht nga një sulmues.

Me të thënë këto, asnjë sistem nuk është 100% i sigurt dhe Sessions nuk janë përjashtim. Teknika si vjedhja dhe fiksimi i Sessions janë të njohura dhe përpjekjet për t’i parandaluar nuk i mënjanojnë plotësisht. Megjithatë, janë aq të rralla dhe të vështira për t’u egzekutuar sa në aplikacione normale nuk ja vlen të lodhesh.

Tani që besoj e keni kuptuar në teori çfarë janë Sessions, po ju tregoj çfarë na ofrohet në PHP për t’i krijuar dhe lexuar ato. Shikoni kodin më poshtë.

 PHP |  Kopjo Kodin |? 
1
<?php session_start(); ?>

Ky është kodi që i tregojmë PHP-së se do të përdorim Sessions dhe në sfond, PHP bën veprimet e duhura për ti bërë Sessions të aksesueshëm. Nëse tentojmë të krijojmë apo lexojmë Sessions pa egzekutuar session_start(), nuk do të ndodhë asgjë. Prandaj, si pratikë e mirë, vendoseni këtë rresht në krye të faqeve kodit (edhe atij HTML) në faqet që doni të përdorni Sessions.

Krijimi dhe Leximi i Sessions

Ndryshe nga Cookies, për Sessions nuk ka nevojë të thërrasim funksione të veçanta për krijim. PHP ofron një vektor superglobal që ruan të dhënat e Sessions dhe përmes tij mund të krijomë dhe lexojmë. Proçedura është fare e thjeshtë, prandaj shikoni kodet më poshtë.

 PHP |  Kopjo Kodin |? 
1
<?php $_SESSION['feniksi'] = 'Kerkoni guida?'; ?>

Me kodin më sipër kam thërritur vektorin superglobal $_SESSION dhe në të kam krijuar një indeks të quajtur “feniksi”. Emri i ndeksit këtu është i njëjtë me “emrin” në Cookies, ndërsa “vlera” është pjesa ku kam kaluar tekstin “Kerkoni guida?” në vektor. Analogjia me Cookies zë vend sepse edhe këtu kemi kombinimin “emër” dhe “vlerë”. Thjeshtë “emri” vendoset si indeks, ndërsa “vlera” si vlerë e elemtntit të vektorit. Më duket se përsërita veten në fjalinë e fundit, por të paktën shpreoj ta keni kuptuar.

Më sipër krijova një Session thjeshtë duke krijuar një indeks vektori. Leximi kryhet në të njëjtën formë, por në këtë rast duke printuar vektorin superglobal $_SESSION.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$_SESSION['faqja'] = 'Feniksi.com';
3
echo $_SESSION['faqja']; //do te printoje "Feniksi.com"
4
?>

Si ç’e shihni, në egzaktësisht të njëjtën mënyrë krijojmë dhe lexojmë Sessions. Mjafton t’i japim vlerë një indeksi të vektorit superglobal $_SESSION dhe leximi kryhet thjeshtë duke thërritur atë indeks. Jam i sigurt që s’ka asgjë komplekse këtu.

Fshirja e Sessions

Ndryshe nga Cookie-t, ku thërrisnim setcookie() më datë skadimi në të shkuarën për ta fshirë, me Sessions është fare pak më komplekse. Arsyeja është sepse krahas indekseve që krijohen në vektorin superglobal $_SESSION, për të ruajtur Session ID (numrin identifikues për çdo sesion) përdoren Cookies. Mund të jetë paksa konfuze kjo pjesë, por më lini ta qartë qartësoj. Si ju thashë, Sessions ruhen në server. Por çdo Session ka një numër identifikues, të quajtur Session ID i cili nevojitet për të validuar sesionin. Pa një Session ID, sesioni quhet i pa vlerë dhe e njëjta gjë ndodh nëse Session ID nuk përputhet me ID-në e ruajtur në server. Që një Session të fshihet plotësisht, duhen fshirë indekset e vektorit dhe gjithashtu Cookie që mban Session ID.

Fillimisht po ju tregoj si të fshini një indeks të vektorit superglobal me funksionin unset(). Kjo mënyrë mund të përdoret nëse nuk doni të përdorni një indeks, por ta lini aktiv sesionin.

 PHP |  Kopjo Kodin |? 
1
<?php unset($_SESSION['faqja']); ?>

Kodi më sipër e fshin vlerën e indeksit “faqja”. Nëse duhet të rivendoset, mjafton t’i vihet vlera sërish. Nëse doni t’i fshini të gjitha indekset, por ta lini sesionin aktiv, atëherë përdorni një nga metodat më poshtë. Të gjitha janë njësoj të vlefshme.
 PHP |  Kopjo Kodin |? 
1
<?php
2
session_unset(); //Metoda 1 me nje funksion te vecante te PHP
3
unset($_SESSION); //Metoda 2 me funksionin unset() direkt ne vektorin superglobal
4
$_SESSION = array(); //Metoda 3 duke e kthyer vektorin superglobal ne nje vektor bosh
5
?>

Ju tregova si të fshini indekse në Session, por le të shohim një shembull pak më kompleks që fshin indekset dhe Cookie-n që mban ID-në e sesionit. Kodi ilustrohet në manualin e PHP-së dhe është shembulli më i mirë për të zhdukur tërësisht një Session.
 PHP |  Kopjo Kodin |? 
01
<?php
02
//Nisim sesionin
03
session_start();
04
//Fshijme te gjitha indekset e vektorit
05
$_SESSION = array();
06
//Kontrollojme nese eshte zgjedhur qe Session ID te ruhet ne Cookie.
07
//Ky eshte konfigurimi default
08
if (ini_get("session.use_cookies")) {
09
	//Merr parametrat e Cookie (data, direktoria, domain, etj)
10
	$params = session_get_cookie_params();
11
	//Fshijme Cookie qe permban emrin e sesionit dhe parametrat qe morrem ne rreshtin me siper
12
	setcookie(session_name(), "", time()42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
13
}
14
//Shkaterrojme sesionin
15
session_destroy();
16
?>

Duke përdorur mënyrën e sipërme, fshijmë tërësisht një Session së bashku me çdo gjurmë që ai lë. Nuk është nevoja ta fiksioni të tërë kodin, por ruajeni diku (ose rikthehuni këtu në Feniksi) dhe përdoreni atëherë kur ju duhet si funksionalitet. Një rast i mirë është logout.

Përfundimi

Ju tregova si t’i jepni gjendje aplikacioneve tuaja duke përdorur dy metoda bazë, Cookies dhe Sessions. Ato që keni mësuar këtu duhet të jenë të mjaftueshme për t’i përdorur dhe të vetmet njohuri ekstra që ju nevojiten janë sa i përket sigurisë. Besoj se gjithçka ka qenë e thjeshtë të kuptohet, më tepër nga natyra e lehtë e temës se sa shpjegimi im :)

Nëse keni pyetje, sugjerime, kritika apo komente, jeni të ftuar t’i bëni më poshtë.

Mësim të mbarë.

Fadion Dashi

Fadioni është prej shumë vitesh i apasionuar pas internetit dhe punon freelance si dizenjues dhe programues per web. Kur nuk është duke punuar, i pëlqen të shkruajë, të fotografojë, të admirojë koleskionin e tij të aparatëve fotografikë manualë dhe të kalojë kohë të bukur me miqtë.

6 Komente

  1. Arber says:

    Artikulli eshte mjaft i mire dhe shume i vlefshem per mua duke qene se aktualisht po punoj me login/logout system te direktorise me te cilen po punoj. Megjithese do me duhet pak me shume informacion mbi menyren e percjelljes te parametrave te sesionit nga njera faqe ne tjetren. Aktualisht kam krijuar login form dhe kam bere te mundur qe kur perdoruesi fut user dhe pass te sakte hyn ne panel me sukses, ndersa kur e ploteson login formin me kredenciale jo te sakta nuk hyn ne panel. Por nqs une provoj te hyj ne panel.php qe eshte faqja kryesore e panelit te admin hyj pa problem edhe nqs nuk kam plotesuar login formen me kredenciale te sakta.

  2. Fadion Dashi says:

    Hi Arber.

    Ky eshte skenari tipik ku hyne ne pune Sessions. Ne login, kur kontrollon formen, nese te dhenat jane te sakta krijo nje session. Psh:

    if ($user == ‘abc’ && $pass == ’123′) {
    //login i suksesshem
    $_SESSION['login'] = 1;
    }

    Me pas, ne panel.php (apo ne cdo skedar tjeter te panelit) kontrollo nese sesioni egziston. Nese po, do te thote se perdoruesi ka bere login. Ne te kundert mos jep akses. Nje kod si ky me poshte mund te vendoset ne krye te cdo faqe te panelit.

    if (!isset($_SESSION['login'])) {
    die(‘Nuk keni akses ne kete faqe!’);
    }

    Mos harro te shkruash session_start() para se te punosh me Sessions :)

  3. Banago says:

    Sessions janë goxha interesante dhe pjesë shumë e rëndësishme e PHP-së. Dua të të falënderoj për këtë artikull të mrekullueshëm dhe shumë të dobishëm.

    Nërkohë që është goxha e qartë se si dhe ku mund t’i përdorim session në projekte reale, për cookies nuk jam shumë i qartë. E kuptoj shumë mirë se si mund të përdoren, por nuk arrij të shoh dobine e tyrë në projekte reale. Nonjë shebull konkret do ishte shumë i vlerësuar :)

  4. Fadion Dashi says:

    Me vjen mire qe te ka hyre ne pune Baki.

    Sessions jane zgjidhja ne pjesen me te madhe te rasteve dhe zgjidhja e vetme kur ruhen te dhena sensitive. Cookies mund te vihen ne perdorim kur kerkohet te ruhen te dhena per kohe te gjate. Psh, kontrollimi nese vizitori hyn ne faqe per here te pare; nese eshte vizitor unik (pa cookie) apo i kthyer (me cookie); per te ruajtur historine e produkteve te shikuara (nese nuk zgjidhet te behet me db), etj. Implementimet jane te shumta dhe zgjedh ne baze te skenarit: Sessions -> Kohe e shkurter dhe siguri; Cookies -> Kohe e gjate por e manipulueshme lehte.

  5. Arber says:

    Flm per ndihmen Fadion, te them te drejten deri tani as qe e kam provuar kodin qe me dhe per arsye se kam qene gati tere javen i zene me disa probleme familjare dhe nuk kam pasur mundesi qe te provoj. Jo se kam dyshim qe me ke genjyer, por nuk e di nqs do arrij une ta bej te funksionoje.

    Rendesi ka qe mu duk shume me i thjeshte ky shpjegim ne krahasim me mjaft te tjere qe kam pare dhe ne tutoriale te huaja.

    Neser po pata mundesi do ta provoj dhe do te te kthej pergjigje.

    Off topic: Deri tani ne lidhje me direktorine per te cilen te kam folur kam rregulluar dhe permiresuar disa prej sugjerimeve te tua dhe sic po e sheh po punoj me nje login/logout system.
    Kam ende pune me pagination system dhe fulltext search (nuk kam pasur kohe te punoj full time me direktorine) dhe besoj pak pune sa te perfundoj login/logout system dhe pastaj nqs i mbaroj keto te treja, ato qe ngelen per tu permiresuar do jene gjera te vogla se struktura do jete e krijuar. Ky ishte nje update i shkurter dhe i permbledhur ne lidhje me direktorine.

    Po me forumin cpo behet? Une kam instaluar disa forume ne localhost ne xampp ne shtepi dhe po krijoj nje liste me best features qe ti shtojme keto features ne forumin tone (kuptohet qe ketu nuk po flas per opsionet standarte).

  6. Fadion Dashi says:

    Problemi qe kane shume guida te huaja eshte se i trajtojne te gjithe vizitoret njesoj. Shpjegojne me pak fjale teorine dhe kalojne direkt ne shembull kodi. Ndersa ata me eksperience ne gjuhe (kete rast PHP) interesohen vetem per kodin, atyre pa eksperience duhet t’ja zberthesh temen me sa mundesh. Kete te pakten mundohem te bej une.

    Direktorine ma trego ti hedh nje sy kur ta kesh mbaruar. Per fulltext search mund te perdoresh guiden time, ndersa per pagination per fat te keq skam bere akoma nje. Gjithsesi online ka burime plot.

    Per forumin asgje. Kam qene plot i zene me pune klientesh dhe i kam hyre disa projekteve personale qe ma marrin te gjithe kohen. Shpresoj ta gjej inspirimin per t’ju kthyer prape, por besoj se po. Sidoqofte, jo tani shpejt.

Shkruaj një Koment