أساسيات البرمجة برمجة المواقع بي اتش بي الكوكيز او الكعكات PHP Cookies
الكوكيز او الكعكات PHP Cookies
ماهي الكوكيز أو الكعكات PHP Cookies ؟
الكوكيز أو الكعكات هي عبارة عن ملف نصي يخزن على حهاز المستخدم تستخدم لحفظ بعض المعلومات التي يمكنها تتبع المستخدم لتعريفه وحفظ بعض المعلومات.
الخطوات التالية التي تتم لحفظ المعلومات عن طريق الكوكيز
- سكريبت السيرفر يرسل مجموعة من الكوكيز الى متصفح المستخدم .مثلا اسم المستخدم او العمر او رقم المستخدم الى اخره.
- يقوم المتصفح بحفظ المعلومات على جهاز المستخدم في صورة كوكيز.
- في المرة التالية عندما يقوم المستخدم بتطلب الصفحة للموقع يقوم المتصفح بارسال الكوكيز الي السيرفر فيقوم السيرفر بتعريف المستخدم مثل الدخول التلقائي للموقع.
بنية الكوكيز
يتم ارسال الكوكيز عبر برتوكول http header ويمكن ايضا ارسال البيانات عبر ملفات الجافا سكريبت للمتصفح.
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/htm |
كما نرى فان مجموعة الكوكيز في هيدر http تحتوي على زوج من قيم التاريخ ومسار والدومين النطاق واسم الرابط وقيمته.
إذا تم اعداد المتصفح لحفظ الكوكيز. فانه عندها سيحتفظ بالمعلومات حتى انتهاء تاريخ صلاحية الملف.وفي حال طلب المستخدم الموقع وكان متطابق الى رابط الموقع المحفوظ في الكوكيز فانه يرسل المتصفح ملف الكوكيز الى السيرفر.
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz |
البي اتش بي PHP تقوم بالوصول الى الكوكيز عن طريق متغيرات البيئة عن طريق $_COOKIE أو عن طريق $HTTP_COOKIE_VARS[] الذي يحمل اسم الكوكيز الاسم والقيمة $HTTP_COOKIE_VARS["name"].
إعدادات الكوكيز في البي اتش بي
لاعداد الكوكيز نستخدم الدالة setcookie() وهي دالة تحتاج الي 6 باراميتر ويجب استخدام الدالة قبل وسم
setcookie(name, value, expire, path, domain, security); |
تفاصيل الباراميترات للدالة setcookie
- Name - يتم حفظ اسم الكوكيز ويخزن في المتغيرات البيئية Environment Variable ويتم استدعاءه بالدالة HTTP_COOKIE_VARS وغالبا ما يسخدم هذا المتغير للوصول الى الكوكيز.
- Value يستخدم لحفظ القيم والمحتويات التي تريد انت تخزينها.
- Expiry يستخدم لتحديد صلاحية الكوكيز وفي حال لم يتم تحديد التاريخ فان صلاحيته تنتهي وقت اغلاق المتصفح.
- Path تحدد المسار للكوكيز الذي يكون لديه صلاحية.بحيث ان الشرطة المائلة تعني بان الكوكيز صالح لكافة المسارات.
- Domain يستخدم هذا لتحديد اسم النطاق الذي سيتخدم هذا الكوكيز ويجب ان يحتوي على اسم مفصول على الاقل بنقطتين وكل الكوكيز صالح فقط للمستضيف والنطاق التي أنشأت لها.
- Security يمكن وضع قيمة تحمل 1 وتعني يجب ارسال الكوكيز عبر اتصال أمن HTTPS اما صفر فعن طريق البرتوكول العادي.
مثال على الكوكيز
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>Setting Cookies with PHP</title> </head> <body> <?php echo "Set Cookies"?> </body> </html> |
الوصول للكوكيز
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"] . "<br />"; ?> </body> </html> |
الدالة isset تستخدم لفحص الكوكيز هل موجود ام لا
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Sorry... Not recognized" . "<br />"; ?> </body> </html> |
حذف الكوكيز
<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Deleting Cookies with PHP</title> </head> <body> <?php echo "Deleted Cookies" ?> </body> </html> |
Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabalia, Gaza Strip
Palestine
ahmed.almahallawi@gmail.com
DOB: 05/10/1984
by +Ahmed Almahallawi
by +Ahmed Almahallawi
13/2/2014
التسميات: PHP بي اتش بي تعلم دروس حتى الاحتراف
<< الصفحة الرئيسية