الدرس الثالث عشر: الكوكيز (Cookies)

كيف وما هي المعلومات التي تجمعها المواقع من مستخدميها وكيف تستخدم هذه المعلومات هو موضوع ساخن، الكوكيز تذكر كمثال لكيفية جمع المعلومات وكيف تشكل تهديداً لخصوصياتك، لكن هل عليك فعلاً أن تقلق؟ احكم بنفسك، عندما ننتهي من هذا الدرس سترى ماذا يمكن فعله بالكوكيز.

ما هي الكوكيز؟

الكوكيز هو ملف نصي صغير تستخدمه المواقع لحفظ معلومات مختلفة، الكوكيز تحفظ في حاسوب المستخدم وليس في المزود.

معظم الكوكيز تنتهي صلاحيتها (تحذف نفسها) بعد مدة محددة من الزمن تتراوح ما بين دقيقة وحتى سنوات، لكن المستخدم يمكنه تحديد وحذف الكوكيز من حاسوبه.

معظم المتصفحات مثل مايكروسوفت إنترنت إكسبلورر وموزيلا فايرفوكس وغوغل كروم يمكنها أن تعدل إعداداتها لتترك الخيار للمستخدم لاختيار ما إذا كان يريد أو لا يريد قبول الكوكيز، لكن لم لا نقول "لا" لكل الكوكيز؟، يمكن فعل هذا، لكن كثير من المواقع لن تعمل كما يجب بدون الكوكيز لأن الكوكيز تستخدم لتحسين قابلية الاستخدام ولوظائف مختلفة في الموقع.

كيف تحفظ المعلومات في الكوكيز؟

من السهل إنشاء وتعديل الكوكيز في PHP باستخدام توثيقsetcookie، في المثال الأول سنقوم بإنشاء كوكيز وسنضع فيه قيمة.

أولاً أنت بحاجة لتسمية الكوكيز، في المثال سميناه "HTMLTest"، ثم سنضع فيه قيمة كما في المثال التالي:


	<?php 

	// Setting the cookie
	setcookie("HTMLTest", "This is a test cookie");   

	?> 

	

تلقائياً الكوكيز تبقى حتى يغلق المستخدم المتصفح، لكن بإمكانك وبسهولة تعديلها بإضافة معيار آخر لتحديد تاريخ الانتهاء:


	<?php 

	// Setting the cookie
	setcookie("Name", "C. Wing, time()+3600);   
	setcookie("Interests", "plane spotting", time()+3600); 
	
	?>
	
	

"Time()+3600" تحدد أن الكوكيز سينتهي بعد 3600 ثانية - أي 60 دقيقة - من الآن.

في المثال أعلاه حفظنا معلومة حول اسم المستخدم واهتماماته هذه المعلومات يمكنها مثلاً أن تكون مفيدة لتوجيه الموقع ليكون مخصصاً لهذا الزائر.

كيف تسترجع المعلومات من الكوكيز؟

للحصول على القيم في الكوكيز استخدام أمر توثيق$_COOKIE، مثلاً إذا أردنا المعلومات في المثال أعلاه سنحتاج لفعل التالي:


	<?php 

	// Retrieve values from the cookie
	$strName = $_COOKIE["Name"];   
	$strInterest = $_COOKIE["Interest"];
	 
	// Write to the client
	echo "<p>" . strName . "</p>"   
	echo "<p>Your interest is . " strInterest . "</p>"
	
	?>
	
	

من يمكنه قراءة الكوكيز؟

تلقائياً الكوكيز يمكن أن تقرأ في نفس العنوان من المستوى الثاني -أي في نفس الموقع - الذي أنشأ الكوكيز، لكن باستخدام عوامل مثل domain وpath، بإمكانك أن تضع مزيداً من القيود على الكوكيز كما في المثال التالي:

	
	setcookie(name, value, expiration time, path, domain);
	
	

لنلقي نظرة على مثال:

	
	<?php
	
	// Setting the cookie: name, value, expiration time, path, domain
	setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net");   
	?>
	
	

في المثال أعلاه أنشأنا كوكيز اسمها "Name" وتحوي قيمة "C. Wing." وهذه الكوكيز ستنتهي بعد عام، 60 ثانية × 60 دقيقة × 24 ساعة × 356 يوم، ويمكن أن تقرأ فقط في المواقع الموجودة في مجلد "/tutorials/php/" في العنوان "www.html.net".

مثال لكوكيز

يمكننا أن نجرب حفظ مثال لكوكيز في حاسوبك وننظر كيف ستبدو.

المثال التالي ينشأ ويعد الكوكيز:


	<?php 

	// Setting the cookie
	setcookie("HTMLTest", "This text is in a cookie!", time()+60*60*24, "/tutorials/php/", "www.html.net");   
	 
	// Write the information to the client
	echo $_COOKIE ["HTMLTest"];    

	?>
	
	

الكوكيز وضعت في القرص الصلب في حاسوبك، بحسب نظام التشغيل الذي تستخدمه ستحفظ الكوكيز في مكان مختلف، عندما تجدها ستكون بهذا الشكل:

From Windows Explorer - folder Cookies

كما ترى الكوكيز هي ملفات نصية عادية يمكن استعراضها في محرر نصي مثل المفكرة (Notepad) مثلاً، محتويات الكوكيز التي قمنا بإنشائها ستكون في الغالب بهذا الشكل:


	HTMLTest TEXT=This+text+is+in+a+cookie% 21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 * 
	
	

لن ندخل في تفاصيل مختلفة حول الرموز المختلفة، ببساطة لاحظ أن المستخدم يتحكم بشكل كامل بالكوكيز في حاسوبه.

في هذا الدرس ألقينا نظرة على الكوكيز وما يمكنه فعله لكن ليس على كيفية استخدامها، هناك هم مشترك بين الناس حول الكوكيز وكيف أن بعض المواقع تستخدمها في أمور غير لائقة، لكن في معظم الحالات الكوكيز تستخدم لتكون المواقع سهلة أكثر أو متعلقة بكل مستخدم.

إن اخترت أن تستخدم الكوكيز في موقعك فقد تكون فكرة جيدة أن تخبر زواره أنك تستخدمها، هذا يمكن مثلاً أن تذكره في صفحة سياسة الاستخدام أو في نموذج الإلتحاق بالموقع.



<< Lesson 12: الجلسات

Lesson 14: نظام ملفات >>