26-10-2006, 17:01
|
|
|
חבר מתאריך: 05.10.05
הודעות: 687
|
|
מערכת "מחוברים עכשיו"
שלום
כתבתי קוד של מערכת שמציגה את המחוברים עכשיו אבל היא לא ממש עובדת...
המסד הוא כזה:
קוד PHP:
CREATE TABLE `sessions` ( `sid` varchar(255) NOT NULL default '', `time` varchar(255) NOT NULL default '', `is_user` int(11) NOT NULL default '0', `user_name` varchar(255) NOT 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'] == 1 ) { 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&id={$l['user_id']}\">{$l['user_name']}</a>"; }
אבל לצערי זה לא מציג שום דבר.. יעני לא מציג שמשתמשים הם מחוברים למרות שהם כן.. וכל העניין עם העוגיות והסאשן נכונים ב100%.. אולי יש לי טעות בקוד שלא שמתי לב
מישהו יודע מה הבעיה?
אני אשמח לקבל תשובה בהקדם.
תודה ויום טוב
|