ورود / ثبت نام سبد خرید 0
هنگامی که کاربر از وب سایتی بازدید میکند ، مرورگر کاربر و سرور بوسیله ی یک پروتکل به نام http با یکدیگر تبادل اطلاعات میکنند و زمانی که یک کاربر وارد سایت میشود اطلاعات او معمولا در سشن ها ذخیره میشود که داده هایی سمت سرور هستند و هر بار باید از سمت سرور فراخوانی شوند . در برخی موارد نیاز نیست اطلاعات کاربران سمت سرور ذخیره گردد و باید همان سمت مرورگر کاربر ذخیره شود تا سرور بتواند بهتر تصمیم بگیرد .
مثلا در سایت های فروشگاهی ، علاقه های یک کاربر در کوکی ها ذخیره میشود و وقتی کاربر برای بار دوم به سایت مراجعه میکند ، ابتدا سرور کوکی ها را از مرورگر فراخوانی میکند و سپس محصولاتی را براساس علاقه ی کاربر به او نشان میدهد .
در بسیاری از حالت ها کوکی ها نقش مهمی در تعیین ، علاقه های کاربر ، جنسیت او و ... دارند .
زمانی که کاربر به وب سایت مراجعه میکند سرور داده هایی را با عنوان کوکی به سمت مرورگر ارسال میکند ، مرورگر باید کوکی را قبول کند ( تنظیمات استفاده از کوکی ها در مرورگر کاربر فعال باشد ) ، سپس کوکی های بعنوان یک فایل متنی ساده در هارد دیسک کامپیوتر کاربر ذخیره میشوند .
سپس اگر کاربر دوباره از یک صفحه ای بازدید کند کوکی ها بصورت خودکار از سمت مرورگر به سمت سرور ارسال میشوند و زمانی که کوکی ها سمت سرور رسیدند سرور آنها را دریافت و انها را تحلیل میکند .
کوکی ها اطلاعات ساده ی متنی هستند که پنج متغیر زیر را داراست :
کوکی ها در اصل برای برنامه های CGI ساخته شده بوده است که اطلاعات بین سرور و کلاینت بصورت خودکار ارسال و دریافت میشده و سمت سرور با اسکریپت CGI تحلیل میشده .
در زبان جاوا اسکریپ برای کار با کوکی ها درون شی Document میتوانید از ویژگی cookie استفاده کنید .
جاوا اسکریپت میتواند کوکی ها را بخواند ، کوکی ها را ایجاد کند ، کوکی را ویرایش و حتی پاکسازی کند و تغییرات خود را به آدرس صفحه ی اینترنتی جاری اعمال کند .
ساده ترین راه ساخت و ذخیره کوکی ها با استفاده از جاوا اسکریپت ، استفاده از document.cookie میباشد . در زیر سینتکس استاندارد این مورد را مشاهده میکنید :
document.cookie = "key1 = value1;key2 = value2;expires = date";
مقدار expires اختیاری است اگر یک زمان دقیق برای این متغیر تعریف کنید بعد از آن زمان دیگر کوکی مورد نظر پاک خواهد شد و دیگر دسترسی به آن امکان نخواهد داشت .
نکته : مقادیر کوکی ها بدون استفاده از سمی کالن ، ویرگول ، فضای خالی تعریف میشود . به همین منظور قبل از ذخیره سازی کوکی ها میتوانید از escape() استفاده کنید و زمان فراخوانی از تابع unescape() استفاده کنید که عمل انکد و دیکد کردن کوکی ها را انجام میدهد .
مثال :
<html> <head> <script type = "text/javascript"> <!-- function WriteCookie() { if( document.myform.customer.value == "" ) { alert("Enter some value!"); return; } cookievalue = escape(document.myform.customer.value) + ";"; document.cookie = "name=" + cookievalue; document.write ("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie();"/> </form> </body> </html>
اگر مثال بالا را انجام دهید حالا مروگر شما در سیستم یک کوکی به نام name را ساخته و ذخیره کرده است اگر قصد داشتید چندین کوکی را به این شکل تعریف کنید یک ویرگول قرار داده و کوکی بعدی را تعریف کنید و به همین ترتیب میتوانید بعد از ویرگول کوکی های جدیدی را تعریف کنید .
فراخوانی کوکی ها در جاوا اسکریپت راحت ترین از ایجاد آنهاست کافیست document.cookie را فراخوانی کنید .
در هنگام فراخوانی document.cookie شامل لیستی از کوکی های ساخته شده با مقادیرشان میباشد که میتوانید به انها دسترسی داشته باشید
از تابع split() میتوانید استفاده کنید تا رشته کوکی ها را بصورت key و value در بیاورید .
<html> <head> <script type = "text/javascript"> <!-- function ReadCookie() { var allcookies = document.cookie; document.write ("All Cookies : " + allcookies ); // Get all the cookies pairs in an array cookiearray = allcookies.split(';'); // Now take key value pair out of this array for(var i=0; i<cookiearray.length; i++) { name = cookiearray[i].split('=')[0]; value = cookiearray[i].split('=')[1]; document.write ("Key is : " + name + " and Value is : " + value); } } //--> </script> </head> <body> <form name = "myform" action = ""> <p> click the following button and see the result:</p> <input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/> </form> </body> </html>
نکته : در اینجا length یکی از متدهای Array میباشد که طول آرایه را به ما میدهد . در مورد آرایه ها در جلسات بعدی صحبت خواهیم کرد و اینجا فقط استفاده کردیم .
با اعلام کردن یک تاریخ دقیق شما میتوانید تعیین کنید که کوکی ها در چه زمانی از بین بروند . این کار را میتوان با اختصاص دادن تاریخ به متغیر expires انجام داد .
در مثال زیر کوکی ها بعد از یک ماه از بین میروند :
<html> <head> <script type = "text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() + 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie = "name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" document.write ("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/> </form> </body> </html>
اگر شما نیاز داشته باشید مقادیر درون کوکی ها را دستی پاک کنید و دیگر دسترسی به آن کوکی ها امکان نداشته باشد میتوانید تاریخ expire آنها را به تاریخ گذشته تنظیم کنید .
با تنظیم کردن تاریخ expire به گذشته کوکی مطمئنا پاک خواهد شد مثال زیر را ببینید :
<html> <head> <script type = "text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() - 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie = "name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" document.write("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/> </form> </body> </html>
. اتمام .
محصولات برگزیده مناسب شما