Setare si preluare Cookie in JavaScript
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
Ashu
- Mesaje:4
Setare si preluare Cookie in JavaScript
Salut...am o problema in legatura cu cookie-urile..
Am urmatorul cod JS:
Cod: Selectaţi tot
function setcookie() {
var l_user = document.f_chat.us_chat.value;
var l_pass = document.f_chat.ps_chat.value;
var twoDays = 1*24*60*60*1000
var expDate = new Date()
expDate.setTime(expDate.getTime()+twoDays);
document.cookie = "userls" + "=" + escape(l_user) + "; expires=" + expDate.toGMTString() ;
document.cookie = "passls" + "=" + escape(l_pass) + "; expires=" + expDate.toGMTString() ;
}
function checkCookie(c_name) {
if (document.cookie.length>0) {
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) {
c_end=document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
// Daca user-ul verificat nu exista
return "Acest user nu exista!";
}
function getCookie() {
nr = getCookie.arguments.length
var val_c = new Array(nr)
var a = 0
for (var i=0; i<nr; i++) {
valoare=checkCookie(getCookie.arguments[i]);
if (valoare!=null && valoare!="") {
val_c[a] = valoare;
a++
}
}
var no = new Array(2)
no[0] = val_c[0];
no[1] = val_c[1];
document.write(no[0] + no[1]);
}
Cand se executa functia "setcookie()" apoi "getCookie()" in loc sa-mi apara valorile lui val_c[0] si val_c[1] imi apare
NaN...vreo rezolvare?Nu gasesc unde am gresit..
MarPlo
Mesaje:4343
Salut
Functia getCookie() trebuie apelata cu numele cookie-urilor pe care le vrei (unul, sau mai multe ca argumente separate prin virgula).
Exemplu:
Cod: Selectaţi tot
<script>
// codul de mai sus cu functiile pt. cookie ...
setcookie();
getCookie('userls', 'passls');
</script>
Ashu
Mesaje:4
Acum imi returneaza mesajul care trebuie returnat in cazul in care cookie-urile nu exista.
Butonul care apeleaza functia setcookie() (care seteaza cookie-urile) arata asa:
Cod: Selectaţi tot
<input type="button" value="Click me" onclick="setcookie()">
MarPlo
Mesaje:4343
Atunci inseamna ca nu e salvat cookie cu numele pe care il specifici la apelare getCookie('nume').
Poate ca valorile pe care vrei sa le adaugi in cookie nu sunt preluate cum trebuie.
Poti sa verifici daca e ceva salvat in cookie folosind:
- Daca nu te descurci cu cookie, o alta modalitate de a salva si folosi date in browser cu javascript e metoda localStorage(); e mai simplu.
Cod: Selectaţi tot
// Salveaza date in browser
localStorage.setItem('nume', 'valoare');
// Preia valoarea salvata
var val = localStorage.getItem('nume');
alert('val');
Gagesti documentatie si exemple la adresa:
w3schools.com/html/html5_webstorage.asp
Ashu
Mesaje:4
Cu localStorage(); nu reusesc sa accesez valorile dupa ce dau refresh la pagina.
Dar totusi mi se par mai folositoare cookie-urile,chiar daca sunt mai greu de folosit.Imi poti spune unde e gresit in codul de mai jos?E cel HTML cat si cel Javascript.
HTML:
Cod: Selectaţi tot
<html>
<head>
<title>Chat-room</title>
<script type="text/javascript" src="js/general.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="container">
<form name="f_chat">
<input type="text" id="us_chat" name="us_chat" placeholder="User">
<input type="text" id="ps_chat" name="ps_chat" placeholder="Password">
<input type="button" id="lg_chat" name="lg_chat" value="Log in" onclick="getCookie('userls', 'passls');">
<input type="button" value="Click me" onclick="setCookie()">
<form>
</body>
</html>
Javascript:
Cod: Selectaţi tot
function setCookie() {
var l_user = document.f_chat.us_chat.value;
var l_pass = document.f_chat.ps_chat.value;
var twoDays = 2*24*60*60*1000
var expDate = new Date()
expDate.setTime(expDate.getTime()+twoDays);
document.cookie = "userls" + "=" + escape(l_user) + "; expires=" + expDate.toGMTString() ;
document.cookie = "passls" + "=" + escape(l_pass) + "; expires=" + expDate.toGMTString() ;
}
function checkCookie(c_name) {
if (document.cookie.length>0) {
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) {
c_end=document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
// Daca user-ul verificat nu exista
return "Acest user nu exista!";
}
function getCookie() {
nr = getCookie.arguments.length
var val_c = new Array(nr)
var a = 0
for (var i=0; i<nr; i++) {
valoare=checkCookie(getCookie.arguments[i]);
if (valoare!=null && valoare!="") {
val_c[a] = valoare;
a++
}
}
// Afiseaza in pagina, la id-urile indicate, valorile cookie-urilor
var no = new Array(2)
no[0] = val_c[0];
no[1] = val_c[1];
document.write(no[0] + no[1]);
}
Multumesc mult!Sper sa nu fiu prea stresant..
MarPlo
Mesaje:4343
Nu vad nimic gresit. Dupa cu se completeaza cu text cele doua casete de text si se apasa pe "Click me", datele completate sunt salvate in cookie.
Dupa aia, la apasare pe "Log in" apar datele adaugate in cele 2 casete text.
Incearca in setcookie(), in loc de:
Cod: Selectaţi tot
var l_user = document.f_chat.us_chat.value;
var l_pass = document.f_chat.ps_chat.value;
Pune asa:
Cod: Selectaţi tot
var l_user = document.getElementById('us_chat').value;
var l_pass = document.getElementById('ps_chat').value;
Daca la tine nu functioneaza asa, nu stiu de ce.
Ashu
Mesaje:4
Defapt treaba e alta,care ma si amuza. Cand ti-am folosit exemplul din tutorialul cu cookie, era aceasi problema. Pentru ca exista deja un cookie cu acel nume, de aceea returneaza mesajul care trebuie returnat in cazul in care cookie-urile nu exista. Am folosit alt browser, Mozilla Firefox, si a mers.
Multumesc mult pentru ajutorul!
Si mai am o intrebare,tutorialele javascript de pe site sunt complete?Adica te invata tot despre javascript?
Edit: Defapt dupa ce am sters cookie-urile,intampin aceasi problema.Dar cu mozilla merge.
MarPlo
Mesaje:4343
Tutorialele de pe site nu sunt chiar pentru un studiu complet. Au vreo 3 ani vechime si de atunci au aparut elemente noi, si nu ma ocup sa tin pasul cu ele fiindca nu se mai termina niciodata.
Lectiile de pe acest site sunt pentru incepatori ca sa ajunga la un nivel mediu de cunoastere. Dar se gasesc destule resurse pe internet ca sa inveti, tutoriale, carti in format pdf; doar sa cauti.
Subiecte similare
- Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...