/[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.1 - (show annotations)
Tue Nov 12 05:42:31 2002 UTC (21 years, 8 months ago) by joko
Branch: MAIN
+ initial checkin

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