قاعدة البيانات
كيف يمكن التحقق من عدد المستخدمين النشطين حاليًا على الموقع باستخدام PHP؟
بسم الله والصلاة والسلام على رسول الله،يمكنك التحقق من عدد المستخدمين النشطين حاليًا في جلسة معينة باستخدام PHP مع تخزين الجلسات (Sessions) في قاعدة بيانات. سأوضح لك الطريقة الأساسية لتنفيذ ذلك:الخطوات:تخزين معلومات الجلسات في قاعدة بيانات.تحديث حالة المستخدم عند تسجيل الدخول والخروج.حساب عدد المستخدمين النشطين.1. إعداد قاعدة البياناتCREATE DATABASE user_sessions;USE user_sessions;CREATE TABLE sessions ( session_id VARCHAR(128) PRIMARY KEY, user_id INT NOT NULL, last_activity TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);2. كود التحقق وإدارة الجلسات (session_manager.php)<?php// إعداد اتصال قاعدة البيانات$servername = "localhost";$username = "root";$password = "";$dbname = "user_sessions";$conn = new mysqli($servername, $username, $password, $dbname);// التحقق من الاتصالif ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error);}// بدء الجلسةsession_start();// تحديد معرف المستخدم (مثال: 1)$user_id = 1; // هذا يجب تغييره بناءً على المستخدم الفعلي// تحديث أو إدخال الجلسة في قاعدة البيانات$session_id = session_id();$sql = "REPLACE INTO sessions (session_id, user_id, last_activity) VALUES ('$session_id', '$user_id', NOW())";$conn->query($sql);// حذف الجلسات القديمة (مثلاً، الجلسات غير النشطة لمدة 5 دقائق)$conn->query("DELETE FROM sessions WHERE last_activity < NOW() - INTERVAL 5 MINUTE");// حساب عدد المستخدمين النشطين$result = $conn->query("SELECT COUNT(*) AS active_users FROM sessions");$row = $result->fetch_assoc();$active_users = $row['active_users'];echo "عدد المستخدمين النشطين حاليًا: " . $active_users;$conn->close();?>شرح الكودتحديث الجلسة: يتم تحديث أو إدخال الجلسة في جدول قاعدة البيانات باستخدام REPLACE INTO.تنظيف الجلسات القديمة: يتم حذف الجلسات غير النشطة لأكثر من 5 دقائق.حساب المستخدمين النشطين: يتم استخدام استعلام COUNT لحساب الجلسات النشطة حاليًا.ملاحظة:يمكنك تعديل الفترة الزمنية لحذف الجلسات غير النشطة وفقًا لاحتياجات موقعك.تأكد من أن كل مستخدم يحصل على user_id فريد عند تسجيل الدخول.
هل يمكن شراء مساحة في قاعدة بيانات MySQL وما التكلفة؟
نعم، يمكنك شراء مساحة في قاعدة بيانات MySQL عبر العديد من مقدمي خدمات الاستضافة أو قواعد البيانات السحابية. الأسعار تعتمد على مزود الخدمة والمواصفات التي تحتاجها (مثل حجم التخزين، عدد المستخدمين، الأداء، الموقع الجغرافي للخوادم، إلخ). فيما يلي بعض الخيارات الشائعة:Amazon RDS (Relational Database Service):تقدم Amazon RDS خدمة قواعد بيانات MySQL مدارة. الأسعار تعتمد على عدة عوامل مثل نوع المثيل، التخزين، والنقل.مثال: تبدأ الأسعار من حوالي 0.017 دولار لكل ساعة لمثيل db.t3.micro، بالإضافة إلى تكلفة التخزين (0.10 دولار لكل جيجابايت شهريًا) ونقل البيانات.Google Cloud SQL:تقدم Google Cloud SQL خدمة قواعد بيانات MySQL مدارة. الأسعار تشمل تكلفة المثيل، التخزين، ونقل البيانات.مثال: تبدأ الأسعار من حوالي 0.0178 دولار لكل ساعة لمثيل db-f1-micro، بالإضافة إلى تكلفة التخزين (0.17 دولار لكل جيجابايت شهريًا) ونقل البيانات.Azure Database for MySQL:تقدم Microsoft Azure خدمة قواعد بيانات MySQL مدارة. الأسعار تعتمد على الطبقة التي تختارها (أساسي، عام، أو ذاكرة محسنة) وحجم التخزين والأداء.مثال: تبدأ الأسعار من حوالي 0.016 دولار لكل ساعة للمثيل الأساسي، بالإضافة إلى تكلفة التخزين (0.10 دولار لكل جيجابايت شهريًا) ونقل البيانات.DigitalOcean Managed Databases:تقدم DigitalOcean خدمات قواعد بيانات MySQL مدارة بأسعار تنافسية.مثال: تبدأ الأسعار من 15 دولار شهريًا لمثيل قاعدة بيانات صغيرة مع 1 جيجابايت من الذاكرة و 10 جيجابايت من التخزين.خدمات استضافة الويب التقليدية:بعض خدمات الاستضافة المشتركة (مثل Bluehost، SiteGround، وHostGator) تقدم قواعد بيانات MySQL كجزء من حزم الاستضافة. الأسعار تبدأ من حوالي 3-10 دولار شهريًا لحزم الاستضافة المشتركة.