عموما هى فكرة برمجية بسيطة جدا
وتعتمد على تخزين ارقام الاى بى للزوار فى القاعدة ويتم تحديث القاعدة عند كل زيارة
واليك مثال للبرمجة
اولا نقوم بانشاء جدول فى القاعدة
كود PHP:
CREATE TABLE online (
id int(11) NOT NULL auto_increment,
ip varchar(100) default NULL,
end int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;
وهذه يكون جدول باسم online وفيه ثلاثة حقول id و ip و end
ثم ننشىء الاستعلام من القاعدة والاوامر البرمجية فى ملف php
كود PHP:
<?php
$db=mysql_connect("localhost","username","password");
mysql_select_db("dbname",$db);
$end = time() + (60 * 10);
$sql = mysql_query("DELETE FROM online
WHERE end <= '" . time() . "'");
$sql = mysql_query("SELECT ip FROM online WHERE ip='"
.$_SERVER['REMOTE_ADDR']."' limit 1");
$num = mysql_fetch_row($sql);
if ($num < 1) {
$sql = mysql_query("INSERT INTO online (ip,end)
VALUES('" . $_SERVER['REMOTE_ADDR']
."','$end')");
} else {
$sql = mysql_query("UPDATE online set end='$end'
WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
}
$sql=mysql_query("SELECT count(ip) FROM online");
$total=mysql_result($sql,0);
echo "عدد المتواجدين : ".$total;
?>
طبعا الشرح
اول سطرين الاتصال بقاعدة البيانات ويجب وضع اسم القاعدة واسم المستخدم والباسوورد واذا كان عندك ملف config فيجب اضافة include ("config.php"); فى الاول وعدم اجراء الاتصال (طبعا هذا اذا اردت اضافة الجداول فى نفس ثاعدة بيانات الموقع
اما اذا اردتها منفردة فيمكنك عملها كما هى بالخطوات بدون ملف كونفيج
السطر time() + (60 * 10); هو لتحديد فترة تواجد الزائر وهى حاليا 10 دقائق
والاستعلام delete بعدها لحذف عدد الزوار من القاعدة بعد مضى الزمن الذى حددناه (10 دقائق)
والاستعلام select لقراءة المتواجدون حاليا بالاعتماد على الاى بى
وبالطبع امر insert بعده لاضافة اى زائر جديد الى القاعدة (الاى بى) طبعا
طبعا نحن عملنا جملة شرطية لانه اذا كان الزائر نفسه ونفس الاى بى يتم تحديث وقت انتهاء الزيارة فى الاستعلام update بعده واذا كان جديد يضيف الاى بى له ويضيفه الى المتواجدين
واخيرا كود طباعة عدد المتواجدين الان
واخيرا نسالكم الدعاء