![]() |
[PHP] - אנשים בלייב?, בעיה.
OK, חברי הוסטס.
אני מנסה לחשוב על תהליך כזה. אני רוצה לעשות במערכת שלי אפשרות כזו ואין לי ממש רעיון. ככה נגיד ויש לי כרגע 3 משתמשים באתר. לדוגמא: 1. יוסי 2. קובי 3. מתן עכשיו במערכת ניהול זה מראה לי ככה: כרגע צופים באתרך 3 אנשים, עכשיו למשל יוסי(1) יוצא מהאתר אז זה אומר כרגע 2 אנשים באתר. אבל באותו רגע שהוא יוצא. זה ישר מתעדכן, מה שאני חושב שזה רק ב JS PHP למישהו עולה דרך משהו.? |
זה ממש לא חייב להיות ב AJAX. אצלי באתר זה בנוי ככה:
כל גולש שנכנס לאתר זה מכניס אותו כ IP לתוך הדאטה בייס, וזה שומר רק את הגולשים שגלשו ב 5 דקות האחרונות. לדוגמה, אם הגולש יצא לפני 5 דקות זה מוריד אותו מהדאטה בייס. יש שורה שמורידה את כל הגולשים שה timestemp האחרון שלהם היה לפני 5 דקות. וכמובן שאתה יכול להוסיף $_SERVER[PHP_SELF] לראות באיזה דף הם נמצאים time() מתי הפעולה האחרונה שלהם הייתה, IP והשמיים הם הגבול. בהצלחה. |
מה הקשר AJAX? אתה צריך להכניס שורה למסד כל פעם שמשתמש נכנס (עם הפרטים שלו והזמן שהוא התחבר) ובאותו הדף אתה מוסיף עוד שאילתה שמוחק את כל המשתמשים שהזמן התחברות שלהם יותר מ X זמן.
מקווה שהבנת.. (זה העיקרון) |
לא ממש הבנתי האמת.
|
אבל לפי מה שהבנתי הוא רוצה לעשות את זה בלי רענון.
|
ציטוט:
|
זה SESSION TABLES, ככה IPB עובדת, דיי פשוט - וזה מאפשר לך להחליט תוך כמה זמן הסשן נמחק.
זה לא AJAX. |
תעשה סקריפט שבודק כל חמש דקות מי מחובר \=
|
אתה תצטרך להשתמש ה-AJAX אם אתה רוצה את זה לייב פשוט תעשה בעמוד בתוך התגיד של BODY תעשה onunload ואז תקבע לו לשוח את המידע על המשתמש לתוך קובץ PHP והקובץ הזה ידאג למחוק אותו מהמסד
|
אין מישהו שעושה LIVE, אם עוברים 15 דקות מה עושים? פשוט מחכים שהוא יצא ONUNLOAD? ואם אין JS בדפדפן או שאין תמיכה באובייקט, פשוט מוותרים על הגולשים לסטטיסטיקה? זו לא דרך..
|
אפשר להגדיר תג META שמדי 15 דקות יבצע ריענון.. לא כל דבר חייב לתקוע AJAX
|
באמת לא חייב לתקוע בכל מקום AJAX..
לדעתי זה מיותר.. הדרך של hanan היא הכי טובה לדעתי.. ואפילו לא צריך למחוק כל פעם את את האאי פי מהמסד.. אפשר לעשות פשוט שכול יום בשעה 00:00 יהיה קובץ שיופעל אוטומטית ע"י ה DA שירוקן את הטבלה.. |
ציטוט:
|
ציטוט:
זה פתרון מתחמק.. |
כל גולש שנכנס ה IP שלו נכנס למסד, כל פעם שגולש עובר עמוד מורץ עמוד בדיקה (ע"י include) שמוחק את כל הרשומות שהזמן בהן גדול [נראה לי, אין לי כוח לחשוב על זה] מה- 5 / 15 דק' אחרונות ופשוט מוחק..
PHP קוד:
אתה רוצה מיידית? תוסיף onunload בנוסף. |
הכנתי את זה הרגע בשביל מערכת ADMINISTRATOR בלי שום קשר לבקשה שלך, תגיד לי מה אתה לא מבין ואני אעזור לך. צריך את מבנה הטבלה? את צורת הבנייה? חוץ מהקוד עצמו אני נותן לך הכל.
|
צורת הבנייה תעזור לי הרבה
|
הטבלה:
ip, id, type, agent, time ip - הIP של הגולש id - הID של המנהל, כמובן שזה לא חובה type - סוג המנהל, רציתי לשמור גם אורחים אז עשיתי ADMIN ו-ADMIN_GUEST agent - סוג הדפדפן וכו', שומר את המידע של HTTP_USER_AGENT במערך SERVER, ומונע אישור הסשן בדפדפן ששונה ממה שנכנסת ממנו - כלומר, אם אתה נכנס מFF ואח"כ מIE אתה צריך לאמת שוב, כמו סשן רגיל. הכנתי (לפני הרבה זמן) מחלקה בשם Administrator, כשיוצרים אותה היא מבצעת אימות - האם הרשומה של הIP והAGENT קיימת במסד? אם כן היא מעדכנת אותה ואז בודקת מאיזה סוג היא - אם היא מסוג אורח, אז זה רק מעדכן את הזמן. אם זה מסוג מנהל, אז זה הופך משתנה בCLASS לTRUE ושומר את המידע. בנוסף, בעת ההתחברות, יש INSERT במידה והIP לא קיים במסד ו-UPDATE במידה והוא קיים. אם לא הבנת משהו אל תתבייש לשאול. |
ציטוט:
עכשיו אני לא ממש הבנתי את העיקרון שלך. |
אני חושב שהבנתי אותך מצויין, כרגע כשמתחברים לאדמין יש לך רשימה של כל האנשים המחוברים לפאנל, באותה מידה הייתי יכול לעשות COUNT ולהציג את מספר המחוברים.
|
ציטוט:
יש כרגע 0 אנשים במונה, אתה נכנס סתם לאתר www.www.co.il אז זה מעדכן שיש מישהו באתר שלך. והוא כרגע צופה בו. אני חושב שזה עם סשיין אני מנסה נעדכן אותכם. |
קראת את ההודעה שלי? הסברתי לך איך עושים את זה..
|
ציטוט:
|
כל הזמנים הם GMT +2. הזמן כעת הוא 06:39. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ