معرفی سایت
صفحه اول

به وبلاگ آموزش برنامه نویسی خوش آمدید ، برای شما لحظات خوشی را در این وبلاگ آرزو می کنم . این وبلاگ با هدف آموزش برنامه نویسی با تمام زیان ها ایجاد شده است به همین خاطر مطالب این پایگاه گلچینی از بهترین آموزش ها در اینترنت می باشد . من "رضا عبدالملکی " دانشجوی دوره کاردانی رشته کامپیوتر از شهرستان دورود در استان لرستان هستم و منتظر نظرات ، پیشنهادات و انتقادات شما می باشم . موفق و پیروز باشید .




آمار سايت
كل بازديدهاي سايت: 87895
تاريخ ايجاد وبلاگ: شنبه 2 آبان 1388
بروز رساني:چهارشنبه 12 خرداد 1389
تعداد نظرات داده شده : 73 نظر
كل مطالب ارسال شده: 791 عدد
تاريخ ايجاد وبلاگ: شنبه 2 آبان 1388
بروز رساني:چهارشنبه 12 خرداد 1389
تعداد نظرات داده شده : 73 نظر
كل مطالب ارسال شده: 791 عدد
امکانات جانبی
در اکثر برنامه های جامع شمارش بازدیدکننده ، قابلیت نمایش افرادی که آنلاین هستند تعبیه شده که به وفور وجود دارد و می توانید از انها از استفاده کنید. من در اینجا قصد ندارم اسکریپتی را معرفی کنم که بلافاصله پس از دریافت بتوانید آن را به سرویس دهنده خود منتقل کرده و از آن استفاده کنید! اینجا جنبه آموزشی ساختار این اسکریپت و نحوه کارش مهم است.
به راحتی می توان اطلاعات مربوط به این اسکریپت را در یک فایل متنی ذخیره نمود اما برای انعطاف پذیری و قدرت مانور بیشتر از بانک اطلاعاتی MySQL استفاده می کنیم.
در ابتدای کار برای ساخت این جدول کدهای SQL زیر را در بانک اطلاعاتی خود وارد کنید:
واضح است که این کدها یک جدول به نام online_count با دو فیلد، یکی برای زمان و دیگری برای آدرس ip ایجاد می کند. بخش اصلی این اسکریپت به شکل زیر است:
به راحتی می توان اطلاعات مربوط به این اسکریپت را در یک فایل متنی ذخیره نمود اما برای انعطاف پذیری و قدرت مانور بیشتر از بانک اطلاعاتی MySQL استفاده می کنیم.
در ابتدای کار برای ساخت این جدول کدهای SQL زیر را در بانک اطلاعاتی خود وارد کنید:
کد:
CREATE TABLE online_count (
ip char(15) NOT NULL,
TMP timestamp(14),
PRIMARY KEY (ip)
);
ip char(15) NOT NULL,
TMP timestamp(14),
PRIMARY KEY (ip)
);
واضح است که این کدها یک جدول به نام online_count با دو فیلد، یکی برای زمان و دیگری برای آدرس ip ایجاد می کند. بخش اصلی این اسکریپت به شکل زیر است:
کد:
<?php
$Host = "localhost"; //Host name
$User = "root"; // Username
$Mdp = "microrayaneh.com"; // Password
$Base = "test"; // Database Name
mysql_connect ( $Host , $User , $Mdp );
//Timeout in seconds
$TimeOut = 60;
$ip = getenv( "REMOTE_ADDR" );
$Requete = "DELETE FROM online_count WHERE TMP < now()";
$Resultat = mysql_db_query( $Base , $Requete );
$Requete = "SELECT count(*) FROM online_count WHERE ip='$ip'";
$Resultat = mysql_db_query( $Base , $Requete );
while ( $T = @mysql_fetch_array( $Resultat ) ) {
$Compteur = $T["count(*)"];
}
if ( $Compteur ) {
$Requete = "UPDATE online_count SET TMP=TMP + $TimeOut WHERE ip='$ip'";
} else {
$Requete = "INSERT INTO online_count (ip, TMP) VALUES ('$ip', now()+ $TimeOut)";
}
$Envoi = mysql_db_query( $Base , $Requete );
$Requete = "SELECT count(*) FROM online_count";
$Envoi = mysql_db_query( $Base , $Requete );
while ( $T = @mysql_fetch_array( $Envoi ) ) {
$Compteur = $T["count(*)"];
}
echo $Compteur;
?>
$Host = "localhost"; //Host name
$User = "root"; // Username
$Mdp = "microrayaneh.com"; // Password
$Base = "test"; // Database Name
mysql_connect ( $Host , $User , $Mdp );
//Timeout in seconds
$TimeOut = 60;
$ip = getenv( "REMOTE_ADDR" );
$Requete = "DELETE FROM online_count WHERE TMP < now()";
$Resultat = mysql_db_query( $Base , $Requete );
$Requete = "SELECT count(*) FROM online_count WHERE ip='$ip'";
$Resultat = mysql_db_query( $Base , $Requete );
while ( $T = @mysql_fetch_array( $Resultat ) ) {
$Compteur = $T["count(*)"];
}
if ( $Compteur ) {
$Requete = "UPDATE online_count SET TMP=TMP + $TimeOut WHERE ip='$ip'";
} else {
$Requete = "INSERT INTO online_count (ip, TMP) VALUES ('$ip', now()+ $TimeOut)";
}
$Envoi = mysql_db_query( $Base , $Requete );
$Requete = "SELECT count(*) FROM online_count";
$Envoi = mysql_db_query( $Base , $Requete );
while ( $T = @mysql_fetch_array( $Envoi ) ) {
$Compteur = $T["count(*)"];
}
echo $Compteur;
?>
خط 2 تا 5 پارامترهای اتصال به پایگاه داده است که باید مقدار دهی شوند (توضیحات جلوی پارامترها مشخص می کند هر کدام مربوط به چه هستند) روش کار این اسکریپت به این شرح است که ابتدا آدرس IP ماشین در متغیر ip ذخیره می شود(12) چنانچه زمان رکورد شده در فیلد زمان، کمتر از زمان کنونی باشد، مشخصه آن آدرس پاک خواهد شد(14-15) بنابراین نگران افزایش حجم جدول نباشید.
البته توجه داشته باشید که زمان رکورد شده در فیلد، زمان کنونی بعلاوه پیش فرض 60 ثانیه خواهد بود که بعنوان Timeout انتخاب شده و مقدار آن قابل تنظیم است. حال یک ساختار شرطی ایجاد می کنیم، چنانچه ip مربوط به همان ماشین قبلی بود رکوردهای ضبط شده را آپدیت می کنیم در غیر اینصورت یک مشخصه جدید در جدول ایجاد خواهد شد(23-27) در انتهای کار با شمردن تعداد ردیف های جدول با استفاده از حلقه While، تعداد کاربران آنلاین در آن زمان را نمایش می دهیم. علاوه بر این خودتان می توانید براحتی بخش هایی مضاف بر این، بدان اضافه کنید.
در مورد تابع mysql_fetch_array که بسیار پرکاربرد است بدانید که، این تابع عموما درون حلقه قرار می گیرد و کارش این است که با هربار تکرار حلقه، یک سطر از اطلاعات دریافت شده، به صورت یک آرایه در متغیر مربوط به آن (که در اینجا T است) ذخیره می شود. این روند تا آخرین سطر از اطلاعات درون جدول ادامه پیدا می کند.
ارسال در تاريخ یک شنبه 29 آذر 1388 توسط
رضا عبدالملكي
