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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה בקשר לדרך שלי ל 'אורחים באתר'. (https://hosts.co.il/forums/showthread.php?t=19797)

miniature 14-04-06 03:15

שאלה בקשר לדרך שלי ל 'אורחים באתר'.
 
אני רוצה לכתוב את האורחים שנמצאים באתר, וחשבתי לעשות ככה (בהנחה שלמשתמשים רשומים יש קוקיז):
= כניסה לדף.
- האם יש קוקיז?
- יש.
- לא קורה כלום.
- אין.
- מתחיל סשן.
- כתיבת רשימת הסשנים ע"י לולאה עם הפונקציה mseason_list או mseason_listvar .

= יציאה מהדף.
- האם יש קוקיז?
- יש.
- לא קורה כלום.
- אין.
- חיסול סשן.

עצות? דעות? תגובות?

LosNir 14-04-06 06:16

אני לא חושב שזה אפשרי למימוש, תנסה לעשתו כזה דבר ותגיד לנו אם הצלחת,
הינה קוד מתאים (בהנחה שיש מערכת הרשמה):

= כניסה לדף
- בדיקה האם קיים סשן/קוקי של השם משתמש וסיסמא (הסבר: האם המשתמש מחובר)
- אם כן,
======================
- הכנס למסד רשומה חדשה עם שם המשתמש לטבלה online:
PHP קוד:

mysql_query("INSERT INTO online VALUES('$user')"); 

======================
אם לא,
======================
- אל תעשה כלום
======================
- קריאת כל הרשומות הקיימת בטבלה online ע"י לולאה, ועל כל רשומה נקדם את $i באחד:
PHP קוד:

$i 0;
$q mysql_query("SELECT * FROM online");
while(
$a mysql_fetch_array($q))
{
$i++;
}
echo 
"users online: $i"

בהצלחה :)

עריכה:

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

miniature 14-04-06 06:25

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

לפי דעתי מה שכתבתי ניתן ליישום בקלות.
אני אלך לחפש את הפונקציה או מה שזה לא יהיה ל 'איך יודעים כשהאורח יוצא מהדף'.

LosNir 14-04-06 06:35

ציטוט:

נכתב במקור על ידי miniature
מה שכתבת סותר את עצמו:
אתה אומר שאם הוא מחובר אז צריך להכניס נתונים לטבלה..
אבל אם הוא מחובר הוא לא אורח......

לפי דעתי מה שכתבתי ניתן ליישום בקלות.
אני אלך לחפש את הפונקציה או מה שזה לא יהיה ל 'איך יודעים כשהאורח יוצא מהדף'.

אוקיי מצטער, פשוט לא הבנתי אותך טוב..
רק שאתה אומר:

- מתחיל סשן.
- כתיבת רשימת הסשנים ע"י לולאה עם הפונקציה mseason_list או mseason_listvar .

מה שם הסשן? תיתן יותר פרטים..
ולמה לכתוב את הסשנים?
אתה אמור לבדוק כמה סשנים יש, ואז להדפיס את הכמות.
וכשתמצא את הפונקציה שבודקת אם המשתמש יצא, ותגיד לי |winky| (לדעתי זה לא אפשרי, בגלל שהקוד רץ כשנכנסים, ואין אפשרת להריץ קטע קוד כשיוצאים מהדף, אבל בהחלט אפשרי לעשות זאת עם JS (רמז: onunload, ואז העברה לקובץ שמוחק את הסשן)

miniature 14-04-06 06:37

ציטוט:

נכתב במקור על ידי LosNir
אוקיי מצטער, פשוט לא הבנתי אותך טוב..
רק שאתה אומר:

- מתחיל סשן.
- כתיבת רשימת הסשנים ע"י לולאה עם הפונקציה mseason_list או mseason_listvar .

מה שם הסשן? תיתן יותר פרטים..
ולמה לכתוב את הסשנים?
אתה אמור לבדוק כמה סשנים יש, ואז להדפיס את הכמות.
וכשתמצא את הפונקציה שבודקת אם המשתמש יצא, ותגיד לי |winky| (לדעתי זה לא אפשרי, בגלל שהקוד רץ כשנכנסים, ואין אפשרת להריץ קטע קוד כשיוצאים מהדף, אבל בהחלט אפשרי לעשות זאת עם JS (רמז: onunload, ואז העברה לקובץ שמוחק את הסשן)

אני לא מבין גדול ב JS :-/

LosNir 14-04-06 06:41

ציטוט:

נכתב במקור על ידי miniature
אני לא מבין גדול ב JS :-/

סליחה, זה לא JS, זה פשוט פרמטר ב BODY, שהערך שלו הוא ממש ממש טיפה JS
למשל:

HTML קוד:

<body onunload="window.location=('remove.php?user=$user')">

miniature 14-04-06 06:57

אוקי, תודה.
אני יכול פשוט לעשות:
HTML קוד:

<body onunload="window.location=('<?$seassion_destroy?>')">

LosNir 14-04-06 07:00

ציטוט:

נכתב במקור על ידי miniature
אוקי, תודה.
אני יכול פשוט לעשות:
HTML קוד:

<body onunload="window.location=('<?$seassion_destroy?>')">

לא, הקוד הזה ינסה לעביר אותך לדף <?$seassion_destroy?>
:-/

miniature 14-04-06 07:10

ציטוט:

נכתב במקור על ידי LosNir
לא, הקוד הזה ינסה לעביר אותך לדף <?$seassion_destroy?>
:-/

אה, אבל אני רוצה שזה יבצע פעולה, לא שיעביר את המשתמש עמוד.
ובעצם, אם הוא יוצא, איך זה יעביר אותו עמוד?! :-/
בכל אופן, אני רוצה שזה יבצע פעולה ולא העברת עמוד.

BlueNosE 14-04-06 11:03

תנסה לעשות את זה עם טבלה מסוג MEMORY ולא MyISAM
זה אפשרי אבל מסובך
ולא נראה לי אפשרי בלי משאב (קובץ, מסד וכולה)

וביציאה,אתה חייב לבצע הפנייה לדף מסויים (unload).
ד"א, זה session_destroy ולא seassion

miniature 14-04-06 15:16

ציטוט:

נכתב במקור על ידי BlueNosE
תנסה לעשות את זה עם טבלה מסוג MEMORY ולא MyISAM
זה אפשרי אבל מסובך
ולא נראה לי אפשרי בלי משאב (קובץ, מסד וכולה)

וביציאה,אתה חייב לבצע הפנייה לדף מסויים (unload).
ד"א, זה session_destroy ולא seassion

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

somebody 14-04-06 15:20

בגלל זה כתוב שכל 15 דקות או כמה שקובעים רשימת משתמשי האונליין מתעדכנת, בגלל שכל 15 דקות פועל ללואה שבודקת איזה SESSION עדיין חיי, ואם רואים אחד ש"מת" כבר והוא נמצא בטבלה מוחקים אותו ממנה.

miniature 14-04-06 15:57

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

x-ray 14-04-06 21:00

ציטוט:

נכתב במקור על ידי miniature
כן אבל איך היא מתעדכנת?
לפי מה שאמרו כאן אני צריך להעביר את המשתמש לעמוד אחר, דבר שלא קורה בפורומים.

כל פרק זמן מוסיים הלולאה רצה מחדש ובודקת את מספר הסשנים שיש,אם משתמש יצא מהאתר אז הסשין שלו נמחק.

miniature 17-04-06 00:50

עשיתי:
PHP קוד:

$counter 0;
session_start();
if(!
$_SESSION["counter_load"]) {
  
$_SESSION["counter_load"]=1;
  
$counter++;
}
echo 
$counter

נכנסו כבר 2 אנשים וזה כותב 0. מה הבעיה?

BlueNosE 17-04-06 10:32

כי אתה מודד לאותו בנאדם..
אין פה הכללה.
אתה חייב להשתמש במסד או בקובץ נתונים.


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

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