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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations)
Thu Dec 5 21:46:09 2002 UTC (21 years, 8 months ago) by joko
Branch: MAIN
Changes since 1.5: +20 -2 lines
+ global $sessionstate (session-variable)
+ function get
+ function set

1 <?
2 // -------------------------------------------------------------------------
3 // $Id: Session.php,v 1.5 2002/12/04 10:13:21 joko Exp $
4 // -------------------------------------------------------------------------
5 // $Log: Session.php,v $
6 // Revision 1.5 2002/12/04 10:13:21 joko
7 // - purged old code in validate_session
8 //
9 // Revision 1.3 2002/12/03 16:13:21 joko
10 // + bugfix with autologout:
11 // + now just setting some message to site_state here
12 // + no direct getlt! (it's a shortcut function)
13 // + $this->site->user->preLogout(1); as autoload mechanism
14 //
15 // Revision 1.2 2002/12/01 22:32:45 joko
16 // + bugfix: wrong object-hierarchy:
17 // use $this->site->user->preLogout and/or $this->site->request->overrideReq...
18 // + documented
19 //
20 // Revision 1.1 2002/11/12 05:42:31 joko
21 // + initial checkin
22 //
23 // -------------------------------------------------------------------------
24
25
26 class Session {
27
28 //============== session functions=============
29 function &Session() {
30 global $session_cfg;
31 $session_cfg["session_id"] = session_id();
32 $session_cfg["remote_ip"] = $_SERVER["REMOTE_ADDR"];
33 $session_cfg["remote_port"] = $_SERVER["REMOTE_PORT"];
34 $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];
35 $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];
36 $session_cfg["date"] = date('Y-m-d H:i:s', time());
37
38 if (session_register_safe('sessionstate')) {
39 }
40
41 }
42
43 function start() {
44 global $session_cfg;
45 $session_exists = $this->exists($session_cfg["session_id"]);
46 //print Dumper($session_exists);
47 if (!is_array($session_exists)) {
48 $this->add_session($session_cfg);
49 } else {
50 $session_cfg["session_uid"] = $session_exists["session_uid"];
51 if ($this->site->user->isLoggedOn()) {
52 //print "val - idle<br>";
53 $this->validate_idle();
54 }
55 //print "val - session<br>";
56 $this->validate_session($session_cfg);
57 }
58 }
59
60 function validate_session($scfgt) {
61 $this->update_session($scfgt);
62 }
63
64 function update_session($scfg) {
65 $sql = "UPDATE f_td_sessions SET session_hits=session_hits+1,last_date='$scfg[date]' WHERE session_uid='$scfg[session_uid]'";
66 $res = send_sql($sql);
67 }
68
69 function add_session($scfg) {
70 //session_start();
71 //session_register('user_status_val');
72 connectdb();
73 $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]')";
74 $res = send_sql($sql);
75 }
76
77 function bindUser() {
78 $session_id = session_id();
79 $session_tm = $this->exists($session_id);
80 $date = date('Y-m-d H:i:s', time());
81 $sql = "SELECT mid FROM f_map_user_session WHERE user_uid='$site->user->get('oid')' AND last='1'";
82 if($res = send_sql($sql)) {
83 $row = mysql_fetch_array($res,MYSQL_ASSOC);
84 //if (!mysql_num_rows($res)>0) {
85 $sql2 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
86 $res2 = send_sql($sql2);
87 }
88 else {
89 //print_r($row);
90 $sql3 = "Update f_map_user_session SET last='0' WHERE mid='$row[mid]'";
91 $res3 = send_sql($sql3);
92 $sql4 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
93 $res4 = send_sql($sql4);
94 }
95 }
96
97 function exists($session_id) {
98 // check if sessionID exists
99 connectdb();
100 $sql_exists = "SELECT session_uid,session_id FROM f_td_sessions WHERE session_id='$session_id'";
101 $res_exists = send_sql($sql_exists);
102 if (!mysql_num_rows($res_exists) > 0) {
103 return 0;
104 }
105 else {
106 $row = mysql_fetch_array($res_exists, MYSQL_ASSOC);
107 return $row;
108 }
109 }
110
111 function validate_idle() {
112
113 //global $cfg, $site, $site_state;
114 global $cfg, $site_state;
115 $session_id = session_id();
116
117 // get "max_idle_time"-time from database
118 $sql = "SELECT pvalue FROM td_global_private WHERE pname='max_idle_time'";
119 $res = send_sql($sql);
120 $row = mysql_fetch_array($res, MYSQL_ASSOC);
121 $max_idle_time = $row[pvalue];
122
123 // use a default idle-time of half an hour if database-value is empty
124 if (!$max_idle_time) $max_idle_time = 60 * 30;
125
126 // get last "access"-time from database
127 $sql_mus = "SELECT last_date FROM f_td_sessions WHERE session_id='$session_id'";
128 $res_mus = send_sql($sql_mus);
129 $mus = mysql_fetch_array($res_mus, MYSQL_ASSOC);
130
131 // calculate idletime
132 $time_now = time();
133 $last_date = strtotime($mus[last_date]);
134 $max_idle_date = $last_date + $max_idle_time;
135
136 // check timeout
137 if ($time_now > $max_idle_date) {
138 // TODO: REVIEW (re-enable?)
139 // throw user to (re)login-page
140 // $site->redirect( getlink('/pub/login/') );
141 $this->site->user->preLogout(1);
142 $this->site->request->overrideRequestIdentifier('/home/logout/');
143 }
144
145 }
146
147
148 function get($attribute) {
149 global $sessionstate;
150 return $sessionstate[$attribute];
151 }
152
153 function set($attribute, $value) {
154 global $sessionstate;
155 $sessionstate[$attribute] = $value;
156 }
157
158 }
159
160 ?>

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