PHP:
Personal Home Page
CURS VIII
Outline
Utilizare matrice - Array
Utilizarea functiilor
Variabile si referinte in functii
Lucrul cu siruri
Lucrul cu fisiere
Utilizarea de sesiuni PHP
Utilizare matrice - Array
1. Utilizarea matricelor
• Deseori este convenabila stocarea mai multor valori într-o
variabila.
• O asemenea variabila se numeste matrice (Array sau
"tablou"), iar valorile individuale se numesc elementele
matricei.
• Fiecare element al unei matrici are doua elemente
importante: cheia si valoarea elementului.
• Matricele pot fi create folosind doua medode principale:
• utilizand direct instructiunile de atribuire
• folosind sintaxa array()
Utilizare matrice - Array
1) Crearea de matrice folosind sintaxa array()
• Pentru a crea o matrice, atribuiti unui element al matricei o
valoare si o cheie. De exemplu, urmatoarea instructiunea
de atribuire:
$clasa[1] = "geometrie";
creeaza un tablou denumit "$clasa" si un element cu valoarea
"geometrie" identificat prin cheia "1".
• Pentru a stoca în matrice o a doua valoare, puteti folosi
urmatoarea instructiune de atribuire:
$clasa[2] = "algebra";
• Pentru a obtine acces la un element al matricei, specificati
numele matricei si valoarea cheii. De exemplu,
instructiunea de atribuire
$clasa_mate = $clasa[1];
• Atribuie valoarea "geometrie" variabilei $clasa_mate.
Utilizare matrice - Array
2) Crearea de matrice folosind sintaxa array()
• modalitate principala de creare a unui tablou PHP consta în
utilizarea functiei array()
$limbaje = array("Perl", "PHP", "Python");
• Deoarece valoarea cheilor nu a fost specificata, acestea vor
fi automat trecute de program ca numere intregi
consecutive, incepand de la "0" (prima cheie va avea
valoarea '0', a doua cheie va avea valoarea '1', ...)
0 => Perl
1 => PHP
2 => Python
• Daca doriti sa asociati unei valori o anumita cheie, puteti folosi
operatorul =>, astfel:
$limbaje = array("PHP"=>"Ridicat", "Python"=>"Mediu", "Perl"=>"Redus");
Utilizare matrice - Array
2. Matrici multi-dimensionale
• Este posibil ca un element al matricei sa fie de asemenea o
matrice.
• In acest caz avem de-a face cu o matrice multi-
dimensionala.
• In exemplul urmator vom declara un array cu 2 linii si 3 coloane.
• Prima linie este identificata de array-ul cu numele "firstLine", iar
ce-a de-a doua linie este identificata de "nextLine".
<?php
$multiDimArray = array("firstLine"=>array(1=>10, 2=>20,
"a"=>"alpha"), "nextLine"=>array(1=>20, 2=>40,
"b"=>"beta"));
echo "<br />".$multiDimArray["firstLine"][1];
echo "<br />".$multiDimArray["nextLine"][1];
echo "<br />".$multiDimArray["firstLine"][2];
echo "<br />".$multiDimArray["firstLine"]["a"];
echo "<br />".$multiDimArray["nextLine"]["b"];
?>
Utilizare matrice - Array
3. Accesul la datele dintr-un array
Când ati stocat date într-un tablou, puteti obtine acces la
valoarea unui element al tabloului sau îi puteti modifica
valoarea prin intermediul cheii asociate elementului.
De exemplu, sa presupunem ca folositi urmatoarele
instructiuni pentru a crea un tablou:
$x = array(1=>10, 2=>100, 3=>1000);
Puteti obtine acces la valoarea asociata cheii 2 prin
intermediul unei instructiuni ca aceasta:
$y = 3*$x[2];
Similar, puteti modifica valoarea asociata cheii 3 prin
intermediul unei instructiunu ca aceasta:
$x[3] = 101;
Utilizare matrice - Array
3. Accesul la datele dintr-un array
Incepand cu versiunea PHP 5.4 a fost introdus un nou
mod de a defini variabile array, folosind o sintaxa scurta.
Ex.:
$arr = []; // array gol, in loc de array();
$arr = [1, 2, 3, 4]; // array numeric
$arr = ['eng'=>‘Ecommerce', 'ro'=>‘Comert electronic',
'num'=>8]; // array asociativ
Utilizare matrice - Array
4. Functii pentru array. Cateva din cele mai utile functii
PHP pentru Array (matrice)
array_chunk(array, nr)- Imparte "array" intr-un numar de sub-
matrici, precizat la "nr", indexate de la 0. Daca "array" nu are
elemente, returneaza NULL.
array_combine(array_k, array_v)- Creaza un array folosind
valorile din "array_k" pentru chei, iar elementele din "array_v"
pentru valorile lor. Numarul de elementele din cele 2 matrici trebuie
sa fie egal, in caz contrar returneaza FALSE.
array_count_values(array)- Returneaza o matrice cu numarul de
repetari a fiecarui element din "array".
array_diff(array1, array2)- Returneaza o matrice cu elementele
din "array1" care nu se gasesc in "array2".
array_intersect(array1, array2, ...)- Returneaza o matrice cu
toate valorile din "array1" care se gasesc in toati ceilalti "array" dati
ca parametri.
Utilizare matrice - Array
4. Functii pentru array. Cateva din cele mai utile functii
PHP pentru Array (matrice)
array_merge($array1, $array2, ...)- Uneste mai multe array in
unul singur. Daca au cheie de tip sir identice, va fi pastrata valoarea
ultimei chei.
array_product(array)- Returneaza produsul elementelor din
"array"
array_reverse(array)- Returneaza "array" cu ordinea elementelor
inversata.
array_sum(array)- Returneaza suma elementelor din "array"
array_values(array)- Returneaza o matrice cu toate valorile din
"array", ordonate numeric de la 0.
array_map("functie", array)- Aplica functia pentru fiecare
element din "array"
Utilizare matrice - Array
5. Parcurgerea unui Array asociativ
Tablourile de date pot avea si elemente ale caror chei pot fi
numere aleatoare sau chiar cuvinte, aceste matrici se numesc
"matrici asociative" (non-secventiale)
Pentru citirea datelor dintr-un Array asociativ se poate folosi
instructiunea foreach care simplifica parcurgerile de acest
gen.
Instructiunea foreach are urmatoarea forma generala:
foreach (tablou as $cheie => $valoare) {corp}
Instructiunea parcurge în mod iterativ (element cu element)
tabloul denumit "tablou", stabilind valori adecvate pentru
valorile variabilelor "$cheie" si "$valoare" aferente fiecarui
element al tabloului.
<?php
$limbaje = array(10=>"Perl", 20=>"PHP", 21=>"Python");
foreach ($limbaje as $index => $limbaj) { // parcurge
iterativ tabloul
echo "<br />$index =>$limbaj";
}
?>
Utilizare matrice - Array
6. Lucrul cu functii lista
În afara de modalitatile de parcurgere a matricelor, PHP ofera
numeroase functii care va permit traversarea tablourilor,
deplasându-va înainte sau înapoi prin elementele acestuia.
Functia current()
Functie care returneaza valoarea curenta a tabloului. Functia
current() foloseste un pointer intern de tablou, pe care PHP îl
creeaza pentru fiecare tablou.
Functiile next() si prev() modifica pointerul intern al tabloului si
se pot folosi alaturi de functia current() pentru a parcurge un
tablou.
functia next() modifica pointerul intern al tabloului astfel încât
acesta sa faca referire la urmatorul element
functia prev() modifica pointerul intern al tabloului astfel încât
acesta sa faca referire la elementul anterior.
<?php
$limbaje = array(10=>"Perl", 20=>"PHP", 21=>"Python");
$curent = current($limbaje);
echo "<br />functia current() a returnat $curent";
$urmator = next($limbaje);
echo "<br />functia next() a returnat $urmator";
$urmator = next($limbaje);
echo "<br />functia next() a returnat $urmator";
$anterior = prev($limbaje);
echo "<br />functia prev() a returnat $anterior";
?>
Utilizare matrice - Array
Functia key()
Functia key() este corelata cu functia current().
Daca functia current() returneaza valoarea asociata
elementului curent, functia key() returneaza cheia asociata
elementului curent.
Functia each()
O alta functie utila în parcurgerea tablourilor este each().
Functia each() returneaza perechea "cheie-valoare" care se
afla la pozitia curenta din tabloul specificat.
Perechea "cheie-valoare" este returnata sub forma unui Array
asociativ cu patru elemente, dupa cum urmeaza
Utilizare matrice - Array
Functia list()
Functia list() va permite sa atribuiti valori la numeroase
variabile în cadrul unei instructiuni.
Functia list() este deseori folosita cu functia each(), deoarece
functia list() faciliteaza accesul separat la cheia si la valoarea
returnate de functia each().
list($var1, $var2, ..…, $varn) = valoare_tablou;
Fiecare dintre variabilele specificate, de la $var1 la $varn,
primeste o valoare din tabloul "valoare_tablou".
functia list() este opusa functiei array(), deoarece functia
list() împarte un tablou într-o serie de valori scalare, în timp ce
functia array() construieste un tablou dintr-o serie de valori
scalare.
Utilizare matrice - Array
7. Sortarea tablourilor
Sortarea reprezinta o alta operatie frecvent aplicata tablourilor.
PHP furnizeaza o suita de functii care faciliteaza sortarea unui
tablou
Vom lua ca model pentru exemplificare urmatoarea matrice:
$limbaje = array(10=>"Perl", 20=>"PHP", 21=>"Python");
Utilizare matrice - Array
Transformarea sirurilor in matrice si invers
Pentru a transforma un sir intr-o matrice folosim functia
explode(). Sintaxa aceste functii este:
$matrice = explode(" ", $sir);
In loc de spatiul dintre (" "), ca indiciu de separare, poate fi
scris orice caracter; dupa cum se doreste impartirea sirului.
Pentru a transforma o matrice intr-un sir, folosim functia
implode(). Sintaxa aceste functii este:
$sir = implode(" ", $matrice);
<?php
$matrice = array("Popescu", "Avram",
"Cristian", "Dan");
sort($matrice);
$sir = implode(" - ",$matrice);
echo "<br />Sirul rezultat : \"$sir\"";
?>
Utilizarea functiilor
Functiile reprezinta secvente de cod care sunt apelate foarte
frecvent in cadrul codului PHP
Folosirea frecventa a functiilor duce la micsorarea cantitatii de
cod scris
Pentru a folosi o functie, scrieti numele functiei, urmat de o
pereche de paranteze
Majoritatea functiilor preiau argumente, reprezentând valori,
de intrare care influenteaza operarea si rezultatul functiei.
Pentru a specifica argumente, acestea se insereaza între
paranteze; daca specificati mai mult de un argument, fiecare
argument trebuie separat de vecinul sau printr-o virgula.
Argumentul unei functii poate fi o valoare literala, o variabila
sau o expresie.
Utilizarea functiilor
Functiile PHP va permit sa obtineri accesul la programe PHP
scrise anterior, create într-un alt fisier extern
Pentru aceasta puteti folosi functia require(), care are
urmatoarea forma:
require("nume_fisier")
Când este încarcat un script PHP care contine o
instructiune require, continutul fisierului specificat este inserat
si executat în script, înlocuind instructiunea require
O alta functie, similara instructiunii require este functia
include().
functia include() este o instructiune executabila ce determina
evaluarea scriptului PHP din fisierul extern si codul acestuia
este executat ca si cum ar fi aparut în textul scriptului unde
este inclus.
include("nume_fisier.php");
Utilizarea functiilor
Definirea unei functii
În afara de a utiliza functiile din biblioteca de functii a
limbajului PHP, va puteti defini si folosi propriile functii.
function nume_functie(nume_argument1,
nume_argument2,…) {
Aici se insereaza corpul functiei
}
Cuvântul cheie "function", "numele_functiei" si
"nume_argument1" alcatuiesc antetul functiei
Termenul de corp al functiei se refera la instructiunile
incluse între acolade care urmeaza dupa antetul functiei.
Numele functiilor nu prezinta sensibilitate la diferenta
între majuscule si minuscule
Utilizarea functiilor
Definirea unei functii
Exemplu: o functie care calculeaza aria unui dreptunghi
<?php
function arie($lungime, $latime) {
return $lungime * $latime;
}
?>
Daca doriti ca o functie sa returneze o valoare, trebuie sa
determinati functia sa execute o instructiune return care
furnizeaza valoarea respectiva
Utilizarea functiilor
Apelarea unei functii definite de utilizator
O functie definita de utilizator poate fi apelata ca orice
functie.
<?php
function arie($lungime, $latime) {
return $lungime * $latime;
}
$rezultat = arie(5,3);
echo "Aria exte : $rezultat";
?>
Utilizarea functiilor
Terminarea executiei unui script
O instructiune return determina sistarea executiei
functiei care o contine. In cazul în care doriti sa sistati
prelucrarea unui întreg script, puteti invoca functia exit().
<?php
function stop() {
exit();
}
echo "<br />Unu...";
echo "<br />Doi...";
stop();
echo "<br />Trei...";
?>
Variabile si referinte in functii
1. Utilizarea variabilelor globale
variabilele globale sunt cele declarate în afara oricarei functii.
Totalitatea locurilor unde este accesibila o variabila se
numeste "domeniu de existenta al variabilei“
Variabilele globale nu pot fi accesibile din interiorul corpului
unei functii; cu alte cuvinte, domeniul de existenta al unei
variabile globale, nu include corpurile functiilor.
Daca doriti sa obtineti accesul la o variabila globala în cadrul
unei functii, puteti extinde domeniul de existenta al variabilei
prin specificarea in functie a numelui variabilei, în cadrul unei
instructiuni GLOBAL.
GLOBAL variabila1, variabila2, variabila3;
Variabile si referinte in functii
1. Utilizarea variabilelor globale Exemplu
<?php
<?php
$var1 = 135;
$var1 = 135;
$var2 = 250;
$var2 = 250;
function Suma() {
function Suma() {
GLOBAL $var1, $var2;
return $var1 + $var2;
return $var1 + $var2;
}
}
echo "Suma este ". Suma();
echo "Suma este ". Suma();
?>
?>
Variabile si referinte in functii
1. Utilizarea variabilelor globale
O alta metoda prin care putem solutiona aceasta
problema este prin folosirea variabilei PHP
predefinite $GLOBALS
$GLOBALS este o variabila predefinita, este de fapt un
array ; elementele acestei matrice au cheia egala cu
numele variabilelor declarate si valoarea egala cu cea a
variabilelor declarate.
$GLOBALS este o variabila superglobala, ea va fi
recunoscuta in orice script.
Variabile si referinte in functii
2. Utilizarea variabilelor locale
Variabilele locale sunt create in interiorul functiei si sunt
distruse cand se încheie apelul la functia respectiva
Argumentele functiilor constituie un tip important de variabila
locala
puteti crea o variabila locala prin simpla atribuire a unei valori
unei variabile din interiorul unei functii.
3. Utilizarea variabilelor statice
Uneori este nevoie ca o variabila locala sa-si pastreze
valoarea de la un apel al functie asociate la altul.
Pentru acest lucru puteti folosi instructiunea STATIC
STATIC $var1, $var2, $var3
Variabile si referinte in functii
<?php
function v_local() {
$x = $x + 1;
echo "<br /> x = $x";
}
function v_static() {
STATIC $x;
$x = $x + 1;
echo "<br /> x = $x";
}
@v_local();
@v_local();
@v_local();
echo "<br />";
v_static();
v_static();
v_static();
?>
Lucrul cu siruri
Manipularea sirurilor
PHP contine peste 70 de functii care lucreaza cu siruri:
De exemplu functia strlen() returneaza lungimea sirului
specificat ca argument al functiei.
Functiile PHP de eliminare a caracterelor din siruri:
Lucrul cu siruri
Compararea sirurilor
PHP furnizeaza patru functii care sunt deosebit de utile pentru
compararea sirurilor:
Lucrul cu siruri
Descoperirea si extragerea sub-sirurilor
PHP include numeroase functii care gasesc si extrag sub-tiruri, adica
parti dintr-un sir:
Lucrul cu siruri
Înlocuirea unui sub-sir
O operatie frecvent folosita în programare consta în gasirea
unui sub-sir si înlocuirea sa cu o valoare noua. PHP are doua
functii deosebit de utile pentru asemenea operatii, si
anume str_replace() si substr_replace():
str_replace(cauta, înlocuire, subiect) -
Se cauta în sirul 'subiect' sub-sirul 'cauta'; daca sub-sirul este
gasit, returneaza valoarea 'subiect', înlocuindu-se prima
aparitie a sirului 'cauta' cu 'înlocuire'.
substr_replace(subiect, înlocuire, start, lungime)
Returneaza valoarea 'subiect', înlocuind sub-sirul care începe
de la 'start' si având lungimea 'lungime' cu sirul 'înlocuire'.
Lucrul cu fisiere
Obtinerea atributelor unui fisier
Privilegiile asociate unui fisier sau unui catalog determina
operatiile pe care le poate executa un utilizator cu fisierul
sau catalogul respectiv.
Pentru a adauga un fisier intr-un director, folosind PHP,
trebuie sa aveti permisiunea de scriere in acel director,
de asemenea, pentru a adauga date intr-un fisier, trebuie
sa aveti permisiunea de scriere in fisierul respectiv
PHP furnizeaza numeroase functii care va permit sa
obtineti informatii care descriu un fisier
Lucrul cu fisiere
Lucrul cu fisiere
Privilegii de fisier
Privilegiile asociate unui fisier (sau director) determina
operatiile pe care utilizatorii le pot efectua cu fisierul (sau
directorul) respectiv
Privilegiile sunt date sub forma a trei grupuri alcatuite din câte
trei caractere fiecare; cu alte cuvinte, trei triade.
Cele 3 caractere care alcatuiesc un grup sunt reprezentate, in
sistemele UNIX, prin urmatoarele tri litere: 'r', 'w' si 'x'; acestea
reprezinta:
r - fisierul poate fi citit
w - se poate scrie în fisier
x - continutul fisierului poate fi executat
Caracterele unei triade apar întotdeauna în secventa 'rwx'.
Daca o anumita litera este înlocuita de o cratima (-), privilegiul
asociat nu este accesibil.
Lucrul cu fisiere
Modificarea privilegiilor unui fisier
Pentru a modifica privilegiile unui fisier, folositi
functia chmod():
chmod(nume_fisier, mod)
Argumentul 'nume_fisier' specifica numele si calea de acces a
fisierului ale carui privilegii urmeaza a fi modificate, iar
argumentul 'mod' specifica privilegiile dorite
In general, se prefera exprimarea privilegiilor sub forma unui
numar scris în octal. Pentru aceasta, prefixati valoarea
folosind cifra 0.
Pentru a specifica privilegiile folosind cifre în octal, calculati
valoarea numerica a fiecarei triade
Numerele asociate privilegiilor sunt urmatoarele: r - 4; w - 2;
x-1
De exemplu, privilegiul "rwx" are valoarea 4 + 2 + 1 = 7.
Similar, privilegiul "r-x" are valoarea 4 + l = 5, iar privilegiul "r--"
are valoarea 4.
Lucrul cu fisiere
Modificarea privilegiilor unui fisier
Pentru a modifica grupul posesor al unui fisier, invocari
functia chgrp(), care are forma:chgrp("nume_fifier", grup)
- Unde "grup" este un nume sau numar care desemneaza
grupul respectiv.
Deschiderea unui fisier
Inainte de a putea citi sau scrie într-un fisier, trebuie sa
deschideti fisierul folosind functia fopen().
fopen("nume_fisier", "mod")
unde 'nume_fisier' specifica numele si calea spre fisierul care
urmeaza a fi deschis, iar 'mod' indica tipul de acces dorit.
Lucrul cu fisiere
Deschiderea unui fisier
Modurile de deschidere a unui fisier sunt urmatoarele:r -
Permite doar citirea fisierului
r+ - Citire sau scriere de la inceputul fisierului
w - Creaza fisierul daca nu exista si suprascrie datele existente
w+ - Citire sau scriere; la scriere , creeaza fisierul daca nu
exista si suprascrie datele existente
a - Adaugare; Creaza fisierul daca nu exista si adauga datele
noi la sfarsitul fisierului existent
a+ - Citire sau scriere; la scriere, creaza fisierul daca nu exista
si adauga datele noi la sfarsitul fisierului existent
x - Doar scriere; Creaza fisierul daca nu exista si genereaza un
averisment daca acesta exista
x+ - Citire sau scriere; Creaza fisierul daca nu exista si
genereaza un averisment daca acesta exista
b - Deschide fisierul in mod binar
Lucrul cu fisiere
Inchiderea unui fisier
Un fisier deschis consuma resursele sistemului.
Când un script a terminat de utilizat un fisier, scriptul
trebuie sa închida fisierul, eliberând aceste resurse.
La sfârsitul unui script, PHP închide în mod automat
fisierele deschise.
Pentru a închide un fisier, folositi functia fclose():
fclose(identificator_fisier)
'identificator_fisier' este identificatorul fisierului, returnat
la deschiderea acestuia cu functia fopen()
Lucrul cu fisiere
Citirea dintr-un fisier
PHP furnizeaza o varietate de functii pentru citirea fisierelor.
Una dintre acestea este fread(), care are urmatoarea
forma:
fread(identificator_fisier, lungime)
Argumentul 'identificator_fisier' este valoarea returnata de
functia fopen(), iar argumentul 'lungime' specifica numarul
maxim de octeti care vor fi cititi.
Octetii cititi din fisier sunt returnati sub forma de valoare de tip
sir.
Daca operatia de citire întâlneste sfârsitul fisierului, PHP va
returna mai putin de lungime octeti data.
PHP include o functie conexa, denumita fgetc(), care citeste
un octet din fisierul specificat.
Lucrul cu fisiere
Scrierea într-un fisier
Pentru a scrie intr-un fisier se foloseste functia fwrite(),
aceasta are urmatoarea forma:
fwrite(identificator_fisier, date);
Unde 'identificator_fisier' este identificatorul de fisier
returnat de functia fopen(), iar 'date' este o valoare sir
care determina datele care urmeaza a fi scrise.
Daca executia functiei reuseste, returneaza numarul
octetilor scrisi; în caz contrar, returneaza valoarea —l.
PHP dispune de o alta functie pentru scrierea
fisierelor, fputs(). Totusi, în afara de nume, fputs() este
similara cu functia fwrite().
Utilizarea de sesiuni PHP
Sesiunea reprezinta o modalitate prin care PHP retine
informatii de la o pagina la alta
Odata cu initializarea unei sesiuni, utilizatorul poate pastra
anumite variabile chiar daca in continuare viziteaza si alte
pagini ale site-ului
Lucrurile se desfasoara ca in felul urmator:
In momentul cand un user s-a logat la site, PHP atribuie acestuia
un identificator unic de sesiune : SID.
Acest SID este inglobat intr-un coockie cu numele PHPSESSID si
trimis apoi catre browserul utilizatorului.
Daca browserul nu suporta cookie-uri sau acestea sunt
dezactivate, atunci acest SID este adaugat la adresa URL.
In acelasi timp se creeaza pe server un fisier cu numele SID.
In continuare daca utilizatorul doreste sa stocheze anumite
informatii, acestea vor fi practic scrise in acest fisier SID de pe
server.
Utilizarea de sesiuni PHP
Sesiunile au urmatoarele avantaje:
Pot fi folosite chiar daca browserul utilizatorului nu suporta
cookie-uri sau daca acestea sunt dezactivate.
Permit stocarea unui volum mare de informatii, spre deosebire
de cookie-uri care sunt limitate in aceasta privinta.
Sunt mai sigure in raport cu cookie-urile deoarece informatiile
nu sunt transmise in mod repetat intre client si server.
Initializarea unei sesiuni se face cu functia:
session_start()
Instructiunea session_start() nu este necesare daca in
fisierul de configurare "[Link]", variabila
"session.auto_start" are valoarea TRUE.
Utilizarea de sesiuni PHP
Manipularea variabilelor sesiunii.
in anumite momente ar putea fi util sa aflam identificatorul
sesiunii curente. Pentru aceasta folosim functia session_id(),
ca in exemplul urmator:
<?php
echo "<br /> Identificatorul sesiunii curente SID este:". session_id();
//Va afisa un rezultat asemanator cu: "Identificatorul sesiunii curente SID
este:2846240682abf24a09f42664fc03bbf3"
?>
Functia session_id() accepta un parametru.
Astfel putem seta un anumit SID pentru sesiunea curenta. In
acest caz trebuie sa apelam functia session_id() inainte de
functia : session_start()
Utilizarea de sesiuni PHP
Manipularea variabilelor sesiunii.
Deoarece variabilele de sesiune pot fi citite de alti utilizatori
neautorizati, nu este indicat sa pastram aici informatii
esentiale cum sint parolele.
Pentru a creea un minimum de securitate putem codifica
aceste informatii, folosind functile de criptare oferite de PHP:
md5() sau crypt()
Functia md5(sir_de_caractere) cripteaza sirul de caractere
furnizat ca parametru si returneaza un sir de 32 charactere
hexazecimale.
Aceasta functie foloseste algoritmul de criptare: "RSA Data
Security, Inc. MD5 Message-Digest Algorithm".
Utilizarea de sesiuni PHP
Exemplu:
Consideram cazul in care avem o variabila de sesiune "$parola"
care pastreaza o parola si dorim sa codificam si sa transmitem
acrasta variabila astfel incat utilizatorii neautorizati sa nu o
poata folosi.
Folosim functia md5(), pentru a o cripta. Mai mult initializam o
variabila globala cu numele "$secret", careia ii atribuim ca
valoare un sir de caractere oarecare. In continuare, inainte de a
introduce parola intr-o sesiune PHP, concatenam valorile
"$secret" si "$parola" si criptam rezultatul.
Astfel, chiar daca cineva reuseste sa decripteze variabila de
sesiune, este putin probabil sa poata separa sirul "$secret"
creat de noi.
Este bine sa pastram acest fisier intr-un director pretejat, cum
ar fi cu un nivel mai sus decat directorul pentru pagini de Web.
Utilizarea de sesiuni PHP
<?php
$secret = 'abcgfd43599oopjhfdxcaqq30pmnvcx';
$parola = 'mypass';
$cod = md5($secret. $parola);
session_start();
$_SESSION['parola'] = $cod;
// Consideram variabila "$passtest" pentru a testa daca valoarea acesteia este egala cu
parola
if (md5($secret. $passtest) == $_SESSION['parola'])
echo "Parola acceptata";
else
echo "Parola nu este valida";
?>
Utilizarea de sesiuni PHP
Stergerea unei sesiuni
Pentru a putea sterge o sesiune este necesar sa incepem
scriptul PHP cu instructiunea: session_start(), ca intotdeauna
cand folosim sesiuni.
Pentru a sterge toate variabilele memorate in matricea
$_SESSION folosim:
unset($_SESSION);
Pentru a sterge doar o variabila memorata in sesiune folosim :
unset($_SESSION['nume_variabila']);
Datele sesiunii sunt memorate in server in fisiere temporare.
Pentru a sterge datele sesiunii din server folositi:
session_destroy()