بإسم الله الرحمان الرحيم
وَوَهَبْنَا لَهُ إِسْحَاقَ وَيَعْقُوبَ كُلاًّ هَدَيْنَا وَنُوحًا هَدَيْنَا مِن قَبْلُ وَمِن ذُرِّيَّتِهِ دَاوُودَ وَسُلَيْمَانَ وَأَيُّوبَ وَيُوسُفَ وَمُوسَى وَهَارُونَ وَكَذَلِكَ نَجْزِي الْمُحْسِنِينَ
سورة الأنعام - آية 84
السلام عليكم و رحمة الله و بركاته
إلى جزء جديد من الدورة
في هدا الجزء _ و كما هو واضح من العنوان _ سنتعرف بإدن الله على طريقة إنشاء كود بسيط يحسب المتواجدون حاليا إنطلاقا من تسجيل الزوار في الجدول الدي تتمحور حوله هده الدورة 'azizsoft_tmp'
و حتى تتجنب إختلاط الأكواد البرمجية أنصحك أخي الكريم بفصل صفحة المتواجدون حاليا عن باقي الصفحات بحيت تكون عبارة عن صورة / أيقونة تظهر أسفل الموقع
على سبيل المتال
يجب أن نختار صورة ملائمة لهدا الغرض و أنا سأعمل في هدا الشرح على المتال أعلاه
قم بتوفير الخلفية المناسبة و هده هي الخلفية التي إخترتها
أكتب عليها عبارة 'المتواجدون حاليا' أو أي عبارة تراها مناسبة
بهدا ستكون الصورة جاهزة لإظهار عدد المتواجدون حاليا
الان إلى برمجة الملف الدي سيتولى أمر حساب المتواجدون حاليا و كتابة العدد على الصورة
و أول ما سنكتبه في الملف هو تحديد الصيغة بحيت سيكون الملف عبارة عن صورة بإمتداد jpg و هده العملية تتم عن طريق دالة header
كود PHP:
header('Content-Disposition: filename="online.jpg"');
header('(anti-spam-content-type:) image/jpeg');
تحديد الخلفية للملف
كود PHP:
$image_p =imagecreatefromjpeg("img/onlin.jpg");
لا تنس تغيير المسار img/onlin.jpg إلى مسار الصورة التي إعتمدتها كخلفية
تحديد لون الكتابة و ليكن إفتراضيا هو الأسود
كود PHP:
$white = imagecolorallocate($image_p, 0, 0, 0);
الأن سنحتاج لبعض المتغيرات التي سنحتاجها في برمجة المتواجدون حاليا
كود PHP:
//رقم الأيبي للزائر
$ip = $_SERVER['REMOTE_ADDR'];
//الوقت الحالي
$time = time();
//أدنى مدة لبقاء الزائر في الموقع 10 دقائق
$time10 = $time-600;
قيمة الحقل tmp_type في سجلات المتواجدون حاليا هي online
لنتعرف هل الزائر قام بالدخول لأول مرة فننشئ له سجلا جديدا
أم هو موجود مسبقا فنقوم بتحديث السجل الخاص به
إستعلام
كود PHP:
$queryme = mysql_query("SELECT * FROM `mmm_tmp` WHERE `tmp_type`='online' and `tmp_ip`='$ip' and `tmp_time`>'$time10'");
الشرط المرتبط بالإستعلام
كود PHP:
if(mysql_num_rows($queryme) > 0 ){
//تحديت السجل الخاص بالزائر
}else{
//إنشاء سجل جديد للزائر
}
الجزء الأول من الشرط : تحديت السجل الخاص بالزائر
في الحقل tmp_time سنضع تاريخ اخر زيارة و هي التوقيت الحالي الدي قمنا بتحديده مسبقا في المتغير $time
كود PHP:
mysql_query("UPDATE `mmm_tmp` SET `tmp_time`='$time' WHERE `tmp_ip`='$ip' and `tmp_type`='online' LIMIT 1;");
الجزء التاني من الشرط : إنشاء سجل جديد
كود PHP:
mysql_query("INSERT INTO `mmm_tmp`(`tmp_type`,`tmp_ip`,`tmp_time`)VALUES('online', '$ip', '$time');");
لمعرفة عدد المتواجدين حاليا يكفي أن نحسب عدد السجلات دات النوع online و التي لم تمضي أكتر من 10 دقائق على تاريخها tmp_time
كود PHP:
$online = mysql_num_rows(mysql_query("SELECT tmp_id FROM `mmm_tmp` WHERE `tmp_type`='online' and `tmp_time`>'$time10'"));
لكتابة النتيجة على الصورة
كود PHP:
imagestring($image_p, 12, 10, 10, $online, $white);
لا تنسى تغيير القيم الموجودة في الدالة imagestring إلى ما يتناسب مع الخلفية التي إخترتها بحيت :
12 حجم الخط
10 * 10 مكان كتابة العدد على الصورة
إنشاء الصورة و تحديد الجودة
كود PHP:
imagejpeg($image_p, null, 80);
أعتقد أن هدا الجزء من اسهل أجزاء الدورة تطبيقا
لا تتردد بطرح اي إستفسار
الشرح بواسطة عزيز سوفت
حقوق النشر لكل مسلم