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

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

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