[eluser]WanWizard[/eluser]
From our session library extension:
Code:
/**
* Add or change data in the "userdata" array
*
* set_userdata method with support for multi-dimensional arrays
*
* @access public
* @param string
* @param array
* @return void
*/
function set_userdata_array($arrayname = NULL, $newdata = array())
{
if ( ! is_null($arrayname) && is_array($newdata) )
{
if ( !isset($this->userdata[$arrayname]) )
{
$this->userdata[$arrayname] = array();
}
if (count($newdata) > 0)
{
foreach ($newdata as $key => $val)
{
$this->userdata[$arrayname][$key] = $val;
}
}
}
}
/**
* Delete a session variable from the "userdata" array
*
* Our version supports multi-arrays as session data
*
* @access public
* @param string
* @return string
*/
function unset_userdata($item, $subitem = NULL)
{
if ( is_null($subitem) )
{
if (is_string($item))
{
$item = array($item => '');
}
if (count($item) > 0)
{
foreach ($item as $key => $val)
{
unset($this->userdata[$key]);
}
}
}
else
{
unset($this->userdata[$item][$subitem]);
}
$this->sess_write();
}
/**
* Fetch a specific item from the session array
*
* Our version supports multi-arrays as session data
*
* @access public
* @param string
* @return string
*/
function userdata($item, $subitem = NULL)
{
if ( is_null($subitem) )
{
return ( ! isset($this->userdata[$item])) ? FALSE : $this->userdata[$item];
}
else
{
return ( ! isset($this->userdata[$item][$subitem])) ? FALSE : $this->userdata[$item][$subitem];
}
}
// --------------------------------------------------------------------
/**
* Delete a session variable from the "userdata" array
*
* Our version supports multi-arrays as session data
*
* @access public
* @param string
* @return string
*/
function unset_userdata($item, $subitem = NULL)
{
if ( is_null($subitem) )
{
if (is_string($item))
{
$item = array($item => '');
}
if (count($item) > 0)
{
foreach ($item as $key => $val)
{
unset($this->userdata[$key]);
}
}
}
else
{
unset($this->userdata[$item][$subitem]);
}
$this->sess_write();
}