حل لحساب المستخدمين الحاليين عبر الإنترنت
عند إنشاء موقع اتصال عبر الإنترنت ، هناك مشكلة تجعلني أشعر بالضيق الشديد ، وهي إحصائيات في الوقت الفعلي للمستخدمين عبر الإنترنت. متطلبات العملاء: احسب العدد الحالي للمستخدمين عبر الإنترنت ، وعدد السياح ، وعدد الأعضاء ، وقائمة المستخدمين عبر الإنترنت ، بما في ذلك السياح والأعضاء والمسؤولين (إذا كانوا سياحين ، سيتم إنشاء معرف السياح تلقائيًا ، وإذا كانوا أعضاء ، فسيتم عرض اسم العضو). لأنه يتطلب في الوقت الفعلي ، أولاً سأمرر فكرة حلها باستخدام Global.asa.
مفتاح المشكلة هو كيفية إخبار المستخدم الذي تركه المستخدم ، وكيفية تنفيذ ملف أو وظيفة عندما يترك المستخدم.
بعد مناقشة مع بعض الأصدقاء عبر الإنترنت ، تم حل هذه المشكلة أخيرًا.
الحل هو: اكتب صفحة عامة. تعني الصفحة العامة المزعومة أن كل صفحة في التطبيق تحتوي على هذه الصفحة ، على سبيل المثال: Header.asp. في هذه الصفحة ، اكتب قطعة رمز باستخدام XMLHTTP. الغرض من هذا الرمز هو إرسال طلب إلى الخادم كل 10 ثوان أو 20 ثانية. والغرض من ذلك هو تحديث الوقت عبر الإنترنت للمستخدم الحالي وحذف المستخدمين الذين تجاوز وقتهم على الإنترنت فترة زمنية معينة ، بحيث تحافظ سجلات المستخدم عبر الإنترنت في قاعدة البيانات في الوقت الفعلي معين.
طرق التنفيذ الرئيسية هي:
قم بإنشاء قاعدة بيانات جديدة ، أسماء الحقول هي: ID (حرف) ، الاسم (الحرف) ، المستخدم (رقم) TT (التاريخ) ، المسؤول (رمز إذن ، 0 عادي ، 1-admin)
اسم الجدول: عبر الإنترنت
header.asp ↓
=============================================================================
<٪
......
ifSession ("s_in") <> 1andsession ("s_name") = "" ثم إذا قام المستخدم بتسجيل الدخول لأول مرة
Rs.Open "Select*fromline" ، Conn ، 3،3
Rs.Addnew
RS ("ID") = Session.SessionId
RS ("name") = "Guest" & Session.SessionId
rs ("المستخدم") = 0'0 يعني أنه لم يتم تسجيل الدخول إلى المستخدم وهو هوية السائح
RS ("TT") = الآن
Rs.update
Rs.close
الجلسة ("S_IN") = 1's تم تخزين معلومات المستخدم في قاعدة البيانات ، مما يشير إلى أنه كان متصلاً بالإنترنت
Endif
ifSession ("s_name") <> "" ثم قام المستخدم بتسجيل الدخول من خلال مربع تسجيل الدخول
Rs.Open "Select*fromlineDereDyid = '" & session.sessionid & "' '" ، conn ، 3،3
RS ("الاسم") = الجلسة ("S_Name")
RS ("admin") = الجلسة ("S_admin") "تحديث اسم المستخدم إلى اسم العضو
RS ("المستخدم") = 1 "يعني أن المستخدم قام بتسجيل الدخول وهو عضو
RS ("TT") = الآن ، وقت النظام الحالي لوقت تسجيل الدخول للمستخدم
Rs.update
Rs.close
Endif
......
٪>
......
<head>
......
<scriptLanguage = javaScript>
FunctionTest ()
{
varxmlhttp = newactivexObject ("msxml2.xmlhttp") ؛
xmlhttp.open ("post" ، "apponline.asp" ، false) ؛ // إرسال طلب تحديث إلى apponline.asp
XMLHTTP.SetRequestHeader ("نوع المحتوى" ، "التطبيق/X-WWW-Form-urlencoded") ؛
xmlhttp.send () ؛
}
SetInterval ("Test () ؛" ، 10) ؛ // إرسال طلب تحديث في 10 ثوانٍ
</script>
......