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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Tue Nov 12 05:42:31 2002 UTC revision 1.7 by jonen, Fri Dec 13 00:24:03 2002 UTC
# Line 3  Line 3 
3  //    $Id$  //    $Id$
4  //    -------------------------------------------------------------------------  //    -------------------------------------------------------------------------
5  //    $Log$  //    $Log$
6    //    Revision 1.7  2002/12/13 00:24:03  jonen
7    //    - added debug Dumper
8    //
9    //    Revision 1.6  2002/12/05 21:46:09  joko
10    //    + global $sessionstate (session-variable)
11    //    + function get
12    //    + function set
13    //
14    //    Revision 1.5  2002/12/04 10:13:21  joko
15    //    - purged old code in validate_session
16    //
17    //    Revision 1.3  2002/12/03 16:13:21  joko
18    //    + bugfix with autologout:
19    //      + now just setting some message to site_state here
20    //      + no direct getlt! (it's a shortcut function)
21    //      + $this->site->user->preLogout(1);  as autoload mechanism
22    //
23    //    Revision 1.2  2002/12/01 22:32:45  joko
24    //    + bugfix: wrong object-hierarchy:
25    //       use $this->site->user->preLogout and/or $this->site->request->overrideReq...
26    //    + documented
27    //
28  //    Revision 1.1  2002/11/12 05:42:31  joko  //    Revision 1.1  2002/11/12 05:42:31  joko
29  //    + initial checkin  //    + initial checkin
30  //  //
# Line 20  class Session { Line 42  class Session {
42      $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];          $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];    
43      $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];      $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];
44      $session_cfg["date"] = date('Y-m-d H:i:s', time());      $session_cfg["date"] = date('Y-m-d H:i:s', time());
45    
46        if (session_register_safe('sessionstate')) {
47        }
48    
49    }    }
50        
51    function start() {    function start() {
52      global $session_cfg;      global $session_cfg;
53      $session_exists = $this->exists($session_cfg["session_id"]);      $session_exists = $this->exists($session_cfg["session_id"]);
54        //print Dumper($session_exists);
55      if (!is_array($session_exists)) {      if (!is_array($session_exists)) {
56        $this->add_session($session_cfg);        $this->add_session($session_cfg);
57      }      } else {
     else {  
58        $session_cfg["session_uid"] = $session_exists["session_uid"];        $session_cfg["session_uid"] = $session_exists["session_uid"];
59        if ($this->site->user->isLoggedOn()) { $this->validate_idle(); }        if ($this->site->user->isLoggedOn()) {
60            //print "val - idle<br>";
61            $this->validate_idle();
62          }
63          //print "val - session<br>";
64        $this->validate_session($session_cfg);        $this->validate_session($session_cfg);
65      }      }
66    }    }
# Line 53  class Session { Line 83  class Session {
83    }    }
84        
85    function bindUser() {    function bindUser() {
     global $uservars_db;  
86      $session_id = session_id();      $session_id = session_id();
87          $session_tm = $this->exists($session_id);          $session_tm = $this->exists($session_id);
88      $date = date('Y-m-d H:i:s', time());      $date = date('Y-m-d H:i:s', time());
# Line 78  class Session { Line 107  class Session {
107      connectdb();      connectdb();
108      $sql_exists = "SELECT session_uid,session_id FROM f_td_sessions WHERE session_id='$session_id'";      $sql_exists = "SELECT session_uid,session_id FROM f_td_sessions WHERE session_id='$session_id'";
109      $res_exists = send_sql($sql_exists);      $res_exists = send_sql($sql_exists);
110      if (!mysql_num_rows($res_exists)>0) {      if (!mysql_num_rows($res_exists) > 0) {
111        return 0;        return 0;
112      }      }
113      else {      else {
# Line 88  class Session { Line 117  class Session {
117    }      }  
118        
119    function validate_idle() {    function validate_idle() {
120      global $cfg, $site, $site_state;  
121        //global $cfg, $site, $site_state;
122        global $cfg, $site_state;
123      $session_id = session_id();      $session_id = session_id();
124      
125      // get "max_idle_time"-time from database      // get "max_idle_time"-time from database
126        $sql = "SELECT pvalue FROM td_global_private WHERE pname='max_idle_time'";        $sql = "SELECT pvalue FROM td_global_private WHERE pname='max_idle_time'";
127        $res = send_sql($sql);        $res = send_sql($sql);
128          $row = mysql_fetch_array($res,MYSQL_ASSOC);        $row = mysql_fetch_array($res, MYSQL_ASSOC);
129          $max_idle_time = $row[pvalue];        $max_idle_time = $row[pvalue];
130          // use a default idle-time of half an hour if database-value is empty  
131          if (!$max_idle_time) $max_idle_time = 60 * 30;      // use a default idle-time of half an hour if database-value is empty
132                  if (!$max_idle_time) $max_idle_time = 60 * 30;
133        
134      // get last "access"-time from database      // get last "access"-time from database
135        $sql_mus = "SELECT last_date FROM f_td_sessions WHERE session_id='$session_id'";        $sql_mus = "SELECT last_date FROM f_td_sessions WHERE session_id='$session_id'";
136        $res_mus = send_sql($sql_mus);        $res_mus = send_sql($sql_mus);
137          $mus = mysql_fetch_array($res_mus,MYSQL_ASSOC);        $mus = mysql_fetch_array($res_mus, MYSQL_ASSOC);
138        
139      // calculate idletime      // calculate idletime
140          $time_now = time();        $time_now = time();
141        $last_date = strtotime($mus[last_date]);        $last_date = strtotime($mus[last_date]);
142          $max_idle_date = $last_date + $max_idle_time;        $max_idle_date = $last_date + $max_idle_time;
143      
144      // check timeout      // check timeout
145      if ($time_now > $max_idle_date) {        if ($time_now > $max_idle_date) {
146         // set autologout message          // TODO: REVIEW (re-enable?)
147         $tpl= array( 'idle_time' => $max_idle_time / 60, );          // throw user to (re)login-page
148        $site_state[message] = getlt('table/notify/autologout', $tpl);          // $site->redirect( getlink('/pub/login/') );
149        // throw user to (re)login-page          $this->site->user->preLogout(1);
150        //$site->redirect( getlink('/pub/login/') );          $this->site->request->overrideRequestIdentifier('/home/logout/');
151        $site->user->preLogout();        }
       $site->request->overrideRequestIdentifier('/home/logout/');  
     }  
152            
153    }      }
154      
155      
156      function get($attribute) {
157        global $sessionstate;
158    //print "session - get: " . Dumper($sessionstate) . "<br>";
159        return $sessionstate[$attribute];
160      }
161    
162      function set($attribute, $value) {
163        global $sessionstate;
164    //print "val: " . Dumper($value) . "<br>";
165        $sessionstate[$attribute] = $value;
166    //print "session - set: " . Dumper($sessionstate) . "<br>";
167      }
168    
169  }  }
170    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.7

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