הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] - אנשים בלייב?, בעיה. (https://hosts.co.il/forums/showthread.php?t=52716)

Nati_Man 25-08-07 19:34

[PHP] - אנשים בלייב?, בעיה.
 
OK, חברי הוסטס.
אני מנסה לחשוב על תהליך כזה.

אני רוצה לעשות במערכת שלי אפשרות כזו ואין לי ממש רעיון.
ככה נגיד ויש לי כרגע 3 משתמשים באתר.

לדוגמא:
1. יוסי
2. קובי
3. מתן

עכשיו במערכת ניהול זה מראה לי ככה:
כרגע צופים באתרך 3 אנשים, עכשיו למשל יוסי(1) יוצא מהאתר אז זה אומר כרגע 2 אנשים באתר.
אבל באותו רגע שהוא יוצא. זה ישר מתעדכן, מה שאני חושב שזה רק ב JS PHP למישהו עולה דרך משהו.?

Hanan 25-08-07 19:58

זה ממש לא חייב להיות ב AJAX. אצלי באתר זה בנוי ככה:
כל גולש שנכנס לאתר זה מכניס אותו כ IP לתוך הדאטה בייס, וזה שומר רק את הגולשים שגלשו ב 5 דקות האחרונות.
לדוגמה, אם הגולש יצא לפני 5 דקות זה מוריד אותו מהדאטה בייס. יש שורה שמורידה את כל הגולשים שה timestemp האחרון שלהם היה לפני 5 דקות.
וכמובן שאתה יכול להוסיף $_SERVER[PHP_SELF] לראות באיזה דף הם נמצאים time() מתי הפעולה האחרונה שלהם הייתה, IP והשמיים הם הגבול.

בהצלחה.

Elad-A 25-08-07 19:59

מה הקשר AJAX? אתה צריך להכניס שורה למסד כל פעם שמשתמש נכנס (עם הפרטים שלו והזמן שהוא התחבר) ובאותו הדף אתה מוסיף עוד שאילתה שמוחק את כל המשתמשים שהזמן התחברות שלהם יותר מ X זמן.

מקווה שהבנת.. (זה העיקרון)

Nati_Man 25-08-07 20:19

לא ממש הבנתי האמת.

Ron | CSite.co.il 25-08-07 20:24

אבל לפי מה שהבנתי הוא רוצה לעשות את זה בלי רענון.

Nati_Man 25-08-07 20:27

ציטוט:

נכתב במקור על ידי פיפא (פרסם 547611)
אבל לפי מה שהבנתי הוא רוצה לעשות את זה בלי רענון.

כן ללא רענון, אוטומטי ומהיר ביותר שהיה. לא עולה לי עדין משהו חוץ משחנן אמר משהו שאני מנסה לעשות ולא ממש מצליח.

BlueNosE 25-08-07 20:47

זה SESSION TABLES, ככה IPB עובדת, דיי פשוט - וזה מאפשר לך להחליט תוך כמה זמן הסשן נמחק.
זה לא AJAX.

Startzero.net 25-08-07 21:16

תעשה סקריפט שבודק כל חמש דקות מי מחובר \=

חיים 25-08-07 21:32

אתה תצטרך להשתמש ה-AJAX אם אתה רוצה את זה לייב פשוט תעשה בעמוד בתוך התגיד של BODY תעשה onunload ואז תקבע לו לשוח את המידע על המשתמש לתוך קובץ PHP והקובץ הזה ידאג למחוק אותו מהמסד

BlueNosE 25-08-07 21:40

אין מישהו שעושה LIVE, אם עוברים 15 דקות מה עושים? פשוט מחכים שהוא יצא ONUNLOAD? ואם אין JS בדפדפן או שאין תמיכה באובייקט, פשוט מוותרים על הגולשים לסטטיסטיקה? זו לא דרך..

Elad-A 25-08-07 21:46

אפשר להגדיר תג META שמדי 15 דקות יבצע ריענון.. לא כל דבר חייב לתקוע AJAX

O-B 25-08-07 22:15

באמת לא חייב לתקוע בכל מקום AJAX..
לדעתי זה מיותר..

הדרך של hanan היא הכי טובה לדעתי..
ואפילו לא צריך למחוק כל פעם את את האאי פי מהמסד..
אפשר לעשות פשוט שכול יום בשעה 00:00 יהיה קובץ שיופעל אוטומטית ע"י ה DA שירוקן את הטבלה..

Nati_Man 25-08-07 22:56

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 547646)
אין מישהו שעושה LIVE, אם עוברים 15 דקות מה עושים? פשוט מחכים שהוא יצא ONUNLOAD? ואם אין JS בדפדפן או שאין תמיכה באובייקט, פשוט מוותרים על הגולשים לסטטיסטיקה? זו לא דרך..

זה לא ממש סטטיסטיקה, זה אני רוצה לראות כמו שכמה אורחים יש פה בנושא הזה למשל כתוב 4 אורחים, עם אחד יצא ואני ירענן זה ירשום 3 אורחים. עכשיו במקום לרענן לעשות איזה לעשות שהחלק של הטקסט שאני ישלוף מהמסד אז הוא יתרענן בלבד. רק שאין לי מוסג עדין איך אני עושה את זה.

BlueNosE 25-08-07 23:06

ציטוט:

נכתב במקור על ידי O-B (פרסם 547660)
באמת לא חייב לתקוע בכל מקום AJAX..
לדעתי זה מיותר..

הדרך של hanan היא הכי טובה לדעתי..
ואפילו לא צריך למחוק כל פעם את את האאי פי מהמסד..
אפשר לעשות פשוט שכול יום בשעה 00:00 יהיה קובץ שיופעל אוטומטית ע"י ה DA שירוקן את הטבלה..

והגולשים ב12 בלילה נעלמים, או שהם רק הופכים לדלעת?
זה פתרון מתחמק..

Tomer 25-08-07 23:27

כל גולש שנכנס ה IP שלו נכנס למסד, כל פעם שגולש עובר עמוד מורץ עמוד בדיקה (ע"י include) שמוחק את כל הרשומות שהזמן בהן גדול [נראה לי, אין לי כוח לחשוב על זה] מה- 5 / 15 דק' אחרונות ופשוט מוחק..

PHP קוד:

DELETE FROM `tblWHERE `time`>'someINTtime' 

מיותר לציין שהעמוד לא מחזיר שומדבר.

אתה רוצה מיידית? תוסיף onunload בנוסף.

BlueNosE 26-08-07 00:16

הכנתי את זה הרגע בשביל מערכת ADMINISTRATOR בלי שום קשר לבקשה שלך, תגיד לי מה אתה לא מבין ואני אעזור לך. צריך את מבנה הטבלה? את צורת הבנייה? חוץ מהקוד עצמו אני נותן לך הכל.

Nati_Man 26-08-07 00:42

צורת הבנייה תעזור לי הרבה

BlueNosE 26-08-07 00:56

הטבלה:
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 במידה והוא קיים.
אם לא הבנת משהו אל תתבייש לשאול.

Nati_Man 26-08-07 05:43

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 547703)
הטבלה:
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 במידה והוא קיים.
אם לא הבנת משהו אל תתבייש לשאול.

אחי אני חושב שאני לא הבנתי אותך או שאתה לא הבנת אותי, אני לא מנסה לראות את הIP של המשתמשים או משהו כזה, אני מנסה לעשות למשל יש עכשיו 0 אנשים באתר שלי אני רואה במערכת ניהול: כרגע 0 אנשים צופים באתר ועם למשל עכשיו מישהו נכנס לאתר באותו רגע זה מתעדכן/מתרענן וישר שולח לפאנל "כרגע 1 אנשים צופים באתר, וכו' וכו' וכו'...
עכשיו אני לא ממש הבנתי את העיקרון שלך.

BlueNosE 26-08-07 11:13

אני חושב שהבנתי אותך מצויין, כרגע כשמתחברים לאדמין יש לך רשימה של כל האנשים המחוברים לפאנל, באותה מידה הייתי יכול לעשות COUNT ולהציג את מספר המחוברים.

Nati_Man 26-08-07 13:14

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 547811)
אני חושב שהבנתי אותך מצויין, כרגע כשמתחברים לאדמין יש לך רשימה של כל האנשים המחוברים לפאנל, באותה מידה הייתי יכול לעשות COUNT ולהציג את מספר המחוברים.

שוב, לא מחוברים לפאנל, לדוגמא שניה.
יש כרגע 0 אנשים במונה, אתה נכנס סתם לאתר www.www.co.il אז זה מעדכן שיש מישהו באתר שלך. והוא כרגע צופה בו. אני חושב שזה עם סשיין אני מנסה נעדכן אותכם.

Elad-A 26-08-07 13:36

קראת את ההודעה שלי? הסברתי לך איך עושים את זה..

BlueNosE 26-08-07 14:27

ציטוט:

נכתב במקור על ידי Nati_Man (פרסם 547886)
שוב, לא מחוברים לפאנל, לדוגמא שניה.
יש כרגע 0 אנשים במונה, אתה נכנס סתם לאתר www.www.co.il אז זה מעדכן שיש מישהו באתר שלך. והוא כרגע צופה בו. אני חושב שזה עם סשיין אני מנסה נעדכן אותכם.

אתה מתווכח סתם.. זה שעשיתי את זה כפאנל זה סתם בשביל שזה יפעל ככה. הסברתי לך שאפשר לעשות עם זה מה שרוצים.


כל הזמנים הם GMT +2. הזמן כעת הוא 06:39.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ