Showing posts with label script. Show all posts
Showing posts with label script. Show all posts

Tuesday, February 2, 2016

Limbajul PHP. Cookies. Greseala de incepator :-) (link aplicatie)

Un server poate gazdui un numar oarecare de scripturi sau de aplicatii-site, fiecare programat, eventual, sa foloseasca mecanismul de cookies. Fiecare dintre site-urile care trimit cookies seteaza acestor cookies, in afara de nume (cheie) si valoare, alti parametri precum timpul de expirare, domeniul si calea.

Exista, desigur, scenarii in care se folosesc valorile implicite ale parametrilor optionali.
Neglijarea acestor valori implicite (sau a logicii dupa care ele sunt generate) se soldeaza, uneori, cu consecinte neplacute.

Spre exemplu, fie enuntul urmator, dat ca tema in cadrul unui curs de PHP procedural:

" Se concepe un formular HTML in care utilizatorul alege dintr-un drop-down list site-ul catre care doreste sa mearga. Dupa expedierea formularului, utilizatorul va fi redirectionat catre site-ul ales. 
1) Adaugire: se va include un checkbox "Remember my decision". Odata ce utilizatorul a ales un site, a bifat checkbox-ul si a expediat formularul (fiind redirectionat catre site-ul ales), la fiecare vizita ulterioara el va fi automat redirectionat catre site-ul ales initial. 
2) Adaugire: odata ales site-ul default, la vizitele ulterioare, pagina va contine un buton "Reset my website preference". Apasarea acestui buton duce la anularea site-ului default - la urmatoarea vizita, utilizatorului i se va prezenta din nou pagina de selectie de site".

Primele doua cerinte nu comporta probleme: se folosesc formularele HTML corespunzatoare, functia header(), functia setcookies(). "Surprizele"pot sa apara la ultimul punct.

Presupunem ca formularul html este gazduit pe prima pagina a unui site, sa-i spunem site-ul A, iar selectia din drop-down list redirecteaza utilizatorul catre site-urile B, C, D…. Pentru simplitate, vom limita momentan drop-down list la un singur site, B, care poate fi bifat sau nu ca favorit, in vederea redirectarii automate.

Site-ul A se afla intr-un folder oarecare pe masina locala, sa-i spunem "practice1", iar site-ul B se afla intr-un subfolder al lui practice1, sa-i spunem "targets". Aceasta configuratie este importanta si vom vedea imediat de ce.