A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				<?php
 | 
						|
final class Session {
 | 
						|
    public $data = array();
 | 
						|
    private $name;
 | 
						|
 | 
						|
    public function __construct() {
 | 
						|
        $this->name = ((defined('SESSION_PREFIX')) ? SESSION_PREFIX : 'SESS').(isset($_SERVER['REMOTE_ADDR']) ? md5($_SERVER['REMOTE_ADDR']) : md5(date("dmY")));
 | 
						|
 | 
						|
        if (!session_id()) {
 | 
						|
            $this->openSession();
 | 
						|
        }
 | 
						|
 | 
						|
        if(session_name() === $this->name) {
 | 
						|
            $this->data =& $_SESSION;
 | 
						|
        }else {
 | 
						|
            $this->openSession();
 | 
						|
            $this->data =& $_SESSION;
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    private function openSession() {
 | 
						|
 | 
						|
        $this->closeSession();
 | 
						|
 | 
						|
        ini_set('session.use_cookies', 'On');
 | 
						|
        ini_set('session.use_trans_sid', 'Off');
 | 
						|
        ini_set('session.cookie_httponly', 1);
 | 
						|
        if($this->isSecure())
 | 
						|
            ini_set('session.cookie_secure', 1);
 | 
						|
 | 
						|
        session_set_cookie_params(0, '/');
 | 
						|
        //session_id(md5());
 | 
						|
        session_name($this->name);
 | 
						|
        session_start();
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    private function closeSession() {
 | 
						|
        if (session_status() == PHP_SESSION_ACTIVE) {
 | 
						|
            session_unset();
 | 
						|
            session_destroy();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    private function isSecure() {
 | 
						|
        return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |