mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-27 02:14:45 +01:00
1) fixed lost egw object if register_globals=On: was caused by the identicaly named session-variable used for php4-sessions (now renamed to egw_session)
2) $GLOBALS['phpgw{_info}'] ==> $GLOB ALS['egw{_info}']
This commit is contained in:
parent
6b2eb04274
commit
887e71e57e
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
include_once(PHPGW_INCLUDE_ROOT . '/etemplate/inc/class.soetemplate.inc.php');
|
include_once(EGW_INCLUDE_ROOT . '/etemplate/inc/class.soetemplate.inc.php');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Business Object for eTemplates, extending the Storage Object
|
* Business Object for eTemplates, extending the Storage Object
|
||||||
@ -79,7 +79,7 @@
|
|||||||
{
|
{
|
||||||
$this->init($name);
|
$this->init($name);
|
||||||
}
|
}
|
||||||
$this->garbage_collection_done =& $GLOBALS['phpgw_info']['etemplate']['garbage_collection_done'];
|
$this->garbage_collection_done =& $GLOBALS['egw_info']['etemplate']['garbage_collection_done'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -238,7 +238,7 @@
|
|||||||
{
|
{
|
||||||
list($msec,$sec) = explode(' ',microtime());
|
list($msec,$sec) = explode(' ',microtime());
|
||||||
$time = 100 * $sec + (int)(100 * $msec); // gives precision of 1/100 sec
|
$time = 100 * $sec + (int)(100 * $msec); // gives precision of 1/100 sec
|
||||||
$id = $GLOBALS['phpgw_info']['flags']['currentapp'] .':'. $time;
|
$id = $GLOBALS['egw_info']['flags']['currentapp'] .':'. $time;
|
||||||
//echo "<p>microtime()=".microtime().", sec=$sec, msec=$msec, id=$id</p>\n";
|
//echo "<p>microtime()=".microtime().", sec=$sec, msec=$msec, id=$id</p>\n";
|
||||||
return $id;
|
return $id;
|
||||||
}
|
}
|
||||||
@ -261,9 +261,9 @@
|
|||||||
{
|
{
|
||||||
$id = $this->appsession_id;
|
$id = $this->appsession_id;
|
||||||
}
|
}
|
||||||
$GLOBALS['phpgw']->session->appsession($id,'etemplate',$data);
|
$GLOBALS['egw']->session->appsession($id,'etemplate',$data);
|
||||||
|
|
||||||
if ($GLOBALS['phpgw_info']['server']['sessions_type'] == 'php4' && !$this->garbage_collection_done)
|
if ($GLOBALS['egw_info']['server']['sessions_type'] == 'php4' && !$this->garbage_collection_done)
|
||||||
{
|
{
|
||||||
return $this->php4_session_garbage_collection();
|
return $this->php4_session_garbage_collection();
|
||||||
}
|
}
|
||||||
@ -278,10 +278,10 @@
|
|||||||
*/
|
*/
|
||||||
function get_appsession($id)
|
function get_appsession($id)
|
||||||
{
|
{
|
||||||
$data = $GLOBALS['phpgw']->session->appsession($id,'etemplate');
|
$data = $GLOBALS['egw']->session->appsession($id,'etemplate');
|
||||||
//echo "boetemplate::get_appsession('$id')"; _debug_array($data);
|
//echo "boetemplate::get_appsession('$id')"; _debug_array($data);
|
||||||
|
|
||||||
if ($GLOBALS['phpgw_info']['server']['sessions_type'] == 'php4')
|
if ($GLOBALS['egw_info']['server']['sessions_type'] == 'php4')
|
||||||
{
|
{
|
||||||
$this->php4_session_garbage_collection($id);
|
$this->php4_session_garbage_collection($id);
|
||||||
}
|
}
|
||||||
@ -300,7 +300,7 @@
|
|||||||
function php4_session_garbage_collection($id_used='')
|
function php4_session_garbage_collection($id_used='')
|
||||||
{
|
{
|
||||||
// now we are on php4 sessions and do a bit of garbage collection
|
// now we are on php4 sessions and do a bit of garbage collection
|
||||||
$app_sessions =& $_SESSION['egw']['app_sessions']['etemplate'];
|
$app_sessions =& $_SESSION[EGW_SESSION_VAR]['app_sessions']['etemplate'];
|
||||||
$session_used =& $app_sessions['session_used'];
|
$session_used =& $app_sessions['session_used'];
|
||||||
|
|
||||||
if ($id_used)
|
if ($id_used)
|
||||||
@ -460,7 +460,7 @@
|
|||||||
|
|
||||||
if ($app == '')
|
if ($app == '')
|
||||||
{
|
{
|
||||||
$app = $GLOBALS['phpgw_info']['flags']['current_app'];
|
$app = $GLOBALS['egw_info']['flags']['current_app'];
|
||||||
}
|
}
|
||||||
if (!file_exists(PHPGW_SERVER_ROOT."/$app/inc/class.$class.inc.php"))
|
if (!file_exists(PHPGW_SERVER_ROOT."/$app/inc/class.$class.inc.php"))
|
||||||
{
|
{
|
||||||
@ -472,11 +472,11 @@
|
|||||||
}
|
}
|
||||||
if (!file_exists(PHPGW_SERVER_ROOT."/$app/inc/class.$class.inc.php"))
|
if (!file_exists(PHPGW_SERVER_ROOT."/$app/inc/class.$class.inc.php"))
|
||||||
{
|
{
|
||||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type] = False;
|
return $GLOBALS['egw_info']['etemplate']['extension'][$type] = False;
|
||||||
}
|
}
|
||||||
$GLOBALS['phpgw_info']['etemplate']['extension'][$type] = CreateObject($app.'.'.$class,$ui='html');
|
$GLOBALS['egw_info']['etemplate']['extension'][$type] = CreateObject($app.'.'.$class,$ui='html');
|
||||||
|
|
||||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->human_name;
|
return $GLOBALS['egw_info']['etemplate']['extension'][$type]->human_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -489,8 +489,8 @@
|
|||||||
*/
|
*/
|
||||||
function haveExtension($type,$function='')
|
function haveExtension($type,$function='')
|
||||||
{
|
{
|
||||||
return ($GLOBALS['phpgw_info']['etemplate']['extension'][$type] || $this->loadExtension($type,$ui)) &&
|
return ($GLOBALS['egw_info']['etemplate']['extension'][$type] || $this->loadExtension($type,$ui)) &&
|
||||||
($function == '' || $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->public_functions[$function]);
|
($function == '' || $GLOBALS['egw_info']['etemplate']['extension'][$type]->public_functions[$function]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -509,8 +509,8 @@
|
|||||||
{
|
{
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->pre_process($name,$value,$cell,$readonlys,
|
return $GLOBALS['egw_info']['etemplate']['extension'][$type]->pre_process($name,$value,$cell,$readonlys,
|
||||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$name],$this);
|
$GLOBALS['egw_info']['etemplate']['extension_data'][$name],$this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -528,9 +528,9 @@
|
|||||||
{
|
{
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->post_process($name,$value,
|
return $GLOBALS['egw_info']['etemplate']['extension'][$type]->post_process($name,$value,
|
||||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$name],
|
$GLOBALS['egw_info']['etemplate']['extension_data'][$name],
|
||||||
$GLOBALS['phpgw_info']['etemplate']['loop'],$this,$value_in);
|
$GLOBALS['egw_info']['etemplate']['loop'],$this,$value_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -549,8 +549,8 @@
|
|||||||
{
|
{
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
return $GLOBALS['phpgw_info']['etemplate']['extension'][$type]->render($cell,$name,$value,$readonly,
|
return $GLOBALS['egw_info']['etemplate']['extension'][$type]->render($cell,$name,$value,$readonly,
|
||||||
$GLOBALS['phpgw_info']['etemplate']['extension_data'][$name],$this);
|
$GLOBALS['egw_info']['etemplate']['extension_data'][$name],$this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -754,7 +754,7 @@
|
|||||||
function store_in_cache()
|
function store_in_cache()
|
||||||
{
|
{
|
||||||
//echo "<p>store_in_cache('$this->name','$this->template','$this->lang','$this->version')</p>\n";
|
//echo "<p>store_in_cache('$this->name','$this->template','$this->lang','$this->version')</p>\n";
|
||||||
$GLOBALS['phpgw_info']['etemplate']['cache'][$this->cache_name()] = $this->as_array(1);
|
$GLOBALS['egw_info']['etemplate']['cache'][$this->cache_name()] = $this->as_array(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -763,7 +763,7 @@
|
|||||||
function delete_in_cache()
|
function delete_in_cache()
|
||||||
{
|
{
|
||||||
//echo "<p>delete_in_cache('$this->name','$this->template','$this->lang','$this->version')</p>\n";
|
//echo "<p>delete_in_cache('$this->name','$this->template','$this->lang','$this->version')</p>\n";
|
||||||
unset($GLOBALS['phpgw_info']['etemplate']['cache'][$this->cache_name()]);
|
unset($GLOBALS['egw_info']['etemplate']['cache'][$this->cache_name()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -784,8 +784,8 @@
|
|||||||
$version = $name['version'];
|
$version = $name['version'];
|
||||||
$name = $name['name'];
|
$name = $name['name'];
|
||||||
}
|
}
|
||||||
if (!isset($GLOBALS['phpgw_info']['etemplate']['cache'][$cname]) ||
|
if (!isset($GLOBALS['egw_info']['etemplate']['cache'][$cname]) ||
|
||||||
!empty($version) && $GLOBALS['phpgw_info']['etemplate']['cache'][$cname]['version'] != $version)
|
!empty($version) && $GLOBALS['egw_info']['etemplate']['cache'][$cname]['version'] != $version)
|
||||||
{
|
{
|
||||||
//echo " NOT found in cache</p>\n";
|
//echo " NOT found in cache</p>\n";
|
||||||
return False;
|
return False;
|
||||||
@ -811,7 +811,7 @@
|
|||||||
//if (is_array($name)) $version = $name['version']; echo "<p>read_from_cache(,,,version='$version'): ";
|
//if (is_array($name)) $version = $name['version']; echo "<p>read_from_cache(,,,version='$version'): ";
|
||||||
if ($cname = $this->in_cache($name,$template,$lang,$group))
|
if ($cname = $this->in_cache($name,$template,$lang,$group))
|
||||||
{
|
{
|
||||||
$this->init($GLOBALS['phpgw_info']['etemplate']['cache'][$cname]);
|
$this->init($GLOBALS['egw_info']['etemplate']['cache'][$cname]);
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
@ -24,13 +24,22 @@
|
|||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
define('EGW_SESSION_VAR','egw_session'); // where to store our session-data $_SESSION[EGW_SESSION_VAR]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Session Management via php4 sessions
|
||||||
|
*
|
||||||
|
* @package api
|
||||||
|
* @subpackage sessions
|
||||||
|
*/
|
||||||
class sessions extends sessions_
|
class sessions extends sessions_
|
||||||
{
|
{
|
||||||
|
|
||||||
function sessions($domain_names=null)
|
function sessions($domain_names=null)
|
||||||
{
|
{
|
||||||
$this->sessions_($domain_names);
|
$this->sessions_($domain_names);
|
||||||
//controls the time out for php4 sessions - skwashd 18-May-2003
|
//controls the time out for php4 sessions - skwashd 18-May-2003
|
||||||
ini_set('session.gc_maxlifetime', $GLOBALS['phpgw_info']['server']['sessions_timeout']);
|
ini_set('session.gc_maxlifetime', $GLOBALS['egw_info']['server']['sessions_timeout']);
|
||||||
session_name('sessionid');
|
session_name('sessionid');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,7 +51,7 @@
|
|||||||
}
|
}
|
||||||
session_id($this->sessionid);
|
session_id($this->sessionid);
|
||||||
session_start();
|
session_start();
|
||||||
return $_SESSION['egw'];
|
return $_SESSION[EGW_SESSION_VAR];
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_cookie_params($domain)
|
function set_cookie_params($domain)
|
||||||
@ -60,15 +69,15 @@
|
|||||||
function register_session($login,$user_ip,$now,$session_flags)
|
function register_session($login,$user_ip,$now,$session_flags)
|
||||||
{
|
{
|
||||||
// session_start() is now called in new_session_id() !!!
|
// session_start() is now called in new_session_id() !!!
|
||||||
$_SESSION['egw']['session_id'] = $this->sessionid;
|
$_SESSION[EGW_SESSION_VAR]['session_id'] = $this->sessionid;
|
||||||
$_SESSION['egw']['session_lid'] = $login;
|
$_SESSION[EGW_SESSION_VAR]['session_lid'] = $login;
|
||||||
$_SESSION['egw']['session_ip'] = $user_ip;
|
$_SESSION[EGW_SESSION_VAR]['session_ip'] = $user_ip;
|
||||||
$_SESSION['egw']['session_logintime'] = $now;
|
$_SESSION[EGW_SESSION_VAR]['session_logintime'] = $now;
|
||||||
$_SESSION['egw']['session_dla'] = $now;
|
$_SESSION[EGW_SESSION_VAR]['session_dla'] = $now;
|
||||||
$_SESSION['egw']['session_action'] = $_SERVER['PHP_SELF'];
|
$_SESSION[EGW_SESSION_VAR]['session_action'] = $_SERVER['PHP_SELF'];
|
||||||
$_SESSION['egw']['session_flags'] = $session_flags;
|
$_SESSION[EGW_SESSION_VAR]['session_flags'] = $session_flags;
|
||||||
// we need the install-id to differ between serveral installs shareing one tmp-dir
|
// we need the install-id to differ between serveral installs shareing one tmp-dir
|
||||||
$_SESSION['egw']['session_install_id'] = $GLOBALS['phpgw_info']['server']['install_id'];
|
$_SESSION[EGW_SESSION_VAR]['session_install_id'] = $GLOBALS['egw_info']['server']['install_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will update the DateLastActive column, so the login does not expire
|
// This will update the DateLastActive column, so the login does not expire
|
||||||
@ -90,8 +99,8 @@
|
|||||||
$action = $this->xmlrpc_method_called;
|
$action = $this->xmlrpc_method_called;
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['egw']['session_dla'] = time();
|
$_SESSION[EGW_SESSION_VAR]['session_dla'] = time();
|
||||||
$_SESSION['egw']['session_action'] = $action;
|
$_SESSION[EGW_SESSION_VAR]['session_action'] = $action;
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
@ -106,12 +115,12 @@
|
|||||||
$this->log_access($this->sessionid); // log logout-time
|
$this->log_access($this->sessionid); // log logout-time
|
||||||
|
|
||||||
// Only do the following, if where working with the current user
|
// Only do the following, if where working with the current user
|
||||||
if ($sessionid == $GLOBALS['phpgw_info']['user']['sessionid'])
|
if ($sessionid == $GLOBALS['egw_info']['user']['sessionid'])
|
||||||
{
|
{
|
||||||
session_unset();
|
session_unset();
|
||||||
//echo "<p>sessions_php4::destroy: session_destroy() returned ".(session_destroy() ? 'True' : 'False')."</p>\n";
|
//echo "<p>sessions_php4::destroy: session_destroy() returned ".(session_destroy() ? 'True' : 'False')."</p>\n";
|
||||||
@session_destroy();
|
@session_destroy();
|
||||||
if ($GLOBALS['phpgw_info']['server']['usecookies'])
|
if ($GLOBALS['egw_info']['server']['usecookies'])
|
||||||
{
|
{
|
||||||
$this->phpgw_setcookie(session_name());
|
$this->phpgw_setcookie(session_name());
|
||||||
}
|
}
|
||||||
@ -137,38 +146,38 @@
|
|||||||
{
|
{
|
||||||
$account_id = get_account_id($accountid,$this->account_id);
|
$account_id = get_account_id($accountid,$this->account_id);
|
||||||
|
|
||||||
$_SESSION['egw']['app_sessions']['phpgwapi']['phpgw_info_cache'] = '';
|
$_SESSION[EGW_SESSION_VAR]['app_sessions']['phpgwapi']['phpgw_info_cache'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function appsession($location = 'default', $appname = '', $data = '##NOTHING##')
|
function appsession($location = 'default', $appname = '', $data = '##NOTHING##')
|
||||||
{
|
{
|
||||||
if (! $appname)
|
if (! $appname)
|
||||||
{
|
{
|
||||||
$appname = $GLOBALS['phpgw_info']['flags']['currentapp'];
|
$appname = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This allows the user to put '' as the value. */
|
/* This allows the user to put '' as the value. */
|
||||||
if ($data == '##NOTHING##')
|
if ($data == '##NOTHING##')
|
||||||
{
|
{
|
||||||
/* do not decrypt and return if no data (decrypt returning garbage) */
|
/* do not decrypt and return if no data (decrypt returning garbage) */
|
||||||
if($_SESSION['egw']['app_sessions'][$appname][$location])
|
if($_SESSION[EGW_SESSION_VAR]['app_sessions'][$appname][$location])
|
||||||
{
|
{
|
||||||
return $GLOBALS['phpgw']->crypto->decrypt($_SESSION['egw']['app_sessions'][$appname][$location]);
|
return $GLOBALS['egw']->crypto->decrypt($_SESSION[EGW_SESSION_VAR]['app_sessions'][$appname][$location]);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$_SESSION['egw']['app_sessions'][$appname][$location] = $GLOBALS['phpgw']->crypto->encrypt($data);
|
$_SESSION[EGW_SESSION_VAR]['app_sessions'][$appname][$location] = $GLOBALS['egw']->crypto->encrypt($data);
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
function session_sort($a,$b)
|
function session_sort($a,$b)
|
||||||
{
|
{
|
||||||
$sign = strcasecmp($GLOBALS['phpgw']->session->sort_order,'ASC') ? 1 : -1;
|
$sign = strcasecmp($GLOBALS['egw']->session->sort_order,'ASC') ? 1 : -1;
|
||||||
|
|
||||||
return strcasecmp(
|
return strcasecmp(
|
||||||
$a[$GLOBALS['phpgw']->session->sort_by],
|
$a[$GLOBALS['egw']->session->sort_by],
|
||||||
$b[$GLOBALS['phpgw']->session->sort_by]
|
$b[$GLOBALS['egw']->session->sort_by]
|
||||||
) * $sign;
|
) * $sign;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,10 +190,10 @@
|
|||||||
function list_sessions($start,$order,$sort,$all_no_sort = False)
|
function list_sessions($start,$order,$sort,$all_no_sort = False)
|
||||||
{
|
{
|
||||||
//echo "<p>session_php4::list_sessions($start,'$order','$sort',$all)</p>\n";
|
//echo "<p>session_php4::list_sessions($start,'$order','$sort',$all)</p>\n";
|
||||||
$session_cache = $this->appsession('php4_session_cache','phpgwapi');
|
//$session_cache = $this->appsession('php4_session_cache','phpgwapi');
|
||||||
|
|
||||||
$values = array();
|
$values = array();
|
||||||
$maxmatchs = $GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
|
$maxmatchs = $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs'];
|
||||||
$dir = @opendir($path = ini_get('session.save_path'));
|
$dir = @opendir($path = ini_get('session.save_path'));
|
||||||
if (!$dir) // eg. openbasedir restrictions
|
if (!$dir) // eg. openbasedir restrictions
|
||||||
{
|
{
|
||||||
@ -217,17 +226,17 @@
|
|||||||
$session = ($size = filesize ($path . '/' . $file)) ? fread ($fd, $size) : 0;
|
$session = ($size = filesize ($path . '/' . $file)) ? fread ($fd, $size) : 0;
|
||||||
fclose ($fd);
|
fclose ($fd);
|
||||||
}
|
}
|
||||||
if (substr($session,0,4) != 'egw|')
|
if (substr($session,0,1+strlen(EGW_SESSION_VAR)) != EGW_SESSION_VAR.'|')
|
||||||
{
|
{
|
||||||
$session_cache[$file] = false; // dont try reading it again
|
$session_cache[$file] = false; // dont try reading it again
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$session = unserialize(substr($session,4));
|
$session = unserialize(substr($session,1+strlen(EGW_SESSION_VAR)));
|
||||||
unset($session['app_sessions']); // not needed, saves memory
|
unset($session['app_sessions']); // not needed, saves memory
|
||||||
$session_cache[$file] = $session;
|
$session_cache[$file] = $session;
|
||||||
}
|
}
|
||||||
if($session['session_flags'] == 'A' || !$session['session_id'] ||
|
if($session['session_flags'] == 'A' || !$session['session_id'] ||
|
||||||
$session['session_install_id'] != $GLOBALS['phpgw_info']['server']['install_id'])
|
$session['session_install_id'] != $GLOBALS['egw_info']['server']['install_id'])
|
||||||
{
|
{
|
||||||
$session_cache[$file] = false; // dont try reading it again
|
$session_cache[$file] = false; // dont try reading it again
|
||||||
continue; // no anonymous sessions or other domains or installations
|
continue; // no anonymous sessions or other domains or installations
|
||||||
@ -241,8 +250,8 @@
|
|||||||
|
|
||||||
if(!$all_no_sort)
|
if(!$all_no_sort)
|
||||||
{
|
{
|
||||||
$GLOBALS['phpgw']->session->sort_by = $sort;
|
$GLOBALS['egw']->session->sort_by = $sort;
|
||||||
$GLOBALS['phpgw']->session->sort_order = $order;
|
$GLOBALS['egw']->session->sort_order = $order;
|
||||||
|
|
||||||
uasort($values,array('sessions','session_sort'));
|
uasort($values,array('sessions','session_sort'));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user