הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 26-10-06, 18:01   # 1
-roee-
חבר על
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: IL
הודעות: 864

-roee- לא מחובר  

מערכת "מחוברים עכשיו"

שלום



כתבתי קוד של מערכת שמציגה את המחוברים עכשיו אבל היא לא ממש עובדת...



המסד הוא כזה:

PHP קוד:
 CREATE TABLE `sessions` (
  `
sidvarchar(255NOT NULL default '',
  `
timevarchar(255NOT NULL default '',
  `
is_userint(11NOT NULL default '0',
  `
user_namevarchar(255NOT NULL default ''
ENGINE=MyISAM DEFAULT CHARSET=latin1




בתחילת הדף אני מייבא את הפונקציה update_session

ובסיום הדף אני מייבא את הפונקציה close_session



להלן הפונקציות:

PHP קוד:
 function update_sessions()
 {

  
session_start();
  
$s_id session_id();
  
$time time();
  
  if( 
$_SESSION['site_session'] == )
  {
   
mysql_query("update sessions set time='$time' where sid='$s_id'");
  } else {
   
$_SESSION['site_session'] = 1;
   if( ! isset(
$_COOKIE['site_user']) )
   {
    
$is_user 0;
   } else {
    
$is_user 1;
   }
   
$user_name $this->username(); // זה לא חשוב כרגע... 

   
mysql_query("insert into sessions (sid,time,is_user,user_name) values('$s_id','$time','$is_user','$user_name')");
  }

 }

 function 
close_sessions()
 {

  
$time time() - 30;
  
mysql_query("delete from sessions where time <= '$time'");

 } 


עכשיו כדי להציג את המשתמשים המחוברים אני עושה ככה:

PHP קוד:
$now_logged_in mysql_query("select * from sessions where is_user='1'");
while( 
$l mysql_query($now_logged_in) )
{
$user mysql_query("select * from users where user_name='{$l['user_name']}'"));
$l['user_id'] = $user['id'];
echo 
"- <a href=\"index.php?act=profile&amp;id={$l['user_id']}\">{$l['user_name']}</a>";



אבל לצערי זה לא מציג שום דבר.. יעני לא מציג שמשתמשים הם מחוברים למרות שהם כן.. וכל העניין עם העוגיות והסאשן נכונים ב100%.. אולי יש לי טעות בקוד שלא שמתי לב



מישהו יודע מה הבעיה?

אני אשמח לקבל תשובה בהקדם.



תודה ויום טוב
  Reply With Quote
ישן 26-10-06, 18:04   # 2
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

קודם כל... למה זה לא עובד ?
כי עשית ככה :

PHP קוד:
$time time() - 30
בסגירה ?
מה ניסית לעשות ? 30 דקות ? אם כן תכפיל את זה ב 60
30 שעות ? תכפיל ב 3600
כי TIME הולך לפי שניות, לא לפי דקות...
  Reply With Quote
ישן 26-10-06, 18:27   # 3
-roee-
חבר על
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: IL
הודעות: 864

-roee- לא מחובר  

ניסיתי לעשות שזה ימחק מה שגדול מ 30 שניות
מה לא טוב בזה?
  Reply With Quote
ישן 26-10-06, 18:35   # 4
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

תבטל את המחיקה....בכלל ותראה איך זה מגיב....

עריכה
----
במחשבה שניה, דרך שתהיה הרבה יותר יעילה וטובה....
תוסיף שדה במסד תקרא לו EXPIRE ואז תכניס אליו את הערך של
time()+30
ואז אחרי זה תמחוק את מה ש TIME של עכשיו גדול מהם לפי ה EXPIRE
יסדר לך הרבה בעיות...

Last edited by RS324; 26-10-06 at 18:38..
  Reply With Quote
ישן 26-10-06, 18:50   # 5
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

בדקת בכלל אם זה מוסיף את הנתונים למסד?
אם זה לא מוסיף תוסיף ככה:
`sessions`
  Reply With Quote
ישן 26-10-06, 18:55   # 6
רומן
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
מיקום: באר שבע
גיל: 37
הודעות: 405
שלח הודעה באמצעות ICO אל רומן

רומן לא מחובר  

למה שלא תעשה פשוט שכל פעולה זה מעדכן את ה time() אצל המשתמש ואז תוציא את כל אלו שמחובירם ב15 דקות האחרונות וזהו..
  Reply With Quote
ישן 26-10-06, 18:58   # 7
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

ציטוט:
נכתב במקור על ידי 4ior
בדקת בכלל אם זה מוסיף את הנתונים למסד?
אם זה לא מוסיף תוסיף ככה:
`sessions`
אתה יודע למה בכלל משתמשים בזה ? או שסתם הגבת בלי קשר ?
  Reply With Quote
ישן 26-10-06, 19:02   # 8
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

ציטוט:
נכתב במקור על ידי RS324
אתה יודע למה בכלל משתמשים בזה ? או שסתם הגבת בלי קשר ?
כשאני לא שם אותם אז זה לא מוסיף לי.
  Reply With Quote
ישן 26-10-06, 19:04   # 9
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

ציטוט:
נכתב במקור על ידי 4ior
כשאני לא שם אותם אז זה לא מוסיף לי.
אז כנראה שהבעיה אצלך היא אחרת
זה נועד לעטוף את זה ולגרום ל MYSQL להסתכל על זה כ STRING בלבד
ולא כמשהו אחר... כנראה שאתה משתמש בשמור שהם שמורים במערכת
כמו ORDER, DESCRIBE וכדומה
  Reply With Quote
ישן 26-10-06, 21:53   # 10
DorWD
תודה על תרומתך.
 
DorWD's Avatar
 
מיני פרופיל
תאריך הצטרפות: Jan 2006
מיקום: עפולה
גיל: 31
הודעות: 2,259

DorWD לא מחובר  

קוד:
while( $l = mysql_query($now_logged_in) )
זה לא אמור להיות עם mysql_fetch_array או משו? :\
__________________
מתכנת WEB
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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