منتديات مدينة الاحلام

منتديات مدينة الاحلام (http://m.dreamscity.net/)
-   قسم تطوير المواقع و المنتديات (http://m.dreamscity.net/f41.html)
-   -   برمجة المتواجدون الآن خطوة خطوة (http://m.dreamscity.net/t6802.html)

البرق 20 - 12 - 2007 18:43

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

الحقل الأول لتخزين عناوين IP
الحقل الثاني لتخزين "وقت الزيارة ناقص خمس دقائق"
إذا دخل الزائر إلى الصفحة يقوم البرنامج بمسح صف من الحقل إذا كان يطابق رقم IP الخاص بالزائر لعدم تكرار الصفوف في القاعدة، وذلك لأننا سنحسب عدد الصفوف في الجدول لكي تعيد لنا نتيجة المتواجدون الأن. إذا كان الوقت المسجل في صف أو عدة صفوف تخزين الوقت أصغر من "الوقت الآن ناقص خمس دقائق" سيمسح تلك الصفوف جميعاً لعدم تكرار الصفوف بدون زوار.

ماذا فهمت من "الوقت الآن ناقص خمس دقائق"
مثال فقط:
الوقت الآن 200 ناقص 5 يساوي 195 ، سيتم إدخال هذا الرقم إلى القاعدة. لن يتم مسح صف هذا الزائر ما دام الوقت المحفوظ في القاعدة أكبر من "الوقت الآن ناقص 5 دقائق". ستقول لي ما هذا!، أنا لم أفهم هذا الشيء ومنطقياً لا يمكن حفظ أي صف، ولكن أقول لك سأكتب السطر البرمجي الذي يمسح الوقت إذا كان الوقت المحفوظ في القاعدة أصغر من "الوقت الآن ناقص 5 دقائق" أولاً وبعده أضيف سطر إدخال عنوان IP و"الوقت الآن ناقص خمس دقائق" يعني حتى لو تم مسح الصف، فالزائر إذا زار الصفحة مرة أخرى ستتم إضافة صف جديد له وبذلك تحتسب زيارة.

مثال برمجي :

1-إذا كان الوقت المسجل في الصفوف أصغر من "الوقت الآن ناقص خمس دقائق" أو عنوان IP يطابق عنوان هذا الزائر قم بمسحها
2-أدخل "الوقت الآن ناقص خمس دقائق" ورقم IP الخاص بهذا الزائر
3-استخرج عدد الصفوف الموجودة في الجدول
4-اطبع عدد الصفوف
الآن ننتقل إلى البرمجة:
نحتاج إلى هذا الجدول:

[PHP]CREATE TABLE `nad_online` (
`nad_ip` VARCHAR( 100 ) NOT NULL ,
`nad_time` VARCHAR( 15 ) NOT NULL
);[/PHP]


كما سنحتاج إلى ملف الاتصال بالقاعدة الذي اسمه config.php ويحتوي على هذه الأكواد:

[PHP]$dbserver="localhost"; // رابط السرفر
$dbuser="root"; // اسم الدخول
$dbpass=""; // كلمة المرور
$dbname="online"; // اسم القاعدة
// الاتصال بالقاعدة
mysql_connect($dbserver,$dbuser,$dbpass) or die (mysql_error());
mysql_select_db($dbname) or die (mysql_error());[/PHP]

وملف تنصيب البرنامج اسمه install.php (بعد التنصيب امسحه فوراً):

[PHP]include('config.php');
$install=mysql_query("
CREATE TABLE `nad_online` (
`nad_ip` VARCHAR( 100 ) NOT NULL ,
`nad_time` VARCHAR( 15 ) NOT NULL
);
");
if($install){
echo"تم تركيب البرنامج بنجاح
يجب عليك مسح هذا الملف";
}else{
echo"لم يتم تركيب البرنامج لسبب مجهول";
}[/PHP]


والآن وصلنا إلى الملف المهم الذي يحتوي على جميع ما تم ذكره في المقدمة:

[PHP]$time=time(); // الوقت الأن
$ip=$_SERVER['REMOTE_ADDR']; // عنوان الايبي للزائر
$limitsec=$time-300; // 5 دقائق
$update=mysql_query("DELETE from nad_online where nad_ip='$ip' OR nad_time<'$limitsec'");
$insert=mysql_query("INSERT INTO nad_online (nad_ip,nad_time) VALUES ('$ip','$limitsec')");
$sql=mysql_fetch_array(mysql_query("SELECT count(*) as nad_ip from nad_online "));
echo $sql['nad_ip'].'عدد المتواجدون الآن';[/PHP]

قمت بعمل كل ما ذكرته في سكربت بسيط يمكنك تحميله: [online.zip]

أتمنى أن يكون الدرس مفهوماً،

Spider Man 21 - 12 - 2007 16:01

مشكور اخوي البرق

علي الدرس المفيد

يعطيك العافية يارب

الجرئ2006 21 - 12 - 2007 16:47

يسلمووووووووووو

اخي البرق على الخطوات الجميلة

ونتمنى ان نرى منك المزيد

مدينة الاحلام 21 - 12 - 2007 20:35

مشكور والله يابرق على مجهودك في تقديم كل مايفيد زوار المدينة
لاعدمناك

كاكاروت 29 - 12 - 2007 22:44

مشكور على كل هذه المعلومات


الساعة الآن 06:05.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd
ترقية وتطوير: مجموعة الدعم العربى
جميع الحقوق محفوظه لمدينة الاحلام ©


SEO by vBSEO