IV. Aplicatii1. Istoricul cautarilor

Moderatori: Moderators, Founder

Mesaj

Avatar utilizator
CEO
Posts
3802
Istoricul cautarilor pe un site PHP

In cele ce urmeaza va fi realizata o aplicatie simpla care pastreaza istoricul cautarilor efectuate de utilizatori. Ideea poate fi extinsa la alte aplicatii similare, de exemplu pentru a pastra istoricul ultimelor pagini vizitate, al comentariilor recente efectuate, etc. In toate aceste situatii mecanismul de functionare este acelasi, difera doar ce anume este persistat.

Aplicatia este una simpla si consta intr-un singur fisier PHP. Are la baza formularele, intrucat necesita transmiterea unor date de la utilizatori catre serverul web. Pentru mai multe informatii despre formulare, accesati lectia Formulare in PHP.


Mecanismul de functionare
Pentru a persista datele pe parcursul navigarii (de la o afisare a paginii la alta) aceasta aplicatie foloseste mecanismul de sesiuni.

In PHP, variabilele sunt ne-persistente (stateless). Asta inseamna ca ele exista si au o valoare doar cat timp se proceseaza scriptul in care sunt definite. La terminarea executiei, valorile se pierd.

Astfel, la o noua procesare a aceluiasi script (spre exemplu la un refresh al paginii, cand codul-sursa se executa din nou) toate variabilele se reinitializeaza si nu "tin minte" valorile de dinainte. Asta inseamna ca o navigare printr-un site cu mai multe pagini PHP consta, de fapt, intr-o serie de executii independente ale scripturilor si, in mod normal, o pagina "nu stie" ce variabile s-au definit la executiile anterioare sau pe alte pagini accesate.

Acesta este comportamentul implicit. Exista totusi si un mecanism de a persista date de-a lungul navigarii de la o pagina la alta, iar acest mecanism poarta numele de sesiune. Pentru mai multe informatii despre sesiuni, accesati lectia Sesiuni in PHP.

In aplicatia noastra, la fiecare accesare a paginii se porneste mecanismul de sesiuni PHP. Atunci cand un utilizator face submit la formularul de cautare, datele transmise vor fi stocate in sesiune (in vectorul $_SESSION care este administrat in mod automat de catre interpretorul PHP). Astfel, la o accesare a paginii, vectorul $_SESSION va contine toate datele adaugate anterior.

In continuare sunt incluse partile mai importante ale aplicatiei.

Imagine

Codul PHP de persistare a unei cautari

Cod: Selectaţi tot

# pornesc o sesiune session_start(); // ... # preiau datele existente din sesiune if( isset( $_SESSION['cautari'] ) ) { $istoric = $_SESSION['cautari']; // istoric exista } else { $istoric = array(); // initializez un vector gol } # verific daca a fost facut submit la formular if( isset($_POST) && !empty($_POST['keyword']) ) { // adaug termenul cautat array_push($istoric, $_POST['keyword']); // stochez totul inapoi pe sesiune $_SESSION['cautari'] = $istoric; // e posibil sa fac alte procesari aici // de exemplu sa afisez lista de rezultate }
Codul PHP de afisare a istoricului cautarilor

Cod: Selectaţi tot

# verific daca exista istoric salvat if( empty( $istoric ) ) { echo 'Nu ati cautat nimic pana acum'; } else { # cum exista deja un istoric, il afisez echo '
'; # folosesc o structura repetitiva care parcurge vectorul si afiseaza datele lui foreach($istoric as $termen) { echo "
$termen
"; } # afisez cate elemente exista echo '
', 'Cautari efectuate: ', count( $istoric ), '

'; }
========================
CONTACT : diliulro@yahoo.com
========================
Închis