پنجشنبه, ۲۵ بهمن, ۱۴۰۳ / 13 February, 2025
مجله ویستا
Cookies
![Cookies](/mag/i/2/k8sr3.jpg)
بعنوان مسئول سایت IranJavaScript بر این عقیده هستم که میتوان کارهای مفیدی را با Cookie ها انجام داد. مثلا در صورتیکه سایت نیازمند, ثبت نام اشخاص باشد, میتوان از Cookie ها در نگهداری name user و Password بر روی درایوهایشان استفاده نمود تا از وارد کردن مجدد آنها در هربار اتصال خودداری شود. همچنین بدین صورت میتوان, تعداد دفعات استفاده از سایتها را در Cookie ها ذخیره نمود.
● اما مشخصات خاص Cookieها:
۱) از آنها نمیتوان برای بررسی محتویات هارد کاربر استفاده نمود.
۲) توسط Cookieها ویروسها, انتقال نمی یابند. بطور خلاصه, یک Cookie تنها یک فایل ساده متنی بر روی هارد دیسک کاربر بوده که برنامه نویس JavaScript بعضی از اطلاعات را در آن نگهداری میسازد.
در Cookie همچنین آدرس مربوط به Server نیز نگهداری میشود. بطور کلی میتوان اساس پیدایش آن را "Identification" نامید. بخاطر داشته باشید که بدین صورت تنها کامپیوتر متصل شده, تعیین هویت میگردد, یعنی مشخصات کاربرها و یا سایتهای مورد استفاده, مشخص نخواهد شد.
● به منظور نمایش Cookieها
if(document.cookie == "") {
document.write("There are no cookies here")
۱) در صورتیکه محتوی Cookieها خالی باشد, پیغام "There are no cookies here" نشان داده میشود. else {thisCookie = document.cookie.split("; ")
۲) ولی در صورتیکه محتوای آن خالی نباشد, مقدار تمامی Cookieهای موجود توسط document.cookie.split("; ")s گرفته شده و در متغییری بنام thisCookie قرار داده میشود. به یاد داشته باشید که توسط دستورsplit("; ")s آرایه ای از تمام Cookieها بوجود آمده تا درنهایت بتوان به مقدار هر Cookie ارجاعی داده شود. for (i=۰; i<thisCookie.length; i++) {
۳) در حلقه فوق, که شمارنده آن از صفر شروع میشود, در صورتیکه i کمتر از تعداد Cookieها در آرایه thisCookie باشد به مقدار i, یک واحد می افزاید. document.write("Cookie name is"+thisCookie[i].split("=")[۰])
document.write(",and the value is"+thisCookie[i].split("=")[۱]+"<br>")
۴) و درصورت وجود Cookie در پنجره browser ابتدا عبارت "Cookie name is" و بعد نام Cookie و به دنبال آن, عبارت and the value is به همراه مقدار Cookie نوشته میگردد.
● برای خواندن Cookie
if(document.cookie !="") {
۱) درصورت خالی نبودن محتویات Cookie به مرحله بعد میرود.
document.write("Hello, "+ document.cookie.split("=")[۱])
۲) در صورتی که Cookie خالی نباشد, رشته حرفی "Hello" به همراه مقدار موجود در Cookie در صورت نمایش, ظاهر میگردد.
ـ نکته
در صورتی که دقت کرده باشید, به این نکته پی خواهید برد که Cookie خاصی انتخاب نشده است! زیرا هر Cookie تنها توسط Server, مخصوص که برای اولین بار درون آن نوشته شده, خوانده میشود. یعنی فقط میتوانید به Cookie های مربوط به خود دسترسی پیدا نمایید.
● برای ایجاد Cookie
expireDate = new Date
۱) ابتدا تاریخ فعلی گرفته شده و در متغییر expireDate نهاده میشود.
expireDate.setMonth(expireDate.getMonth()+۶)
۲) بدین صورت مقدار تاریخ اعتبار Cookie مورد نظر, ۶ ماه تعیین میگردد.
userName = ""
۳) سپس متغییر userName با مقدار خالی تعریف میگردد.userName = document.cookie.split("=")[۱]
۴) ابتدا خالی نبودن محتوی Cookie بررسی میشود. سپس توسط متد ("=")split, هر record مربوط به Cookie به فیلدهای مختلف تقسیم میشود بطوریکه مثلاCookieField[۰]s نام وCookieField[۱]s مقدار Cookie میباشد. function setCookie() { userName = document.myForm.nameField.value
۵) در این مرحله یک تابع جدید با نامsetCookie()s ایجاد شده, سپس در خط بعد مقدار UserName توسط اطلاعات وارد شده کاربر درون فیلد فرم, مجددا نوشته میشود.
document.cookie = "username=" + username + ";expires=" + expireDate.toGMTString()
۶) همانطور که در مطالب قبل ذکر شد, Cookie ها شامل رشته های حرفی ساده میباشد, در نتیجه توسط document.cookie, نام کاربر و تاریخ انقضاء نوشته شده زیرا توسط متد toGMTString, تاریخ expireDate به رشته حرفی تبدیل شده, که نتیجتا میتوان آن را درون Cookie قرار داد.
onLoad="document.myForm.nameField.value=userName"
۷) دستور onLoad در تگ body, نام کاربر را در صورت وجود در فایل Cookie درون فیلد name مینویسد.
<input readonly type="text" name="nameField" onBlur="setCookie()" size="۴۰">
۸) نهایتا هنگام رهایی کاربر از فیلد متن, توسط کنترل کننده onBlur, تابع setCookie فرا خوانده میشود.
ـ نکته
در این اسکریپت فرض میشود User name در Cookie وجود داشته است. در مباحث بعدی, نحوه کنترل چندین Cookie نیز توضیح داده میشود.
منبع : سایر منابع
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست