Welcome Guest, Not a member yet? Register   Sign In
Native PHP Session Library
#3

[eluser]Unknown[/eluser]
you forgot the flashdata, but still thx a lot. I am writing the flashdata functions now, but since I don't write as nice code as you, but I'll post it here when done.

edit:
also changed some small stuff besides adding the functions
I tried to keep the same style as much as possible.

Code:
<?php
session_start();

class CI_Session
{
    
    var $CI;
    var $DB;
    var $CurTime;
    
    function CI_Session()
    {
        $this->CI =& get_instance();
        $this->DB = $this->CI->load->database();
        $this->CurTime = time();
        if (isset($_SESSION['flash_time']))
        {
            $this->LastTime = $_SESSION['flash_time'];
        }//if
        else
        {
            $this->LastTime = 0;
        }//else
        $_SESSION['flash_time'] = $this->CurTime;
    }
    
    function set_userdata($name, $value = NULL)
    {
        if( ! is_array($name))
        {
            if($value === NULL)
            {
                show_error("Second parameter for set_userdata missing.");
            } // if
            else
            {
                if(isset($_SESSION[$name]))
                {
                    unset($_SESSION[$name]);
                } // if
                $_SESSION[$name] = $value;
            } // else
        } // if
        else
        {
            foreach($name as $names => $key)
            {
                if(isset($_SESSION[$names]))
                {
                    unset($_SESSION[$names]);
                }
                $_SESSION[$names] = $key;
            } // forech
        } //  else
    } // set_userdata
    
    function userdata($item, $string = NULL)
    {
        if( ! $string === NULL)
        {
            if(!isset($_SESSION[$item]))
            {
                return FALSE;
            } // if
            else
            {
                return TRUE;
            } // else
        } // if
        else
        {
            if(!isset($_SESSION[$item]))
            {
                return FALSE;
            } // if
            else
            {    
                return $_SESSION[$item];
            } // else
        } // else
    } // userdata
    
    function unset_userdata($userdata)
    {
        if(!is_array($userdata))
        {
            unset($_SESSION[$userdata]);
        } // if
        else
        {
            foreach($userdata as $item)
            {
                unset($_SESSION[$item]);
            } // foreach
        } // else
    } // unset_userdata
    
    function sess_destroy()
    {
        session_destroy();
        session_start();
        $_SESSION['flash_time'] = $this->CurTime;
    } // session_destroy
    
    function set_flashdata($item, $value=NULL)
    {
        if (is_array($item))
        {
            foreach($item as $key=>$val)
            {
                $session = array(
                    'flash_'.$key=>array('
                        data'=>$val,
                        'set'=>$this->CurTime
                    )
                );
                $this->set_userdata($session);
                
            }//foreach
        }//if
        else
        {
            $session = array(
                'flash_'.$item=>array(
                    'data'=>$value,
                    'set'=>$this->CurTime
                )
            );
            $this->set_userdata($session);
        }//else
    }//set_flashdata
    
    function flashdata($item)
    {
        $session = $this->userdata('flash_'.$item);    
        if ($session['set']>=$this->LastTime)
        {
            return $session['data'];
        }//if
        else
        {
            return false;
        }//else
    }//flashdata
    
    function keep_flashdata($item)
    {
        if ($this->flashdata('flash_'.$item, true))
        {
            $_SESSION['flash_'.$item]['set'] = $this->CurTime;
        }//if
        
    }//keep_flashdata
    
}

/* End of file Session.php */
/* Location: application/libraries */
?>

edit: oops made a small mistake.
if ($session['set']>=$this->LastTime)
was
if ($session['set']>=0) for testing
code should be working now


Messages In This Thread
Native PHP Session Library - by El Forum - 10-07-2008, 03:02 PM
Native PHP Session Library - by El Forum - 10-09-2008, 06:51 AM
Native PHP Session Library - by El Forum - 10-17-2008, 03:08 AM
Native PHP Session Library - by El Forum - 07-10-2012, 03:19 AM
Native PHP Session Library - by El Forum - 07-19-2012, 12:58 PM
Native PHP Session Library - by El Forum - 08-27-2012, 09:59 AM



Theme © iAndrew 2016 - Forum software by © MyBB