בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP

מי נמצא אצלכם באתר

הערה חשובה

כל השרתים החינמיים לא תומכים ב-Global.asa, לכן אי אפשר יהיה לנסות את הדוגמא או להשתמש בה בשרתים חינמיים

במיקרים רבים אנו רוצים לדעת אילו אנשים הם און ליין באתר ובאילו דפים. ניתן לעשות זאת על ידי שימוש ב- ASP בקלות על ידי הכנסת הנתונים למערך גלובלי ולקרוא אותו.
מה שנעשה בתוכנית זו יתחלק ל- 3 חלקים:

  1. יצירת מערך בגלובל אסא בשיגרה Application_OnStart. בשיגרה Session_OnEnd המערך יתרוקן.
  2. יצירת הקובץ המכניס את המשתנים למערך. קובץ זה ישמש אותנו בכל דף שנירצה לצפות עליו.
  3. קובץ הקריאה, בשביל האדמין, שיוכל לראות איזה אנשים נמצאים באיזה דף.

יצירת מערך בגלובל אסא

נפתח את קובץ הגלובל אסא שלנו ונוסיף את השגרה הבאה:
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 קובץ זה בעצם יכניס לתוך המערך את הנתונים שאנו רוצים לראות:

  1. ה- Session_Id.
  2. הנתיב של הקובץ.
  3. זמן הכניסה.
  4. ה- 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 ונכניס את האינקלוד הבא בכל דף אותו אנו רוצים לבדוק.

 

 

<!--#include file="whoIsOn.asp"-->

קובץ הקריאה

טוב כמעט גמרנו, עכשיו ניצור את הקובץ showWhoIsOn.asp שמציג את כל הגולשים.

<% MyServer=Request.ServerVariables("SERVER_NAME") MyPath=Request.ServerVariables("SCRIPT_NAME") MySelf="HTTP://" & MyServer & MyPath %> <html> <head> <meta http-equiv="refresh" content="20;<%= MySelf %>"> <title>Who Is On</title> </head> <body> <!-- #include File="whoIsOn.asp" --> <% Application.Lock localStats=Application("Stats") Application.UnLock %> <center> <h2>WHO IS ON</h2> <table border="1" cellpadding="10" cellspacing="0" bgcolor="#eeeeee"> <tr bgcolor="#cccccc"> <th></th> <th>User ID</th> <th>Current Page</th> <th>IP Address</th> <th>Start Time</th> </tr> <% For i=0 To Ubound(localStats,2) If localStats(0,i) <> "" Then %> <tr> <th><%= i %></th> <td><%= localStats(0,i) %></td> <td><%= localStats(1,i) %></td> <td><%= localStats(2,i) %></td> <td><%= localStats(3,i) %></td> </tr> <% End If Next %> </table> </center> </body> </html>

הדף הזה מאוד פשוט - השורה הראשונה מכלילה את הקובץ whoIsOn.asp, דבר זה יאפשר לנו לדעת שאנו באמת צופים בדף הנכון. הנתיב שלו יופיע ליד ה- ID שלנו.
דף זה מתרענן כל 20 שניות, אנו מקבלים את ה- Path של הדף בו אנו אנחנו נמצאים כדי לבצע ריענון.
החלק הבא מעביר את המערך הגלובלי לתוך מערך זמני מקומי, הלולאה שרצה על מערך זה מציגה את האנשים הנמצאים כרגע באתר. פשוט, לא?
בחזרה למעלה

ניתן להרחיב תוכנית זו לדוגמא אם אתם שומרים בעוגייה את הנתונים על כל משתמש כגון שם או כל דבר שהוא, ניתן להציג זאת על ידי הגדלת המערך (מ- 5 ל- 6) בגלובל אסא והכנסת הנתון אותו אתם מעוניינים בדף המתאים...



התגובות שלכם

                  
01. 28/08/2005  חמי
לא כל כך הבנתי את ההסבר אז הורדתי את הדוגמא.
אבל לא הבנתי עוד משהו.
איך אני יכול לעשות שכולם יראו כמה אנשים באתר שלי בלי IP וכל השאר, רק כמה אנשים באתר שלי.


מחבר: רועי עובדיהרמת קושי: 2  ||  ציון: (7.33333333333333)כל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם