13 November 2006

Cookies, anyone ?! - Cum sa cream un fisier cookie.

Pentru a crea un fisier cookie avem nevoie doar de o pagina html.

Pentru aceasta, vom crea un document html pe care il vom numi "index.html".

In codul sursa al acestei pagini vom introduce urmatoarele:
- o portiune de cod javascript
- un element "div" in care sa afisam continutul fisierului cookie pe care il vom crea.

Sa incepem !

Mai intai, vom insera codul javascript in tag-ul "head" al paginii:

<script type="text/javascript" language="javascript">
<!--

var expireDate = new Date;
expireDate.setMonth(expireDate.getMonth() + 6);

var userName = "";

if (document.cookie != "")
{ userName = document.cookie.split("=")[1]; }



function setCookie()
{
if (document.MyForm.uNameTextBox.value != "")
{
userName = document.MyForm.uNameTextBox.value;
document.cookie = "userName= " + userName + "; expires= " + expireDate.toGMTString();
}
else
{
alert("Trebuie sa introduceti un nume !");
}
}


var xElement;
function readCookie( /*STRING*/ elementID)
{
xElement = document.getElementById(elementID);

if (document.cookie != "")
{
xElement.innerHTML = "<h3>Salut, " + document.cookie.split("=")[1] + " !<\/h3>";
}
else
{
xElement.innerHTML = "<h3>Nu am putut citi nici un fisier cookie, deoarece nu a fost creat nici unul !<\/h3>";
}
}

//-->
</script>


Dupa aceea, trecem in tag-ul "body" al paginii si inseram urmatoarele:

<form name="MyForm" action="index.htm" method="post">
<label for="uNameTextBox">Introduceti un nume de utilizator
<input type="text" name="uNameTextBox" size="24" width="120px" /></label>
<input type="button" value="Creaza cookie" name="submitButton" onclick="setCookie();" />
<hr />
<input type="button" value="Arata cookie" onclick="readCookie('cookieDiv');" />
</form>

<div id="cookieDiv">
<!--[ IN INTERIORUL ACESTUI ELEMENT SE VA AFISA CONTINUTUL FISIERULUI COOKIE CREAT ANTERIOR ]-->
</div>


Asta e tot!



Acum codul sursa al paginii noastre ar trebui sa arate astfel:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>New Page 1</title>
<script type="text/javascript" language="javascript">
<!--

// setam data de expirare (data la care browserul va sti ca trebuie sa stearga fisierul cookie)
// pentru aceasta, vom seta data de stergere setand data curenta (data la care este creat fisierul cookie)
// in cazul nostru "luna (getMonth)" si adaugand cifra "6"
// "6" reprezentand lunile cat fisierul cookie va fi activ in calculatorul in care a fost creat
var expireDate = new Date;
expireDate.setMonth(expireDate.getMonth() + 6);

// cream o variabila numita userName
// aceasta variabila va stoca numele de utilizator
// care va fi introdus in caseta de text
var userName = "";

// verificam daca obiectul document.cookie nu este null
// in cazul in care nu este null returnam valoarea stocata de fisierul cookie
if (document.cookie != "")
{ userName = document.cookie.split("=")[1]; }

function setCookie()
{
// verificam daca exista text in caseta de text
if (document.MyForm.uNameTextBox.value != "")
{
// daca exista, stocam numele (textul din caseta de text) in fisierul cookie
userName = document.MyForm.uNameTextBox.value;
document.cookie = "userName= " + userName + "; expires= " + expireDate.toGMTString();
}
else
{
// daca nu exista, atunci returnam un mesaj de eroare
// prin care atentionam ca trebuie introdus un text
// in caseta de text
alert("Trebuie sa introduceti un nume !");
}
}


var xElement;
function readCookie( /*STRING*/ elementID)
{
xElement = document.getElementById(elementID);

// verificam daca fisierul cookie exista
if (document.cookie != "")
{
// daca exista, returnam valoarea stocata in acesta
xElement.innerHTML = "<h3>Salut, " + document.cookie.split("=")[1] + " !<\/h3>";
}
else
{
// altfel, atentionam ca nu exista nici un fisier cookie creat in prealabil
xElement.innerHTML = "<h3>Nu am putut citi nici un fisier cookie, deoarece nu a fost creat nici unul !<\/h3>";
}
}

//-->
</script>

</head>

<body>
<form name="MyForm" action="index.htm" method="post">
<label for="uNameTextBox">Introduceti un nume de utilizator
<input type="text" name="uNameTextBox" size="24" width="120px" /></label>
<input type="button" value="Creaza cookie" name="submitButton" onclick="setCookie();" />
<hr />
<input type="button" value="Arata cookie" onclick="readCookie('cookieDiv');" />
</form>

<div id="cookieDiv">
<!--[ IN INTERIORUL ACESTUI ELEMENT SE VA AFISA CONTINUTUL FISIERULUI COOKIE CREAT ANTERIOR ]-->
</div>

</body>
</html>

No comments: