/[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.3 - (show annotations)
Tue Dec 3 16:13:21 2002 UTC (21 years, 8 months ago) by joko
Branch: MAIN
Changes since 1.2: +13 -7 lines
+ bugfix with autologout:
  + now just setting some message to site_state here
  + no direct getlt! (it's a shortcut function)
  + $this->site->user->preLogout(1);  as autoload mechanism

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

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