لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
استفسار عن نظام cookies
السلام عليكم ورحمة الله وبركاته

استفسارى عن نظام الكويكز وازاى اركبه فى سكربت يعنى شرح لتركيبه

وشكرا
تاريخ البداية: 6 / يناير / 2012 الساعة 21:45 اخر نشاط: 15 / يناير / 2012 الساعة 15:14 cookies

ماذا تقصد بكلمة الـ"الكويكز"
6 / يناير / 2012 الساعة 21:46

Cookies
6 / يناير / 2012 الساعة 21:48

هذا ليس نظام ، الكوكيز عبارة عن جلسات طويلة المدى ، يعنى اقصد انك فى ماذا تريد استمالها؟
6 / يناير / 2012 الساعة 21:49

ان كنت تفصد استخدامها فى نظام الاعضاء اقراء هذا "كيفية عمل زر تذكرني عند تسجيل الدخول"
6 / يناير / 2012 الساعة 21:51

انا اريد استخدامها ليتذكر المتصفح مثلا الاستايل المستخدم او اذا كان المقال فى مفضلة العضو
او مغلق
6 / يناير / 2012 الساعة 21:53

2 إجابات
أنا سأشرح لك طريقة مميزة واريد راي الجميع فيها استعملتها امس في سكريبتي
و اظنها مضمونة وهي المرور من الكوكيز الى الجلسات

كلنا نعرف ان الجلسات افضل و احسن لكن مدتها تنتهي بانتهاء اغلاق المتصفح

اول شيء عند عملية تسجيل الدخول راح نضع في بداية الصفحة

ob_start();
session_start();
و بالاسفل يعني آخر الفوتر نضع
ob_end_flush();
هذا حتى يشتغل نظام الجلسات و لا يقع تداخل مع الستايل نفترض انه تم التحقق من الاسم و اليوزر اول شيء راح نضع عند تسجيل الدخول قائمة checkbox لو العضو عاوز يسجل الكوكيز في هذا الجهاز او لا
$saveme = $_POST["wpRemember"];
سنضع شرط اذا تم الضغط على القائمة صح
if($saveme){
العديد من الاشخاص يحفضون كلمة المرور و اليوزر في الكوكيز لكنني افضل توليد رقم عشوائي و حفظه لزيادة الحماية و سنستعمل كود التالي لتوليده
$digest = sha1(strval(rand(0,microtime(true)) + $nname + strval(microtime(true))));
حيث المتغير
$nname
هو اليوزر المستخدم الآن سنحفظ الرقم العشوائي بقاعدة البيانات و كذلك بالكوكيز
mysql_query('UPDATE users SET logdis="'.$digest.'" WHERE username="'.$nname.'"');
setcookie( 'relogin', $digest, time()+60*60*24*7);
و كذلك سنحفظ رقم المستخدم في الجلسة
$_SESSION['iduser'] = $id_user;
وهو الذي سنعمل به في الموقع في حالة اغلاق المتصفح و فتح الموقع من جديد راح نتأكد الاول هل الكوكيز متطابق ام لا اول شيء نستخرج قيمة الكوكيز و نحميها من اي اكواد خبيثة
$digest = $_COOKIE['relogin'];
$digest = mysql_real_escape_string($digest);
تم نقوم بالبحث عن ايدي العضو المطابق للكوكيز و اذا كان موجود يقوم بالمرور الى نظام الجلسات
$result = mysql_query('SELECT id FROM m8_users WHERE logdis="'.$digest.'"');

if(mysql_num_rows($result) == 1){
    $iduser  = mysql_fetch_assoc($result);
    $id_user = $iduser['id'];
    $_SESSION['iduser'] = $id_user;
    
}

اذا كان غير متطابق سيمر بنا الى صفحة تسجيل الدخول
يمكن استعمال الطريقة ايضاً مع الستايل بتكوين جدول في قاعدة البيانات يعمل اسم الستايل
نحن هنا وضعنا ايدي العضو و انت يمكنك استعمال الستايل

بواسطة: anass
منذ: 7 / يناير / 2012 الساعة 12:1

فكرة رائعة ، بارك الله فيك
7 / يناير / 2012 الساعة 15:32

الف شكر اخى الكريم
15 / يناير / 2012 الساعة 15:14

السلام عليكم
استخدام دالة setcookie() سهل للغاية
setcookie("TestCookie", "AWCORE", time()+3600);
هذا يضع كوكيز تسمى TestCookie وتحمل القيمة AWCORE وتنتهى خلال ساعة اى 3600 ثانية + الوقت الحالى. ولاحضار القيمة نستعمل المصفوفة $_COOKIE['TestCookie'] مثال حفظ رقم الاستيل للعضو
setcookie ("style", "5", time() + (7 * 24 * 60 * 60));
الان قمنا بحفظ رقم الاستيل وهو 5 فى كوكيز تسمى style وعندما نأتى بهذه الكوكيز لنستعرض الموقع بالاستيل هذا للمستخدم المزروع الكوكيز بجهازه نستعمل $_COOKIE['style'] وعند مسح الكوكيز نستخدم نفس الدالة ولكن بقيمة فارغة
setcookie ("style", "", time() - (7 * 24 * 60 * 60));

بواسطة: molhm
منذ: 6 / يناير / 2012 الساعة 22:6

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة