הערה חשובה
כל השרתים החינמיים לא תומכים ב-Global.asa, לכן אי אפשר יהיה לנסות את הדוגמא או להשתמש בה בשרתים חינמיים
במיקרים רבים אנו רוצים לדעת אילו אנשים הם און ליין באתר ובאילו דפים. ניתן לעשות זאת על ידי שימוש ב- ASP בקלות על ידי הכנסת הנתונים למערך גלובלי ולקרוא אותו. מה שנעשה בתוכנית זו יתחלק ל- 3 חלקים:
- יצירת מערך בגלובל אסא בשיגרה Application_OnStart. בשיגרה Session_OnEnd המערך יתרוקן.
- יצירת הקובץ המכניס את המשתנים למערך. קובץ זה ישמש אותנו בכל דף שנירצה לצפות עליו.
- קובץ הקריאה, בשביל האדמין, שיוכל לראות איזה אנשים נמצאים באיזה דף.
יצירת מערך בגלובל אסא
נפתח את קובץ הגלובל אסא שלנו ונוסיף את השגרה הבאה:
sub Application_OnStart()
Dim Stats(1000,5)
Application("Stats")=Stats
end sub | מה שיצרנו הוא משתנה גלובלי (מסוג מערך) דו מימדי. המערך הזה יספיק לנו ל- 1000 אנשים (בלבד...) בו זמנית. אם האתר שלכם מכיל יותר אנשים בו זמנית פשוט תגדילו את ה- 1000 למספר אחר.
בשיגרה Session_OnEnd נרוקן את המערך על מנת שנקבל מספר אמיתי:
sub Session_OnEnd
Application.Lock
localStats=Application("Stats")
For i = 0 to UBOUND(localStats,2)
If localStats(0,i)=Session.SessionID Then
localStats(0,i)=""
Exit For
End If
Next
Application("Stats")=localStats
Application.UnLock
end sub | בחזרה למעלה
יצירת הקובץ המכניס את המשתנים למערך
ניצור את הקובץ whoIsOn.asp קובץ זה בעצם יכניס לתוך המערך את הנתונים שאנו רוצים לראות:
- ה- Session_Id.
- הנתיב של הקובץ.
- זמן הכניסה.
- ה- IP של המשתמש.
<%
foundUser=False
Application.Lock
localStats=Application("Stats")
For k=0 To Ubound(localStats,2)
If localStats(0,k)=Session.SessionID Then
localStats(1,k)=Request.ServerVariables("SCRIPT_NAME")
foundUser=True
Exit For
End If
Next
If foundUser=False Then
For k=0 To Ubound(localStats,2)
If localStats(0,k)="" Then
localStats(0,k)=Session.SessionID
localStats(1,k)=Request.ServerVariables("SCRIPT_NAME")
localStats(2,k)=Request.ServerVariables("REMOTE_ADDR")
localStats(3,k)=Now()
Exit For
End If
Next
End If
Application("Stats")=localStats
Application.UnLock
%>
תסריט זה בודק האם קיים Session במערך Stats. אם הוא קיים אז המידע מעודכן במערך. אם לא נוספת למערך רשומה חדשה הכוללת את ה- Session_id, שם הדף בו הגולש נמצא, כתובת ה- IP של הגולש, והזמן. נשמור את הקובץ בשם whoIsOn.asp ונכניס את האינקלוד הבא בכל דף אותו אנו רוצים לבדוק.
קובץ הקריאה
טוב כמעט גמרנו, עכשיו ניצור את הקובץ showWhoIsOn.asp שמציג את כל הגולשים. <%
MyServer=Request.ServerVariables("SERVER_NAME")
MyPath=Request.ServerVariables("SCRIPT_NAME")
MySelf="HTTP://" & MyServer & MyPath
%>
Who Is On
<%
Application.Lock
localStats=Application("Stats")
Application.UnLock
%>
WHO IS ON
|
User ID |
Current Page |
IP Address |
Start Time |
<%
For i=0 To Ubound(localStats,2)
If localStats(0,i) <> "" Then
%>
| <%= i %> |
<%= localStats(0,i) %> |
<%= localStats(1,i) %> |
<%= localStats(2,i) %> |
<%= localStats(3,i) %> |
<%
End If
Next
%>
הדף הזה מאוד פשוט - השורה הראשונה מכלילה את הקובץ whoIsOn.asp, דבר זה יאפשר לנו לדעת שאנו באמת צופים בדף הנכון. הנתיב שלו יופיע ליד ה- ID שלנו. דף זה מתרענן כל 20 שניות, אנו מקבלים את ה- Path של הדף בו אנו אנחנו נמצאים כדי לבצע ריענון. החלק הבא מעביר את המערך הגלובלי לתוך מערך זמני מקומי, הלולאה שרצה על מערך זה מציגה את האנשים הנמצאים כרגע באתר. פשוט, לא? בחזרה למעלה
ניתן להרחיב תוכנית זו לדוגמא אם אתם שומרים בעוגייה את הנתונים על כל משתמש כגון שם או כל דבר שהוא, ניתן להציג זאת על ידי הגדלת המערך (מ- 5 ל- 6) בגלובל אסא והכנסת הנתון אותו אתם מעוניינים בדף המתאים...
|