English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تسمح لك الكوكي بتخزين المعلومات في متصفح المستخدم.
الكوكي هو ملف نصي صغير يسمح لك بتخزين بيانات صغيرة على جهاز المستخدم (حوالي 4 كيلوبايت).
بعد إرسال خادم الويب للصفحة إلى المتصفح، يتم إغلاق الاتصال وينسى الخادم جميع المعلومات المتعلقة بالمستخدم.
تم ابتكار الكوكي لحل مشكلة "كيفية تذكر المعلومات المتعلقة بالمستخدم".
يمكن استخدام الكوكي لمراقبة المعلومات مثل تفضيلات المستخدم، حيث يمكن للموقع استرجاع هذه المعلومات عند زيارة المستخدم للموقع مرة أخرى لتحسين تخصيص الصفحة.
يتم حفظ الكوكي على شكل زوج "الاسم=القيمة"، مثل:
username = Seagull
عندما يطلب المتصفح صفحة من الخادم، يتم إضافة الكوكي الخاص بالصفحة إلى الطلب. بذلك، سيحصل الخادم على البيانات اللازمة لتذكر المعلومات المتعلقة بالمستخدم.
ملاحظة:لا تقم بتخزين بيانات حساسة في الكوكي مثل كلمات المرور أو معلومات بطاقات الائتمان، لأن المستخدمين السيئين قد يستغلونها.
في جافا سكريبت، يمكنك استخدامdocument.cookieإنشاء، قراءة وإزالة الكوكي.
يمكنك إنشاء كوكي مثل هذا:
document.cookie = "username=Seagull";
يمكنك أيضًا إضافة تاريخ انتهاء الصلاحية (بما يتفق مع الوقت العالمي المنسق). بالافتراض، عند إغلاق المتصفح يتم حذف الكوكي:
باستخدام parameter path، يمكنك إخبار المتصفح عن ما إذا كان Cookie ينتمي إلى هذا المسار. بشكل افتراضي، ينتمي Cookie إلى الصفحة الحالية:
document.cookie = "username=Seagull; expires=Mon, 25 Mar 2019 12:00:00 UTC; path=/";
في JavaScript، يمكنك قراءة Cookie بهذه الطريقة:
var x = document.cookie;
قراءة Cookie معقدة بعض الشيء، لأنdocument.cookieالخصائص تعود ببساطة سلسلة تحتوي على قائمة مفصولة بالفواصل العريضة وتحتوي على جميع cookies (مثل name=value; cookie1=value; cookie2=value; cookie3=value). للحصول على Cookie فردي من هذه القائمة، تحتاج إلى استخدامsplit()الطريقة لقسمنها إلى اسم = قيمة زوج، و البحث عن الاسم المحدد.
هذه السلسلة لا تحتوي على خصائص مثل expires،path،domain،إلخ، قد تكون بالفعل جزءًا من مجموعة Cookie.
الطريقة الوحيدة لتغيير أو تعديل Cookie هي إنشاء Cookie يحمل نفس الاسم وpath مثل الذي موجود بالفعل.
document.cookie = "username=Ankit; expires=Mon, 25 Mar 2019 12:00:00 UTC; path=/";
ملاحظة:إنشاء Cookie يحمل نفس الاسم ولكن path مختلف لن يغير Cookie الحالية، بل سيضيف Cookie إضافية.
إزالة Cookie سهلة للغاية. إزالة Cookie:
بإعادة استخدام نفس الإعدادname، قم بتحديد قيمة فارغة
أو قم بتعيين 参数expires إلى تاريخ مرور
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";
تذكر،إذا كانpath الخاص بك هوcookie أو أي خصائص أخرى،则需要包括它们 عند إزالة.
في المثال التالي، سنخلق كوكي لحفظ اسم المستخدم.
عند زيارة المستخدم الأولى لهذا الصفحة، سيطلب منه ملء اسمه. ثم يتم حفظ هذا الاسم في الكوكي.
عندما يعود المستخدم إلى نفس الصفحة مرة أخرى، سيحصل على القيمة المحفوظة في الكوكي.
للإشارة، سنخلق 2 دالة JavaScript:
وظيفة تعيين قيمة الكوكي
دالة الحصول على قيمة الكوكي
أولاً، نخلق دالة لتحفظ اسم الزائر في متغير الكوكي.
function setCookie(cname, cvalue) { var now = new Date(); now.setMonth(now.getMonth() + 1); var expires = "expires="+ now.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; }اختبار لرؤية‹/›
معامل الدالة المذكورة أعلاه هو اسم الكوكي (cname) وقيمة الكوكي (cvalue).
تقوم هذه الدالة بتعيين الكوكي من خلال جمع اسم الكوكي، قيمة الكوكي وSTRING expires (شهر واحد).
ثم، نخلق دالة عرض قيمة الكوكيز المحددة.
function getCookie(cname) { var allcookies = document.cookie; cookieArr = allcookies.split(';'); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(cname == cookiePair[0].trim()) { document.write("مفتاح هو: " + cookiePair[0] + " و القيمة هي: " + cookiePair[1]); } } }اختبار لرؤية‹/›
هذه الدالة تأخذ اسم الكوكيز كمعامل (cname).
الحصول على جميع الكوكي (allcookies = document.cookie).
قسم document.cookie على نقاط السطر إلى مصفوفة تسمى cookieArr (cookieArr = allcookies.split(';')).
استدعاء دالة الحلقة (i = 0; i <cookieArr.length; i ++)، واستخراج كل قيمة (cookiePair = cookieArr [i]).
إذا تم العثور على الكوكيز (cname == cookiePair [0])، يتم كتابة مفتاح الكوكيز وقيمته (cookiePair [0],cookiePair [1]).
function setCookie(cname, cvalue) { var now = new Date(); now.setMonth(now.getMonth() + 1); var expires = "expires="+ now.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var allcookies = document.cookie; cookieArr = allcookies.split(';'); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(cname == cookiePair[0].trim()) { document.write("مفتاح هو: " + cookiePair[0] + " و القيمة هي: " + cookiePair[1]); } } }اختبار لرؤية‹/›
الكوكي هو سجل نصي بسيط يحتوي على خمس خصائص:
الخصائص | الوصف |
---|---|
الاسم=القيمة | يتم تعيين واسترجاع الكوكي بشكل مكون من مفتاح ونقيمة |
ينتهي صلاحيته | تاريخ انتهاء صلاحية الكوكي. إذا كان فارغًا، فإن الكوكي سينتهي صلاحيته عند مغادرة الزائر لمتصفح الويب |
النطاق | اسم نطاق موقعك |
الطريق | مجلد أو مسار صفحة لتعيين الكوكي. إذا كنت ترغب في البحث عن الكوكي من أي مجلد أو صفحة، يمكن أن يكون هذا الحقل فارغًا |
آمن | إذا كان يحتوي هذا الحقل على كلمة "secure"، فيجب استخدام خادم آمن للبحث عن الكوكي. إذا كان هذا الحقل فارغًا، فإن هناك عدم وجود مثل هذا التحديد |