16-02-2010, 19:43
|
|
|
|
חבר מתאריך: 11.03.07
הודעות: 1,668
|
|
ציטוט:
במקור נכתב על ידי fadey
אוקיי, תסלח לי שאני קצת מחוץ לתמונה, אך לא יצא לי לעבוד כ"כ הרבה עם sessions בדר"כ עבדתי עם עוגיות.
הממ, איך ניתן לספור את קבצי ה session? ואיך זה קשור לבסיס נתונים?
סליחה על הבורות חח תודה
|
יש שתי דרכים נוחות ליישם את הבעיה שלך, אני אפרט לפי סדר היעילות שלהן:
1) Sessions:
לפי מה שהבנתי ממך אתה לא צריך הסבר מה זה או איך זה עובד, אם כן אז תקרא פה
אחת התוצאות בגוגל ל"Sessions user count PHP" נתנה לי את הקוד הבא:
קוד PHP:
<?php
session_start();
function getUsersOnline() {
$count = 0;
$handle = opendir(session_save_path());
if ($handle == false) return -1;
while (($file = readdir($handle)) != false) {
if (ereg("^sess", $file)) $count++;
}
closedir($handle);
return $count;
}
echo getUsersOnline();
?>
הקוד עושה פעולה פשוטה - באתר לכל משתמש מחובר יש Session - והקוד פשוט סופר את כמות הSessions השמורים בתיקייה שמוגדרת לכך.
2) מסד נתונים:
אתה יכול ליצור טבלה עם 2 טורים - טור אחד שמכיל כתובת IP מסויימת, וטור שני את הזמן האחרון שהוא ביצע פעולה.
כל פעם שמשתמש נכנס לדף תצטרך לעדכן את הטבלה בזמן העדכני לאותו IP, וכשתרצה לספור את כמות המשתמשים תספור את כמות הכתובות שזמן הפעולה האחרונה שלהם לא עולה על יותר מ5 דקות מהזמן העכשווי.
יש חיסרון ענק בשיטה זו, שבאתר עם המון משתמשים אתה תעמיס המון שאילתות על מסד הנתונים. מצד שני, ככה אתה לא חייב להשתמש בSessions.
|