Source for file OCSP_SESSION.phpclass
Documentation is available at OCSP_SESSION.phpclass
* session class it is planed to add different session types
* therefore this class is already implemented but uses standard php session
* @project Open CSP-Management
* @author Peter Krebs (pk)<pitlinz@users.sourceforge.net>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id: OCSP_SESSION.phpclass,v 1.9 2008/11/19 07:40:07 pitlinz Exp $
* @project Open CSP-Management
* @author Peter Krebs (pk)<pitlinz@users.sourceforge.net>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
/** -----------------------------------------------------
* @var OCSP_SESSION $mySession
/** -----------------------------------------------------
* METHODS _____________________________________________
* @param OCSP_SESSION $aSession
* @project Open CSP-Management
* @author Peter Krebs (pk)<pitlinz@users.sourceforge.net>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version pk-08-03-14 singleton
* @version $Id: OCSP_SESSION.phpclass,v 1.9 2008/11/19 07:40:07 pitlinz Exp $
/*** class variables --------------------------------------------- */
* @staticvar OCSP_SESSION $instance
private static $instance=
NULL;
* @staticvar string $myName
protected static $myName=
"";
/** -----------------------------------------------------
/** -----------------------------------------------------
/** -----------------------------------------------------
* @var array $mySessionVals
* @var boolean $isWritten
* @var boolean $hasChanged
* METHODS _____________________________________________
// --------------------------------------------------------------
// --------------------------------------------------------------
// --------------------------------------------------------------
// Constructors and descructors
// --------------------------------------------------------------
if (empty(self::$myName))
if(($str_name =
ini_get('session.name')) &&
!empty($str_name)) {
self::$myName =
ini_get('session.name');
self::$myName =
'OCSP_SES';
* save session on descruct
// --------------------------------------------------------------
// static instance functions
// --------------------------------------------------------------
* returns the session object
* @param boolean $open (open the session?)
self::$instance =
new OCSP_SESSION();
if ($open &&
(!self::$instance->isOpened()))
self::$instance->openSession();
if (!self::$instance->isOpened())
* returns if we already have an instance
// --------------------------------------------------
// --------------------------------------------------
* closes a session and writes the data
// --------------------------------------------------------------
// --------------------------------------------------------------
// --------------------------------------------------------------
// --------------------------------------------------------------
* @param string $aVarName
function getValue($aVarName,$debug=
FALSE)
if (empty($aVarName)) return NULL;
if (isset
($_SESSION[$aVarName]))
return $_SESSION[$aVarName];
* sets a session var value
* @param string $aVarName
* @return mixed (TRUE in case of no error else an OCSP_SESSION_ERROR object)
function setValue($aVarName,$aValue,$debug=
False)
if ($oldValue !=
$aValue)
$_SESSION[$aVarName]=
$aValue;
* sets a session value which is not set
* if $aVarName is already set in the session nothing is done
* @param string $aVarName
* @return boolean if the value has changed
$mix_sessValue =
$this->getValue($aVarName);
if (!empty($mix_sessValue) &&
($mix_sessValue !==
Null))
return $this->setValue($aVarName,$aValue,$debug);
* @param string $aVarName
if (isset
($_SESSION[$aVarName]))
unset
($_SESSION[$aVarName]);
// --------------------------------------------------------------
// --------------------------------------------------------------
* clears all user data from the session
* returns the stored userId
if ($arr_usrData =
$this->getValue('CURRENTUSER'))
return intval($arr_usrData['USR_ID']);
* @param boolean $reqDB (establish a database connection)
* @requires user/OCSP_USER.phpclass
function getUser($reqDB=
FALSE,$debug=
FALSE)
* refreshes the user session
* @param boolean $withoutUsrDb
echoDebugLine(__FILE__
,__LINE__
,"<p>NOT IMPLEMENTET CALL OCSP_SESSION::refreshUser()</p><pre>".
print_r($_SESSION,True).
"</pre>");
// --------------------------------------------------------------
// --------------------------------------------------------------
$iv =
"qe3jignfmas4qeeqfrfmas4qegnqw2egtjkn5lgdaaafaadsjpqd37qwet8zuiopl1";
while(strlen($iv) <
$iv_len) $iv.=
$iv;
* returns a default password for encrypt/decrypt
$password =
md5("open".
time().
$_SERVER['REMOTE_ADDR'].
$_SERVER['REMOTE_PORT'].
"CSP");
* if $password is empty $_SESSION['MD5PWD'] is used
* @param string $plain_text
* @param string $password
* @see http://www.php.net/manual/en/function.md5.php
public function encrypt($plain_text, $password=
"", $iv_len =
16)
$password =
md5($password);
if ($n %
16) $plain_text .=
str_repeat("\0", 16 -
($n %
16));
$enc_text =
self::get_rnd_iv($iv_len);
$iv =
substr($password ^
$enc_text, 0, 512);
$iv =
substr($block .
$iv, 0, 512) ^
$password;
* if $password is empty $_SESSION['MD5PWD'] is used
* @param string $enc_text
* @param string $password
* @see http://www.php.net/manual/en/function.md5.php
public function decrypt($enc_text, $password=
"", $iv_len =
16) {
// prepare password and enc_text
$password=
md5($password);
$iv =
substr($password ^
substr($enc_text, 0, $iv_len), 0, 512);
$block =
substr($enc_text, $i, 16);
$plain_text .=
$block ^
pack('H*', md5($iv));
$iv =
substr($block .
$iv, 0, 512) ^
$password;
Documentation generated on Thu, 08 Jan 2009 17:47:08 +0100 by phpDocumentor 1.4.0a2