/[cvs]/nfo/php/libs/org.netfrag.flib/Tracker/Session.php
ViewVC logotype

Annotation of /nfo/php/libs/org.netfrag.flib/Tracker/Session.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue Nov 12 05:42:31 2002 UTC (21 years, 8 months ago) by joko
Branch: MAIN
+ initial checkin

1 joko 1.1 <?
2     // -------------------------------------------------------------------------
3     // $Id$
4     // -------------------------------------------------------------------------
5     // $Log$
6     // -------------------------------------------------------------------------
7    
8    
9     class Session {
10    
11     //============== session functions=============
12     function &Session() {
13     global $session_cfg;
14     $session_cfg["session_id"] = session_id();
15     $session_cfg["remote_ip"] = $_SERVER["REMOTE_ADDR"];
16     $session_cfg["remote_port"] = $_SERVER["REMOTE_PORT"];
17     $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];
18     $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];
19     $session_cfg["date"] = date('Y-m-d H:i:s', time());
20     }
21    
22     function start() {
23     global $session_cfg;
24     $session_exists = $this->exists($session_cfg["session_id"]);
25     if (!is_array($session_exists)) {
26     $this->add_session($session_cfg);
27     }
28     else {
29     $session_cfg["session_uid"] = $session_exists["session_uid"];
30     if ($this->site->user->isLoggedOn()) { $this->validate_idle(); }
31     $this->validate_session($session_cfg);
32     }
33     }
34    
35     function validate_session($scfgt) {
36     $this->update_session($scfgt);
37     }
38    
39     function update_session($scfg) {
40     $sql = "UPDATE f_td_sessions SET session_hits=session_hits+1,last_date='$scfg[date]' WHERE session_uid='$scfg[session_uid]'";
41     $res = send_sql($sql);
42     }
43    
44     function add_session($scfg) {
45     //session_start();
46     //session_register('user_status_val');
47     connectdb();
48     $sql="INSERT INTO f_td_sessions VALUES ('','$scfg[session_id]','1','$scfg[remote_ip]','$scfg[remote_port]','$scfg[user_agent]','$scfg[http_referer]','$scfg[date]','$scfg[date]')";
49     $res = send_sql($sql);
50     }
51    
52     function bindUser() {
53     global $uservars_db;
54     $session_id = session_id();
55     $session_tm = $this->exists($session_id);
56     $date = date('Y-m-d H:i:s', time());
57     $sql = "SELECT mid FROM f_map_user_session WHERE user_uid='$site->user->get('oid')' AND last='1'";
58     if($res = send_sql($sql)) {
59     $row = mysql_fetch_array($res,MYSQL_ASSOC);
60     //if (!mysql_num_rows($res)>0) {
61     $sql2 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
62     $res2 = send_sql($sql2);
63     }
64     else {
65     //print_r($row);
66     $sql3 = "Update f_map_user_session SET last='0' WHERE mid='$row[mid]'";
67     $res3 = send_sql($sql3);
68     $sql4 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
69     $res4 = send_sql($sql4);
70     }
71     }
72    
73     function exists($session_id) {
74     // check if sessionID exists
75     connectdb();
76     $sql_exists = "SELECT session_uid,session_id FROM f_td_sessions WHERE session_id='$session_id'";
77     $res_exists = send_sql($sql_exists);
78     if (!mysql_num_rows($res_exists)>0) {
79     return 0;
80     }
81     else {
82     $row = mysql_fetch_array($res_exists, MYSQL_ASSOC);
83     return $row;
84     }
85     }
86    
87     function validate_idle() {
88     global $cfg, $site, $site_state;
89     $session_id = session_id();
90    
91     // get "max_idle_time"-time from database
92     $sql = "SELECT pvalue FROM td_global_private WHERE pname='max_idle_time'";
93     $res = send_sql($sql);
94     $row = mysql_fetch_array($res,MYSQL_ASSOC);
95     $max_idle_time = $row[pvalue];
96     // use a default idle-time of half an hour if database-value is empty
97     if (!$max_idle_time) $max_idle_time = 60 * 30;
98    
99    
100     // get last "access"-time from database
101     $sql_mus = "SELECT last_date FROM f_td_sessions WHERE session_id='$session_id'";
102     $res_mus = send_sql($sql_mus);
103     $mus = mysql_fetch_array($res_mus,MYSQL_ASSOC);
104    
105     // calculate idletime
106     $time_now = time();
107     $last_date = strtotime($mus[last_date]);
108     $max_idle_date = $last_date + $max_idle_time;
109    
110     // check timeout
111     if ($time_now > $max_idle_date) {
112     // set autologout message
113     $tpl= array( 'idle_time' => $max_idle_time / 60, );
114     $site_state[message] = getlt('table/notify/autologout', $tpl);
115     // throw user to (re)login-page
116     //$site->redirect( getlink('/pub/login/') );
117     $site->user->preLogout();
118     $site->request->overrideRequestIdentifier('/home/logout/');
119     }
120    
121     }
122    
123     }
124    
125     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed