Tantárgy:Webes rendszerek kliens oldali programozása 2. [IM3314, WP3316]
Tananyag:JavaScript - Cookie kezelés
Feladat:Lottó számok

Megoldás forráskódja

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Lottó számok</title>
      <meta name="author" content="Tóth Péter" />
      <meta name="copyright" content="© 2012, NYME SEK" />
      <meta http-equiv="date" content="2012-09-10" />
      <meta name="revised" content="Tóth Péter, 10/09/2012" />
      <meta name="description" content="JavaScript - Cookie kezelés - Lottó számok" />
      <meta http-equiv="content-language" content="hu" />
      <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
      <script type="text/javascript">
         <!--
         // Cookie érték kiolvasása
         // c_name - Cookie változó neve
         function getCookie(c_name){                                                  
            var i,j,x,y,ARRcookies=document.cookie.split(";");
            for (i=0;i<ARRcookies.length;i++){
               j=ARRcookies[i].indexOf("=");
               x=ARRcookies[i].substr(0,j).replace(/^\s*/,"").replace(/\s*$/,"");
               y=unescape(ARRcookies[i].substr(j+1));
               if(x==c_name)return y;
               }
            return "";
            }
         // Cookie adat mentése
         // c_name - Cookie változó neve
         // ertek  - Cookie értéke
         // exdays - mennyi napig létezzen a Cookie változó
         function setCookie(c_name,ertek,exdays){
            var exdate=new Date();
            exdate.setDate(exdate.getDate() + exdays);
            var c_value=escape(ertek);
            document.cookie=c_name+"="+c_value+((exdays==null) ? "" : "; expires="+exdate.toGMTString());
            if(getCookie(c_name)!=ertek)alert("Nem engedélyezett a cookie kezelés!");
            }
         // OnLoad függvény
         function funcStart(){
            // Lekérdezzük a folyamat elején a lottó számokat tároló cookie változó értékét
            var sElozo=getCookie("lotto");
            // Ellenőrizzük, hogy volt-e értéke a lottó számokat tároló Cookie változónak
            if(sElozo==""){
               document.getElementById("idUzenet").innerHTML="Még nem volt lottó sorsolás!";
            }else{
               // Utolsó lottó számok megjelenítése
               document.getElementById("idUzenet").innerHTML="Az aktuális lottó számok: "+sElozo;
               }
            }
         // Új lottó számok generálása
         function funcSzamSorsolas(){
            // Az aktuális lottó számok tömb létrehozása
            var aLotto=new Array();
            do{
               // Új szám véletlen generálása
               var iUjSzam=Math.floor((Math.random()*45)+1);
               // Ellenőrizzük, hogy benne van-e az aktuális számokban az új szám
               var i=0;
               while((i<aLotto.length)&&(aLotto[i]!=iUjSzam))
                  i++;
               if(i==aLotto.length)
                  aLotto.push(iUjSzam);
               }
            while(aLotto.length<5);
            // Sorba rendezés
            aLotto.sort(function(a,b){return a-b});
            // Lottó számok mentáse
            setCookie('lotto',aLotto.toString(),1);
            // Újratöltjük a weboldalt;
            location.reload();
            }
         // Lottó számok törlés
         function funcSzamTorles(){
            setCookie('lotto','',0);
            location.reload();
            }
         -->
      </script>
   </head>
   <body onload="funcStart()">
      <div id="idUzenet"></div>
      <div>
         <input type="button" onclick="javascript:funcSzamSorsolas();" value="Következő lottó számok sorsolása" />
         <input type="button" onclick="javascript:funcSzamTorles();" value="Lottó számok törlése" />
      </div>
   </body>
</html>