عرض مشاركة واحدة
  #3  
قديم 30-07-2007, 12:46 مساء
مُجَاهِد مُجَاهِد غير متواجد حالياً
المدير العام
 
تاريخ التسجيل: Jun 2007
المشاركات: 6,681
افتراضي رد: إستخدام الـ Cookies

زراعة الكعكات على جهاز العميل

أولا : كيف تزرع ملفات الكعكات :
يتم ذلك باستخدام الدالة setcookie و تعريفها بالشكل التالي :
كود PHP:
boolean setcookie string name [, string value [, int expire 
[, string path [, string domain [, int secure]]]]]) 

تهمنا المدخلات الثلاث الاولى و هي :
name : اي اسم الكعكة ... فبامكانك ارسال اكثر من كعكة الى متصفح واحد و عندها يصبح الاسم هو الطريقة الوحيدة للتمييز .

value : القيمة ... فقط قيم نصية ... لا يمكنك وضع مصفوفة كقيمة و هذا أامر مهم ... لكن انتبه بامكانك وضع مصفوفة لكن بطريقة اخرى ... ؟ كيف ؟ : استخدم الدالة serialize لتحويل اي متغير في بي اتش بي الى شكل نصي و من ثم استخدم unserialize لاعادته الى الشكل الطبيعي .

expire : اي عدد الثواني من بدية عصر اليونكس ( 1 يناير 1970 ) و التي بعدها سيقوم المتصفح على جهاز المستخدم بحذف الكعكة ... و هنا ثلاث حالات :
--> أولاً : أن يكون الوقت المعطى كمدخل اكثر من الوقت الحالي على جهاز العميل و عندها تخزن الكعكة على جهاز العميل و تحذف عند انقضاء المدة .
--> ثانياً : أن يكون الوقت المعطى كمدخل اقل من الوقت على جهاز العميل و عندها لا يقوم المتصفح على جهاز العميل بتخزينها و اذا وجدت كعكة بنفس الاسم فانه يحذفها حتى لو لم تنتهي المدة .
--> ثالثاً : إذا لم تحدد وقتا فان الكعكة تخزن في ذاكرة المتصفح و تفقد حالما يغلق المستخدم الموقع .

مثال :
كود PHP:
<? 
setcookie
('site','http://www.albrhan.com/',time()+3600); 
?>
من الدوال المفيدة دالة time و التي ترجع الوقت الحالي على شكل عدد الثواني من بداية عصر اليونكس (1 يناير 1970) .

ثانيا كيف تحذف او تعدل كعكة:
لكي تحذف كعكة عليك أن ترسل كعكة بنفس الاسم و خالية القيمة و ذات وقت اقل من الوقت على جهاز المستخدم

مثال :
كود PHP:
<? 
setcookie
('site','',time()-360000); 
?>
ملاحظات :
1- عندما تحدد زمنا ماضياً اجعله قيمة كبيرة لكي تتفادى فارق التوقيت بين الخادم و العميل .
2- لكي تعدل أي كعكة عليك حذفها و إرسالها من جديد .

ملاحظة مهمة :
يجب ان تستدعي الدالة setcookie قبل أن ترسل اي شيء الى المتصفح .. فمثلا الكود التالي لن ينجح :
كود PHP:
<html> 
<body> 
<?  
setcookie
('site','islamway.net',time()+20000); 
echo  
" Alfjr.com : the best islamic forum"
?> 
</body> 
</html>
بل لو كان هنالك مجرد سطر فارغ قبل علامة البداية ?> فلن تعمل الدالة setcookie ...

المثال السابق كان من الممكن ان يكون :
كود PHP:
<? setcookie('site','islamway.net',time()+20000);  
?> 
<html> 
<body> 
<? echo  " Alfjr.com : the best islamic forum"?> 
</body> 
</html>

من مواضيع مُجَاهِد في مهارات سوفت

__________________
بو مُجَاهِد
رد مع اقتباس