/[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.9 by joko, Sun Feb 9 17:44:51 2003 UTC
# Line 3  Line 3 
3  //    $Id$  //    $Id$
4  //    -------------------------------------------------------------------------  //    -------------------------------------------------------------------------
5  //    $Log$  //    $Log$
6    //    Revision 1.9  2003/02/09 17:44:51  joko
7    //    + minor fix related to empty resultsets from rdbms
8    //
9    //    Revision 1.8  2002/12/28 01:17:53  jonen
10    //    - moved 'validate_idle()' to 'presentation.php' cause some problems
11    //      with '$site->request->overrideRequestIdentifer()' at class scope
12    //
13    //    Revision 1.7  2002/12/13 00:24:03  jonen
14    //    - added debug Dumper
15    //
16    //    Revision 1.6  2002/12/05 21:46:09  joko
17    //    + global $sessionstate (session-variable)
18    //    + function get
19    //    + function set
20    //
21    //    Revision 1.5  2002/12/04 10:13:21  joko
22    //    - purged old code in validate_session
23    //
24    //    Revision 1.3  2002/12/03 16:13:21  joko
25    //    + bugfix with autologout:
26    //      + now just setting some message to site_state here
27    //      + no direct getlt! (it's a shortcut function)
28    //      + $this->site->user->preLogout(1);  as autoload mechanism
29    //
30    //    Revision 1.2  2002/12/01 22:32:45  joko
31    //    + bugfix: wrong object-hierarchy:
32    //       use $this->site->user->preLogout and/or $this->site->request->overrideReq...
33    //    + documented
34    //
35  //    Revision 1.1  2002/11/12 05:42:31  joko  //    Revision 1.1  2002/11/12 05:42:31  joko
36  //    + initial checkin  //    + initial checkin
37  //  //
# Line 20  class Session { Line 49  class Session {
49      $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];          $session_cfg["user_agent"] = $_SERVER["HTTP_USER_AGENT"];    
50      $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];      $session_cfg["http_referer"] = $_SERVER["HTTP_REFERER"];
51      $session_cfg["date"] = date('Y-m-d H:i:s', time());      $session_cfg["date"] = date('Y-m-d H:i:s', time());
52    
53        if (session_register_safe('sessionstate')) {
54        }
55    
56    }    }
57        
58    function start() {    function start() {
59        // FIXME: global $session_cfg;
60      global $session_cfg;      global $session_cfg;
61      $session_exists = $this->exists($session_cfg["session_id"]);      $session_exists = $this->exists($session_cfg["session_id"]);
62        //print Dumper($session_exists);
63      if (!is_array($session_exists)) {      if (!is_array($session_exists)) {
64        $this->add_session($session_cfg);        $this->add_session($session_cfg);
65      }      } else {
     else {  
66        $session_cfg["session_uid"] = $session_exists["session_uid"];        $session_cfg["session_uid"] = $session_exists["session_uid"];
67        if ($this->site->user->isLoggedOn()) { $this->validate_idle(); }        //if ($this->site->user->isLoggedOn()) {
68        $this->validate_session($session_cfg);          //print "val - idle<br>";
69            //$this->validate_idle();
70          //}
71          //print "val - session<br>";
72          //$this->validate_session($session_cfg);
73      }      }
74    }    }
75        
# Line 45  class Session { Line 83  class Session {
83    }    }
84        
85    function add_session($scfg) {    function add_session($scfg) {
86        //session_start();      //session_start();
87        //session_register('user_status_val');      //session_register('user_status_val');
88        connectdb();      // FIXME: use PEAR here!
89        $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]')";      connectdb();
90        $res = send_sql($sql);      $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]')";
91        $res = send_sql($sql);
92    }    }
93        
94    function bindUser() {    function bindUser() {
     global $uservars_db;  
95      $session_id = session_id();      $session_id = session_id();
96          $session_tm = $this->exists($session_id);          $session_tm = $this->exists($session_id);
97      $date = date('Y-m-d H:i:s', time());      $date = date('Y-m-d H:i:s', time());
# Line 61  class Session { Line 99  class Session {
99      if($res = send_sql($sql)) {      if($res = send_sql($sql)) {
100          $row = mysql_fetch_array($res,MYSQL_ASSOC);          $row = mysql_fetch_array($res,MYSQL_ASSOC);
101      //if (!mysql_num_rows($res)>0) {      //if (!mysql_num_rows($res)>0) {
102        $sql2 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";        $sql2 = "INSERT INTO f_map_user_session VALUES ('','$this->site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
103        $res2 = send_sql($sql2);        $res2 = send_sql($sql2);
104      }      }
105      else {      else {
106          //print_r($row);          //print_r($row);
107        $sql3 = "Update f_map_user_session SET last='0' WHERE mid='$row[mid]'";        $sql3 = "Update f_map_user_session SET last='0' WHERE mid='$row[mid]'";
108        $res3 = send_sql($sql3);          $res3 = send_sql($sql3);  
109        $sql4 = "INSERT INTO f_map_user_session VALUES ('','$site->user->get('oid')','$session_tm[session_uid]','$date','','1')";        $sql4 = "INSERT INTO f_map_user_session VALUES ('','$this->site->user->get('oid')','$session_tm[session_uid]','$date','','1')";
110        $res4 = send_sql($sql4);        $res4 = send_sql($sql4);
111      }      }
112    }    }
# Line 78  class Session { Line 116  class Session {
116      connectdb();      connectdb();
117      $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'";
118      $res_exists = send_sql($sql_exists);      $res_exists = send_sql($sql_exists);
119      if (!mysql_num_rows($res_exists)>0) {      if (!$res_exists || !mysql_num_rows($res_exists) > 0) {
120        return 0;        return 0;
121      }      }
122      else {      else {
# Line 87  class Session { Line 125  class Session {
125          }          }
126    }      }  
127        
128    function validate_idle() {  
     global $cfg, $site, $site_state;  
     $session_id = session_id();  
129        
130      // get "max_idle_time"-time from database    function get($attribute) {
131        $sql = "SELECT pvalue FROM td_global_private WHERE pname='max_idle_time'";      global $sessionstate;
132        $res = send_sql($sql);  //print "session - get: " . Dumper($sessionstate) . "<br>";
133          $row = mysql_fetch_array($res,MYSQL_ASSOC);      return $sessionstate[$attribute];
134          $max_idle_time = $row[pvalue];    }
135          // use a default idle-time of half an hour if database-value is empty  
136          if (!$max_idle_time) $max_idle_time = 60 * 30;    function set($attribute, $value) {
137                global $sessionstate;
138      //print "val: " . Dumper($value) . "<br>";
139      // get last "access"-time from database      $sessionstate[$attribute] = $value;
140        $sql_mus = "SELECT last_date FROM f_td_sessions WHERE session_id='$session_id'";  //print "session - set: " . Dumper($sessionstate) . "<br>";
141        $res_mus = send_sql($sql_mus);    }
         $mus = mysql_fetch_array($res_mus,MYSQL_ASSOC);  
     
     // calculate idletime  
         $time_now = time();  
       $last_date = strtotime($mus[last_date]);  
         $max_idle_date = $last_date + $max_idle_time;  
     
     // check timeout  
     if ($time_now > $max_idle_date) {  
        // set autologout message  
        $tpl= array( 'idle_time' => $max_idle_time / 60, );  
       $site_state[message] = getlt('table/notify/autologout', $tpl);  
       // throw user to (re)login-page  
       //$site->redirect( getlink('/pub/login/') );  
       $site->user->preLogout();  
       $site->request->overrideRequestIdentifier('/home/logout/');  
     }  
       
   }    
142    
143  }  }
144    

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

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