E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Introducere in PHP (24)

XV. Realizarea unui modul de sondaje (Partea a II-a)

06.05.2009
XV. Realizarea unui modul de sondaje (Partea a II-a)

In cursul acestei serii, ti-am oferit un tur al PHP, invatandu-te tot ce trebuie sa stii pentru a te lansa in utilizarea acestui limbaj de programare extrem de puternic. In cele doua capitole finale ale acestei serii de tutoriale, vei putea citi despre implementarea a doua aplicatii PHP din lumea reala. Nu numai ca vei fi introdus in dezvoltarea propriu-zisa a aplicatiilor PHP, dar vei avea ocazia sa testezi toata teoria cu care ai fost indoctrinat in ultimile saptamani.

Total vizualizari: 5760 5760 afisari   |   Comentarii  0   |   Rating   |   (1 vot)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  devzone.zend.com  
Autor:  Vikram Vaswani
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 12 3
comenteaza printeaza

Scriptul va afisa ceva similar cu imaginea de mai jos :

Fisierul view.php este activat din admin.php la fel cum a fost si delete.php - ID-ul unei intrebari este transmis ca parametru prin GET, fiind utilizat in cadrul scriptului pentru a returna toate raspunsurile si numarul de voturi acumulate de acestea. In acest mod, poate fi calculat numarul total de voturi si procentajul obtinut de fiecare optiune. Aceste date sunt apoi afisate intr-un tabel HTML.

Trebuie sa fii atent atunci cand calculezi procentajele - daca nu exista niciun vot, e posibil sa intalnesti erori de impartire la zero (division by zero). Pentru a evita acest lucru, in exemplul de mai sus a fost introdusa o interogare ce foloseste functiile sum() si Group By pentru a calcula numarul total de voturi pentru o intrebare. Daca acest numar este 0, inseamna ca nu a fost inregistrat niciun vot si este afisat un mesaj corespunzator. In cazul in care exista voturi, se calculeaza procentajul pentru fiecare raspuns.

Restrictionarea accesului

Setarile actuale permit unui utilizator sa voteze de oricate ori pentru acelasi sondaj, ceea ce inseamna ca poate sa aleaga de fiecare data un alt raspuns sau sa selecteze un raspuns de foarte multe ori pentru a influenta rezultatul sondajului. Chiar daca este putin probabil ca cineva sa aiba rabdarea sau dorinta de a face acest lucru, este totusi o greseala ce trebuie remediata.

Pentru aceasta, poti utiliza o variabila cookie, ce va fi setata dupa ce utilizatorul a ales un raspuns. Adaugand cateva linii de cod in script, poti verifica daca exista sau nu aceasta variabila, astfel incat votul sa nu fie inregistrat daca utilizatorul respectiv a votat deja.

Acesta este codul care trebuie adaugat chiar la inceputul fisierului user_submit_php.

<?php
 
// verifica daca exista un cookie pentru aceasta intrebare
// daca exista, interzice accesul
if (isset($_COOKIE) && !empty($_COOKIE)) {
    if ($_COOKIE['lastpoll'] && $_COOKIE['lastpoll'] == $_POST['qid']) {
        die('EROARE: Ai votat deja!');
    }
}
// seteaza cookie
setCookie('lastpoll', $_POST['qid'], time() + 2592000);
 
?>

In acest mod, in browserul clientului este setat un cookie care contine ID-ul intrebarii pentru care a votat. La fiecare incercare de votare, scriptul va verifica daca exista sau nu variabila $_COOKIE [‘lastpoll']. Doar daca acest cookie lipseste (ceea ce inseamna ca persoana respectiva voteaza pentru prima data) sau daca valoarea variabilei $_ COOKIE [‘lastpoll'] este diferita de ID-ul intrebarii curente (ceea ce arata ca aceasta persoana a mai votat odata, dar era o alta intrebare), votul va fi acceptat.

Aceasta nu e o masura extrem de sigura: orice utilizator poate sterge acest cookie din cache si poate vota din nou - dar adauga mai multa securitate procesului. Metoda ideala ar fi sa urmaresti utilizatorii chiar pe server si sa le interzici voturile celor care au mai votat odata; aceasta este o alternativa realizabila daca site-ul cere utilizatorului sa se inregistreze inainte de a accesa voturile online.

Cam asta a fost totul. Desigur, realizarea unui modul de sondaje reprezinta doar un exemplu de aplicatie in PHP. In mod similar se pot implementa module de stiri, editoriale, galerie foto, etc.

Pagina:
« 12 3
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(1 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5565
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5540
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
5385
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
5365
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
5120
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Python Gimp Illustrator PHP Fireworks XML Ruby on Rails AJAX Word CSS Verilog Dreamweaver Photoshop Sony Vegas Bridge SWF SEO Swift 3D StyleSheet Vista JSON Outlook Fotografie Flash COREL DRAW MySQL Excel PSD Powerpoint RoR Action Script XHTML HTML Java Lightroom Javascript
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software