Cookie-JavaScript

JavaScript / Ajax etc.

Cookie-JavaScript

Postby cata45 » 08 Jun 2011, 19:01

Am incercat sa fac un cookie care sa imi retina numele dupa ce a fost tastat odata si sa il afiseze la accesari ulterioare. Am cautat pe google dar majoritatea nu functioneaza. Ma poate ajuta cineva?
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Cookie-JavaScript

Postby smith » 08 Jun 2011, 20:46

Cred că vrei să zici JavaScript, nu Java. E important să faci diferența!

După ce vei confirma dacă e vorba despre Javascript sau Java (pentru că și java știe să stocheze cookie-uri) voi muta și redenumi threadul acesta dacă este nevoie.

Dacă e vorba despre JavaScript, aici găsești un tutorial care explică sumar cum funcționează cookie-urile: http://www.w3schools.com/JS/js_cookies.asp

Mai jos pe pagină, în lecția de la linkul de mai sus este chiar un exemplu care demonstrează că s-a reținut informația în cookie. Poți modifica codul astfel încât să țină minte informația atunci când completezi formulare cum ar fi cel de login. Diferența este că va trebui să lucrezi cu event-uri nu cu prompt.

Când se încarcă pagina (eventul onload) va fi rulat codul pentru a verifica dacă există un cookie în browser. Dacă există, va completa formularele cu informația din cookie. Dacă nu există cookie nu face nimic. Doar când utilizatorul apasă pe butonul Submit (eventul onsubmit) va fi rulat codul pentru memorarea cookie-ului. De asemenea poți pune un checkbox "Remember me" și să execuți codul DOAR dacă checkbox-ul este bifat. Se setează o dată de expirare a cookie-ului, se extrag din form-uri informațiile necesare și se stochează în cookie.

Un exemplu cu eventuri despre care vorbesc este acesta: http://javascript.internet.com/forms/remember-me.html

Ți-aș recomanda să începi cu o carte despre html și javascript (poate și css).
1p / 1 votes
Ilea Cristian
User avatar
smith
Enum
 
Joined: 29 Dec 2009
Location: Cluj-Napoca
Status: 82

Re: Cookie-JavaScript

Postby cata45 » 09 Jun 2011, 11:47

Multumesc mult. Si da, era vorba de javascript .

L.E:
La exemplul de la http://www.w3schools.com trebuie modificat ceva?

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function getCookie(c_name)
  5. {
  6. var i,x,y,ARRcookies=document.cookie.split(";");
  7. for (i=0;i<ARRcookies.length;i++)
  8.   {
  9.   x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  10.   y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  11.   x=x.replace(/^\s+|\s+$/g,"");
  12.   if (x==c_name)
  13.     {
  14.     return unescape(y);
  15.     }
  16.   }
  17. }
  18.  
  19. function setCookie(c_name,value,exdays)
  20. {
  21. var exdate=new Date();
  22. exdate.setDate(exdate.getDate() + exdays);
  23. var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  24. document.cookie=c_name + "=" + c_value;
  25. }
  26.  
  27. function checkCookie()
  28. {
  29. var username=getCookie("username");
  30. if (username!=null && username!="")
  31.   {
  32.   alert("Welcome again " + username);
  33.   }
  34. else
  35.   {
  36.   username=prompt("Please enter your name:","");
  37.   if (username!=null && username!="")
  38.     {
  39.     setCookie("username",username,365);
  40.     }
  41.   }
  42. }
  43. </script>
  44. </head>
  45. <body onload="checkCookie()">
  46. </body>
  47. </html>


Cand copiez codul de acolo in notepad si il salvez ca "abc.html" il deschid imi cere numele dar cand dau reload nu imi scrie welcome again... imi cere din nou numele...
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Cookie-JavaScript

Postby smith » 09 Jun 2011, 14:52

Ce browser folosești? Am observat, din ce am citit pe internet, că pe Chrome nu merge să testezi cookie-uri locale. Dar merg dacă urci proiectul undeva: http://bitcell.info/resources/programe/smith/example_files/abc.html

Am testat local fișierul cu codul postat de tine și se pare că în Firefox, IE9 și Safari funcționează.
0,0p / 0 votes
Ilea Cristian
User avatar
smith
Enum
 
Joined: 29 Dec 2009
Location: Cluj-Napoca
Status: 82

Re: Cookie-JavaScript

Postby cata45 » 10 Jun 2011, 17:21

multumesc mult... asa e nu merge pe chrome. Ce trebuie sa modific sa nu imi mai citeasca/scrie datele prin allert-uri... adica stiu sa fac formularele dar nu stiu cum sa citesc datele din ele... E ceva cu id? Ma mai poate ajuta cineva?
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Cookie-JavaScript

Postby smith » 10 Jun 2011, 18:38

Acesta e exemplul de aici: http://javascript.internet.com/forms/remember-me.html
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. /* This script and many more are available free online at
  5. The JavaScript Source!! http://javascript.internet.com
  6. Cookie script - Scott Andrew
  7. Popup script, Copyright 2005, Sandeep Gangadharan */
  8.  
  9. function newCookie(name,value,days) {
  10.  var days = 10;   // the number at the left reflects the number of days for the cookie to last
  11.                  // modify it according to your needs
  12.  if (days) {
  13.    var date = new Date();
  14.    date.setTime(date.getTime()+(days*24*60*60*1000));
  15.    var expires = "; expires="+date.toGMTString(); }
  16.    else var expires = "";
  17.    document.cookie = name+"="+value+expires+"; path=/"; }
  18.  
  19. function readCookie(name) {
  20.    var nameSG = name + "=";
  21.    var nuller = '';
  22.   if (document.cookie.indexOf(nameSG) == -1)
  23.     return nuller;
  24.  
  25.    var ca = document.cookie.split(';');
  26.   for(var i=0; i<ca.length; i++) {
  27.     var c = ca[i];
  28.     while (c.charAt(0)==' ') c = c.substring(1,c.length);
  29.   if (c.indexOf(nameSG) == 0) return c.substring(nameSG.length,c.length); }
  30.     return null; }
  31.  
  32. function eraseCookie(name) {
  33.   newCookie(name,"",1); }
  34.  
  35. function toMem(a) {
  36.     newCookie('theName', document.form.name.value);     // add a new cookie as shown at left for every
  37.     newCookie('theEmail', document.form.email.value);   // field you wish to have the script remember
  38. }
  39.  
  40. function delMem(a) {
  41.   eraseCookie('theName');   // make sure to add the eraseCookie function for every field
  42.   eraseCookie('theEmail');
  43.  
  44.    document.form.name.value = '';   // add a line for every field
  45.    document.form.email.value = ''; }
  46.  
  47.  
  48. function remCookie() {
  49. document.form.name.value = readCookie("theName");
  50. document.form.email.value = readCookie("theEmail");
  51. }
  52.  
  53. // Multiple onload function created by: Simon Willison
  54. // http://simon.incutio.com/archive/2004/0 ... dLoadEvent
  55. function addLoadEvent(func) {
  56.   var oldonload = window.onload;
  57.   if (typeof window.onload != 'function') {
  58.     window.onload = func;
  59.   } else {
  60.     window.onload = function() {
  61.       if (oldonload) {
  62.         oldonload();
  63.       }
  64.       func();
  65.     }
  66.   }
  67. }
  68.  
  69. addLoadEvent(function() {
  70.   remCookie();
  71. });
  72. </script>
  73. </head>
  74.  
  75.  
  76.  
  77.  
  78. <body>
  79. <form name="form" action="" method="post" onsubmit="if (this.checker.checked) toMem(this)">
  80.  <table border="0" cellpadding="0" cellspacing="3" align="center" width="460">
  81.   <tr>
  82.     <td width="170" align="right">
  83.       Name:   
  84.     </td>
  85.     <td width="290">
  86.      <input size="30" name="name" id="name">
  87.     </td>
  88.  
  89.   </tr>
  90.   <tr>
  91.     <td width="170" align="right">
  92.       E-mail:   
  93.     </td>
  94.     <td width="290">
  95.      <input size="30" name="email" id="email">
  96.     </td>
  97.   </tr>
  98.   <tr>
  99.     <td width="170" align="right">
  100.       Remember me?:   
  101.     </td>
  102.     <td width="290">
  103.      <input type="checkbox" id="checker" name="checker">
  104.     </td>
  105.   </tr>
  106.   <tr>
  107.     <td colspan="2" align="center">
  108.       <input type="submit" value="Submit"
  109.       <input type="reset" value="Reset"
  110.       <input type="button" onclick="delMem(this)" value="Delete Information">
  111.     </td>
  112.   </tr>
  113.  </table>
  114. </form>
  115. </body>
  116.  
  117. </html>


Ideea e să ai 3 funcții în javascript. Una pentru a face un cookie, una pentru a șterge un cookie și una pentru a citi un cookie. Apoi fiecare e apelată în funcție de eventuri. Totuși cred că exemplul ăsta poate fi scris mai simplu. Dacă îmi fac ceva timp, o să văd ce o să pot să fac. Poate mai răspunde altcineva între timp, oricum :P
0,0p / 0 votes
Ilea Cristian
User avatar
smith
Enum
 
Joined: 29 Dec 2009
Location: Cluj-Napoca
Status: 82


Return to Scripting

Who is online

Users browsing this forum: No registered users and 0 guests

cron