diff --git a/phpgwapi/inc/class.sessions.inc.php b/phpgwapi/inc/class.sessions.inc.php
index 708f8f0507..d55c5caa4b 100644
--- a/phpgwapi/inc/class.sessions.inc.php
+++ b/phpgwapi/inc/class.sessions.inc.php
@@ -25,97 +25,97 @@
/* $Id$ */
- if (empty($GLOBALS['phpgw_info']['server']['sessions_type']))
+ if (empty($GLOBALS['phpgw_info']['server']['sessions_type']))
{
$GLOBALS['phpgw_info']['server']['sessions_type'] = 'db';
}
include_once(PHPGW_API_INC.'/class.sessions_'.$GLOBALS['phpgw_info']['server']['sessions_type'].'.inc.php');
/**
- * Session Management Libabray
- *
- * This allows phpGroupWare to use php4 or database sessions
- *
- * @package phpgwapi
- * @subpackage sessions
- * @abstract
- * @author NetUSE AG Boris Erdmann, Kristian Koehntopp
hacked on by phpGW
- * @copyright © 1998-2000 NetUSE AG Boris Erdmann, Kristian Koehntopp
© 2003 FreeSoftware Foundation
- * @license LGPL
- * @link http://www.sanisoft.com/phplib/manual/DB_sql.php
- * @uses db
- */
+ * Session Management Libabray
+ *
+ * This allows phpGroupWare to use php4 or database sessions
+ *
+ * @package phpgwapi
+ * @subpackage sessions
+ * @abstract
+ * @author NetUSE AG Boris Erdmann, Kristian Koehntopp
hacked on by phpGW
+ * @copyright © 1998-2000 NetUSE AG Boris Erdmann, Kristian Koehntopp
© 2003 FreeSoftware Foundation
+ * @license LGPL
+ * @link http://www.sanisoft.com/phplib/manual/DB_sql.php
+ * @uses db
+ */
class sessions_
{
/**
- * @var string current user login
- */
- var $login;
-
- /**
- * @var string current user password
- */
+ * @var string current user login
+ */
+ var $login;
+
+ /**
+ * @var string current user password
+ */
var $passwd;
-
- /**
- * @var int current user db/ldap account id
- */
+
+ /**
+ * @var int current user db/ldap account id
+ */
var $account_id;
-
- /**
- * @var string current user account login id - ie user@domain
- */
+
+ /**
+ * @var string current user account login id - ie user@domain
+ */
var $account_lid;
-
- /**
- * @var string previous page call id - repost prevention
- */
+
+ /**
+ * @var string previous page call id - repost prevention
+ */
var $history_id;
-
- /**
- * @var string domain for current user
- */
+
+ /**
+ * @var string domain for current user
+ */
var $account_domain;
-
- /**
- * @var session type flag, A - anonymous session, N - None, normal session
- */
+
+ /**
+ * @var session type flag, A - anonymous session, N - None, normal session
+ */
var $session_flags;
-
- /**
- * @var string current user session id
- */
+
+ /**
+ * @var string current user session id
+ */
var $sessionid;
-
- /**
- * @var string not sure what this does, but it is important :)
- */
+
+ /**
+ * @var string not sure what this does, but it is important :)
+ */
var $kp3;
-
- /**
- * @var string encryption key?
- */
+
+ /**
+ * @var string encryption key?
+ */
var $key;
-
- /**
- * @var string iv == ivegotnoidea ;) (skwashd)
- */
+
+ /**
+ * @var string iv == ivegotnoidea ;) (skwashd)
+ */
var $iv;
- /**
- * @var session data
- */
+ /**
+ * @var session data
+ */
var $data;
- /**
- * @var object holder for the database object
- */
+ /**
+ * @var object holder for the database object
+ */
var $db;
- /**
- * @var array publicly available methods
- */
+ /**
+ * @var array publicly available methods
+ */
var $public_functions = array(
'list_methods' => True,
'update_dla' => True,
@@ -124,14 +124,14 @@
);
/**
- * @var string domain for cookies
- */
- var $cookie_domain;
-
- /**
- * @var name of XML-RPC/SOAP method called
- */
- var $xmlrpc_method_called;
+ * @var string domain for cookies
+ */
+ var $cookie_domain;
+
+ /**
+ * @var name of XML-RPC/SOAP method called
+ */
+ var $xmlrpc_method_called;
/**
* Constructor just loads up some defaults from cookies
@@ -207,13 +207,13 @@
}
/**
- * Introspection for XML-RPC/SOAP
- * Diabled - why??
- *
- * @param string $_type tpye of introspection being sought
- * @return array available methods and args
- */
- function DONTlist_methods($_type)
+ * Introspection for XML-RPC/SOAP
+ * Diabled - why??
+ *
+ * @param string $_type tpye of introspection being sought
+ * @return array available methods and args
+ */
+ function DONTlist_methods($_type)
{
if (is_array($_type))
{
@@ -247,13 +247,13 @@
}
/**
- * Check to see if a session is still current and valid
- *
- * @param string $sessionid session id to be verfied
- * @param string $kp3 ?? to be verified
- * @return bool is the session valid?
- */
- function verify($sessionid='',$kp3='')
+ * Check to see if a session is still current and valid
+ *
+ * @param string $sessionid session id to be verfied
+ * @param string $kp3 ?? to be verified
+ * @return bool is the session valid?
+ */
+ function verify($sessionid='',$kp3='')
{
if(empty($sessionid) || !$sessionid)
{
@@ -407,22 +407,22 @@
* Functions for creating and verifying the session
*/
- /**
- * Get the ip address of current users
- *
- * @return string ip address
- */
+ /**
+ * Get the ip address of current users
+ *
+ * @return string ip address
+ */
function getuser_ip()
{
return (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);
}
/**
- * Set the domain used for cookies
- *
- * @return string domain
- */
- function phpgw_set_cookiedomain()
+ * Set the domain used for cookies
+ *
+ * @return string domain
+ */
+ function phpgw_set_cookiedomain()
{
$dom = $_SERVER['HTTP_HOST'];
if (preg_match("/^(.*):(.*)$/",$dom,$arr))
@@ -454,13 +454,13 @@
}
/**
- * Set a cookie
- *
- * @param string $cookiename name of cookie to be set
- * @param string $cookievalue value to be used, if unset cookie is cleared (optional)
- * @param int $cookietime when cookie should expire, 0 for session only (optional)
- */
- function phpgw_setcookie($cookiename,$cookievalue='',$cookietime=0)
+ * Set a cookie
+ *
+ * @param string $cookiename name of cookie to be set
+ * @param string $cookievalue value to be used, if unset cookie is cleared (optional)
+ * @param int $cookietime when cookie should expire, 0 for session only (optional)
+ */
+ function phpgw_setcookie($cookiename,$cookievalue='',$cookietime=0)
{
if (!$this->cookie_domain)
{
@@ -470,14 +470,14 @@
}
/**
- * Create a new session
- *
- * @param string $login user login
- * @param string $passwd user password
- * @param string $passwd_type type of password being used, ie plaintext, md5, sha1
- * @return string session id
- */
- function create($login,$passwd = '',$passwd_type = '')
+ * Create a new session
+ *
+ * @param string $login user login
+ * @param string $passwd user password
+ * @param string $passwd_type type of password being used, ie plaintext, md5, sha1
+ * @return string session id
+ */
+ function create($login,$passwd = '',$passwd_type = '')
{
if (is_array($login))
{
@@ -678,13 +678,13 @@
}
/**
- * Verfy a peer server access request
- *
- * @param string $sessionid session id to verfiy
- * @param string $kp3 ??
- * @return bool verfied?
- */
- function verify_server($sessionid, $kp3)
+ * Verfy a peer server access request
+ *
+ * @param string $sessionid session id to verfiy
+ * @param string $kp3 ??
+ * @return bool verfied?
+ */
+ function verify_server($sessionid, $kp3)
{
$GLOBALS['phpgw']->interserver = CreateObject('phpgwapi.interserver');
$this->sessionid = $sessionid;
@@ -808,13 +808,13 @@
}
/**
- * Validate a peer server login request
- *
- * @param string $login login name
- * @param string $password password
- * @return bool login ok?
- */
- function create_server($login,$passwd)
+ * Validate a peer server login request
+ *
+ * @param string $login login name
+ * @param string $password password
+ * @return bool login ok?
+ */
+ function create_server($login,$passwd)
{
$GLOBALS['phpgw']->interserver = CreateObject('phpgwapi.interserver');
$this->login = $login;
@@ -883,12 +883,12 @@
/**
* Functions for appsession data and session cache
- */
+ */
/**
- * Is this also useless?? (skwashd)
- */
- function read_repositories($cached='',$write_cache=True)
+ * Is this also useless?? (skwashd)
+ */
+ function read_repositories($cached='',$write_cache=True)
{
$GLOBALS['phpgw']->acl->acl($this->account_id);
$GLOBALS['phpgw']->accounts->accounts($this->account_id);
@@ -919,8 +919,8 @@
}
/**
- * Is this also useless?? (skwashd)
- */
+ * Is this also useless?? (skwashd)
+ */
function setup_cache($write_cache=True)
{
$this->user = $GLOBALS['phpgw']->accounts->read_repository();
@@ -945,13 +945,13 @@
}
}
- /**
- * This looks to be useless
- * This will capture everything in the $GLOBALS['phpgw_info'] including server info,
- * and store it in appsessions. This is really incompatible with any type of restoring
- * from appsession as the saved user info is really in ['user'] rather than the root of
- * the structure, which is what this class likes.
- */
+ /**
+ * This looks to be useless
+ * This will capture everything in the $GLOBALS['phpgw_info'] including server info,
+ * and store it in appsessions. This is really incompatible with any type of restoring
+ * from appsession as the saved user info is really in ['user'] rather than the root of
+ * the structure, which is what this class likes.
+ */
function save_repositories()
{
$phpgw_info_temp = $GLOBALS['phpgw_info'];
@@ -981,8 +981,8 @@
}
/**
- * Save the current values of all registered variables
- */
+ * Save the current values of all registered variables
+ */
function save()
{
if (is_array($this->variableNames))
@@ -1001,10 +1001,10 @@
}
/**
- * Create a list a variable names, which data needs to be restored
- *
- * @param string $_variableName name of variable to be registered
- */
+ * Create a list a variable names, which data needs to be restored
+ *
+ * @param string $_variableName name of variable to be registered
+ */
function register($_variableName)
{
$this->variableNames[$_variableName]='registered';
@@ -1012,10 +1012,10 @@
}
/**
- * Mark variable as unregistered
- *
- * @param string $_variableName name of variable to deregister
- */
+ * Mark variable as unregistered
+ *
+ * @param string $_variableName name of variable to deregister
+ */
function unregister($_variableName)
{
$this->variableNames[$_variableName]='unregistered';
@@ -1023,11 +1023,11 @@
}
/**
- * Check if we have a variable registred already
- *
- * @param string $_variableName name of variable to check
- * @return bool was the variable found?
- */
+ * Check if we have a variable registred already
+ *
+ * @param string $_variableName name of variable to check
+ * @return bool was the variable found?
+ */
function is_registered($_variableName)
{
if ($this->variableNames[$_variableName] == 'registered')
@@ -1040,10 +1040,10 @@
}
}
/**
- * Additional tracking of user actions - prevents reposts/use of back button
- *
- * @author skwashd
- * @return string current history id
+ * Additional tracking of user actions - prevents reposts/use of back button
+ *
+ * @author skwashd
+ * @return string current history id
*/
function generate_click_history()
{
@@ -1062,9 +1062,9 @@
}
/**
- * Detects if the page has already been called before - good for forms
- *
- * @author skwashd
+ * Detects if the page has already been called before - good for forms
+ *
+ * @author skwashd
* @param bool $diplay_error when implemented will use the generic error handling code
* @return True if called previously, else False - call ok
*/
@@ -1091,12 +1091,12 @@
}
/**
- * Generate a url which supports url or cookies based sessions
- *
- * @param string $url a url relative to the phpgroupware install root
- * @param array $extravars query string arguements
- * @return string generated url
- */
+ * Generate a url which supports url or cookies based sessions
+ *
+ * @param string $url a url relative to the phpgroupware install root
+ * @param array $extravars query string arguements
+ * @return string generated url
+ */
function link($url, $extravars = '')
{
/* first we process the $url to build the full scriptname */
@@ -1151,7 +1151,7 @@
$i = 0;
while ($i < count($a))
{
- $b = split('=', $a[$i]);
+ $b = split('=', $a[$i],2);
$new_extravars[$b[0]] = $b[1];
$i++;
}
@@ -1184,8 +1184,7 @@
if (is_array($extravars))
{
$new_extravars = '';
- reset($extravars);
- while(list($key,$value) = each($extravars))
+ foreach($extravars as $key => $value)
{
if (!empty($new_extravars))
{
@@ -1198,16 +1197,17 @@
/* if no extravars then we return the cleaned up url/scriptname */
return $url;
}
- /**
- * The remaining methods are abstract - as they are unique for each session handler
- */
-
- /**
- * Load user's session information
- *
- * @param string $sessionid user's session id string
- * @return mixed the session data
- */
+
+ /**
+ * The remaining methods are abstract - as they are unique for each session handler
+ */
+
+ /**
+ * Load user's session information
+ *
+ * @param string $sessionid user's session id string
+ * @return mixed the session data
+ */
function read_session($sessionid)
{}
@@ -1218,76 +1218,76 @@
{}
/**
- * Set paramaters for cookies - only implemented in PHP4 sessions
- *
- * @param string $domain domain name to use in cookie
- */
-
- function set_cookie_params($domain)
+ * Set paramaters for cookies - only implemented in PHP4 sessions
+ *
+ * @param string $domain domain name to use in cookie
+ */
+
+ function set_cookie_params($domain)
{}
/**
- * Create a new session
- *
- * @param string $login user login
- * @param string $user_ip users ip address
- * @param int $now time now as a unix timestamp
- * @param string $session_flags A = Anonymous, N = Normal
- */
- function register_session($login,$user_ip,$now,$session_flags)
+ * Create a new session
+ *
+ * @param string $login user login
+ * @param string $user_ip users ip address
+ * @param int $now time now as a unix timestamp
+ * @param string $session_flags A = Anonymous, N = Normal
+ */
+ function register_session($login,$user_ip,$now,$session_flags)
{}
/**
- * Update the date last active info for the session, so the login does not expire
- *
- * @return bool did it suceed?
- */
+ * Update the date last active info for the session, so the login does not expire
+ *
+ * @return bool did it suceed?
+ */
function update_dla()
{}
/**
- * Terminate a session
- *
- * @param string $sessionid the id of the session to be terminated
- * @param string $kp3 - NOT SURE
- * @return bool did it suceed?
- */
- function destroy($sessionid, $kp3)
+ * Terminate a session
+ *
+ * @param string $sessionid the id of the session to be terminated
+ * @param string $kp3 - NOT SURE
+ * @return bool did it suceed?
+ */
+ function destroy($sessionid, $kp3)
{}
/**
* Functions for appsession data and session cache
*/
- /**
- * Delete all data from the session cache for a user
- *
- * @param int $accountid user account id, defaults to current user (optional)
- */
+ /**
+ * Delete all data from the session cache for a user
+ *
+ * @param int $accountid user account id, defaults to current user (optional)
+ */
function delete_cache($accountid='')
{}
/**
- * Stores or retrieves information from the sessions cache
- *
- * @param string $location identifier for data
- * @param string $appname name of app which is responsbile for the data
- * @param mixed $data data to be stored, if left blank data is retreived (optional)
- * @return mixed data from cache, only returned if $data arg is not used
- */
- function appsession($location = 'default', $appname = '', $data = '##NOTHING##')
+ * Stores or retrieves information from the sessions cache
+ *
+ * @param string $location identifier for data
+ * @param string $appname name of app which is responsbile for the data
+ * @param mixed $data data to be stored, if left blank data is retreived (optional)
+ * @return mixed data from cache, only returned if $data arg is not used
+ */
+ function appsession($location = 'default', $appname = '', $data = '##NOTHING##')
{}
/**
* Get list of normal / non-anonymous sessions
* Note: The data from the session-files get cached in the app_session phpgwapi/php4_session_cache
- *
+ *
* @author ralfbecker
- * @param int $start session to start at
- * @param string $order field to sort on
- * @param string $sort sort order
- * @param bool $all_no_sort list all with out sorting (optional) default False
- * @return array info for all current sessions
+ * @param int $start session to start at
+ * @param string $order field to sort on
+ * @param string $sort sort order
+ * @param bool $all_no_sort list all with out sorting (optional) default False
+ * @return array info for all current sessions
*/
function list_sessions($start,$order,$sort,$all_no_sort = False)
{}
@@ -1295,8 +1295,8 @@
/**
* Get the number of normal / non-anonymous sessions
*
- * @author ralfbecker
- * @return int number of sessions
+ * @author ralfbecker
+ * @return int number of sessions
*/
function total()
{}