Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Verificarea existentei unui nume de cont de utilizator

html



+ Font mai mare | - Font mai mic



Verificarea existentei unui nume de cont de utilizator

Dupa cum se stie, exista posibilitatea ca, pe anumite site-uri, sa se creeze conturi de utilizator. Acestea necesita, de obicei, un nume de cont de utilizator si o parola. Numele de cont trebuie sa fie unic, desemnand un anumit individ. Pentru crearea contului, utilizatorul va trebui sa introduca intr-un formular de inscriere datele dorite: numele contului si parola. Inainte de crearea contului, trebuie sa se verifice pe server daca exista deja un cont avand numele propus. In acest caz, utilizatorul va fi indrumat sa aleaga un alt nume. Verificarea existentei numelui de cont se poate realiza utilizand doua metode:



metoda clasica presupune transferul sincron al datelor; dupa completarea tuturor campurilor formularului de inscriere, datele sunt trimise serverului, dupa ce utilizatorul apasa butonul de tip submit; pe server se consulta baza de date care stocheaza datele de identificare ale conturilor utilizatorilor si se trimite clientului un nou document XHTML, care il instiinteaza ca numele de cont este deja utilizat sau ca noul cont a fost creat; aceasta metoda este consumatoare de timp si de resurse, atat pe server cat si pe client;

metoda bazata pe AJAX, care presupune transferul asincron al datelor; in felul acesta, utilizatorul va afla daca numele de cont propus de el este valid sau nu, imediat dupa ce il introduce in campul corespunzator al formularului, nefiind nevoie sa completeze intai toate campurile si sa trimita continutul respectiv serverului.

Se va ilustra utilizarea metodei AJAX pentru verificarea existentei unui nume de cont de utilizator, construind o aplicatie simpla, denumita contUtilizator. Aceasta aplicatie este de tipul validare in timp real a datelor. Aplicatia include documente XHTML si XML, precum si scripturile JavaScript si PHP continute in fisierele: utilizatori.xml, inscriere.html, functii.js, verifica.php si creeaza_cont.php. Fisierele aplicatiei vor fi pastrate in subdirectorul cont al directorului ajax. Fisierul XML utilizatori.xml, care include datele de identificare ale utilizatorilor, are urmatorul continut:

<?xml version="1.0"?>

<utilizatori>

<utilizator>

<nume>traian</nume>

<parola>544ed92acfd99fb2dbfd8ed2f6da4023</parola>

</utilizator>

<utilizator>

<nume>dorina</nume>

<parola>9330ebddb3064feb55c73f76ed7d106c</parola>

</utilizator>

</utilizatori>

Fiecarui utilizator ii este alocat un element utilizator, care are drept copii elementele nume si parola Continutul fisierului inscriere.html, care include formularul de inscriere in care utilizatorul va introduce datele de identificare dorite ale viitorului sau cont, este urmatorul:

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"DTD/xhtml1-transitional.dtd">

<html xmlns="https://www.w3.org/1999/xhtml">

<head>

<script src="functii.js" type="text/javascript"></script>

<style type="text/css">

.eroare

.ascuns

</style>

</head>

<body>

<form action="creeaza_cont.php" method="post">

Nume de cont:

<input type="text" name="nume"

onblur="javascript:verificaNume(this.value,'')" />

<span class="ascuns" id="existaEroare">

Numele exista deja. Va rugam sa alegeti altul!

</span><br />

Parola:

<input type="password" name="parola" /><br />

<input type="reset" value="Anuleaza" />

<input type="submit" value="Trimite" />

</form>

</body>

</html>

Formularul contine doua campuri input de tip text, in care utilizatorul introduce datele de identificare dorite: numele de cont si parola.    Dupa cum se poate observa, elementul span va contine mesajul de eroare, in cazul in care numele de cont propus de utilizator exista deja. Astfel, elementul span - initial ascuns - va fi afisat prin modificarea proprietatii de stil CSS display Fisierul functii.js include definitiile functiilor JavaScript utilizate in aplicatie: verificaNume() incarcaXML()si trateazaCererea() Functia verificaNume()verifica existenta - in raspunsul intors de server - a unui nume de cont de utilizator, aceasta fiind executata la declansarea evenimentului blur pe campul in care utilizatorul introduce numele de cont dorit:

function verificaNume(nume,raspuns) else

Dupa cum se poate constata, daca exista un raspuns al serverului si acesta este , mesajul de eroare continut de elementul span va fi afisat, aducandu-i-se la cunostinta utilizatorului ca numele de cont dorit este deja folosit de altcineva. Daca raspunsul este , mesajul de eroare ramane ascuns. In cazul in care nu exista un raspuns al serverului, se trimite o cerere asincrona serverului pentru verificarea existentei numelui de cont propus de utilizator. Cererea asincrona catre serverul Web este realizata de functia incarcaXML(), prezentata in continuare:

var cerere;

function incarcaXML(url)

else if(window.ActiveXObject)

}

Modul in care a fost definita functia incarcaXML()permite utilizarea aplicatiei in toate browserele. Tratarea evenimentelor de transmisie asincrona a datelor se realizeaza prin intermediul functiei trateazaCererea(), prezentata in continuare:

function trateazaCererea()

else

}

Raspunsul intors de server este un document XML preluat prin intermediul proprietatii responseXML a obiectului cerere (de tip XMLHttpRequest). In situatia in care codul de stare intors de server nu este , va fi afisata o fereastra de dialog alert, care va contine informatii legate de problemele aparute, obtinute prin intermediul proprietatii statusText a aceluiasi obiect. Scriptul verifica.php, care investigheaza existenta pe server a numelui de cont dorit de utilizator este urmatorul:

<?php

define('DOCXML', 'utilizatori.xml');

header('Content-type: text/xml');

// Se verifica daca numele de cont solicitat exista deja

function verifica($un_nume)

$radacina = $dom->documentElement;

$utilizatori = $radacina->getElementsByTagName('utilizator');

foreach($utilizatori as $utilizator)

}

return 0;

}

// Se genereaza continutul XML

echo '<?xml version="1.0"?>';

?>

<raspuns>

<metoda>verificaNume</metoda>

<rezultat>

<?php echo verifica($_REQUEST['nume']); ?>

</rezultat>

</raspuns>

Functia verifica()intoarce valoarea , daca numele de cont de utilizator exista si valoarea , in caz contrar. Documentul XML intors de server are raspuns ca element radacina, acesta avand doi fii: elementul metoda, care precizeaza numele metodei utilizate pentru afisarea raspunsului la client si elementul rezultat, care va contine rezultatul propriu-zis al verificarii.    Este necesar sa se scrie si scriptul creeaza_cont.php, care adauga datele corespunzatoare noului cont, dupa ce utilizatorul apasa butonul submit al formularului. Acesta trebuie sa verifice si existenta numelui de cont dorit de utilizator, lucru indispensabil in situatia in care browserul utilizatorului nu are implementat obiectul XMLHttpRequest sau are dezactivat suportul JavaScript. Continutul fisierului creeaza_cont.php este urmatorul:

<?php

define('DOCXML', 'utilizatori.xml');

$nume = $_POST['nume'];

$parola = $_POST['parola'];

// Se verifica daca au fost completate ambele campuri

if(!isset($nume) || !isset($parola) || !nume || !parola)

// Se codifica parola, folosind functia md5()

$parolaCod = md5($parola);

// Se creeaza un document XML

$dom = new DOMDocument();

// Daca documentul XML exista, se incarca in procesorul XML

if(!$doc = $dom->load(DOCXML))

// Se verifica existenta numelui de cont

$radacina = $dom->documentElement;

$utilizatori = $radacina->getElementsByTagName('utilizator');

// Se parcurg toti utilizatorii gasiti

foreach($utilizatori as $utilizator)

}

/* Daca numele nu exista, datele contului sunt adaugate in

arborele XML */

// Se creeaza un element utilizator

$utilizator = $dom->createElement('utilizator');

// Se creeaza un element nume

$nume_utilizator = $dom->createElement('nume');

$valoare_nume_utilizator = $dom->createTextNode($nume);

$nume_utilizator->appendChild($valoare_nume_utilizator);

$utilizator->appendChild($nume_utilizator);

// Se creeaza un element parola

$parola_utilizator = $dom->createElement('parola');

$valoare_parola_utilizator = $dom->createTextNode($parolaCod);

$parola_utilizator->appendChild($valoare_parola_utilizator);

$utilizator->appendChild($parola_utilizator);

// Elementul utilizator este adaugat in arborele DOM

$radacina->appendChild($utilizator);

// Documentul XML modificat este salvat

$dom->save(DOCXML);

echo "A fost creat contul avand datele de identificare

<br />nume: ".$nume."<br />parola:".$parola;

?>

Dupa cum se poate observa analizand scriptul PHP prezentat anterior, parola introdusa de utilizator este codificata folosind functia PHP md5(), inainte de a fi adaugata in documentul XML ca valoare a nodului de tip Text



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1246
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved