MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/lifemaze_in/lp_lib/lp_session.php
<?php
/**********************************************************
	   Filename: lp_session.php
	Description: session related operations
		 Author: uday
	 Created on: AUG, 01 2018
	Approved on: 
	Reviewed on: 
	------------------------------------------------------------
	Modification Details
	Changed by:
	------------------------------------------------------------
**********************************************************/
class lp_session {	

	private $dbObj = null;

	function __construct() {
		$this->dbConnection();
	}
	function __destruct() {
		unset($this->dbObj);
	}
	
	function dbConnection()	{
		$this->dbObj = lpObject::newObject('lp_db');
		$this->dbObj->open_db();
	}
	
	function get_value($key){
		$value = "";
		if(isset($_SESSION[$key]))
			$value = $_SESSION[$key];
		return $value;
	}
	function set_value($key,$value) { 
		if(isset($_SESSION[$key]))
			$_SESSION[$key] = $value;
	}
	function add_value($key,$value){
		if(!isset($_SESSION[$key]))
			$_SESSION[$key] = $value;
	}
	
	function startSession() {
		if(!isset($_SESSION['lifeplanner'])) {
			session_start();
			$_SESSION['lifeplanner'] = "v0.1";
			$this->add_value("session_id",$this->unique_code("LP"));
			$this->add_value("cust_id",0);
		}
	}
	
	function get_cust_object() {
		$session_id    = $this->get_value("session_id");
		$session_info  = $this->dbObj->query("cust_session","session_id = '$session_id'");
		$session_rslt  = $this->dbObj->result($session_info);
		if($session_rslt){
			$libObject = unserialize(base64_decode(urldecode($session_rslt[0]->obj_id)));
			return $libObject;
		}
		return false;
		
	}
	
	function life_session_exist() {
		if(isset($_SESSION['lifeplanner'])) {
			if((isset($_SESSION["session_id"])) && (isset($_SESSION["cust_id"])))
				return true;
		}
		return false;
	}
	
	function is_session_exist(){
		$session_id    = $this->get_value("session_id");
		$session_info  = $this->dbObj->query("cust_session","session_id = '$session_id'");
		$num_rows      = $this->dbObj->num_rows($session_info);
		if((int)$num_rows === 1){
			$session_rslt  = $this->dbObj->result($session_info);
			return $this->get_cust_object();			
		}else{
			$libObject =  lpObject::newObject("lp_db");
			return $libObject;
		}
	}
	
	function clear_session($cust_id){
		$query = "DELETE FROM lp_cust_session where cust_id = '$cust_id'";
		return $this->dbObj->runQuery($query);
	}
	
	function save_session($cust_id, $obj_id){
		if($this->life_session_exist()) {
			$this->set_value('cust_id',$cust_id);
			$session_id  = $this->get_value("session_id");
			$user_ip     = $this->user_ip();			
			$intime      = date("Y-m-d h:i:s");
			
			$query = "insert into lp_cust_session (user_ip,session_id,cust_id,obj_id,status,intime) values ('$user_ip','$session_id','$cust_id','$obj_id','Active','$intime')";			
			$this->dbObj->runQuery($query);
		}
	}
	
	function logout_session() {
		if(isset($_SESSION['lifeplanner']))	{
			$session_id  = $this->get_value("session_id");
			$cust_id  = $this->get_value("cust_id");
			$this->clear_session($cust_id);
			
			if(isset($_SESSION['session_id'])){
				unset($_SESSION['session_id']);
			}
			if(isset($_SESSION['cust_id'])){
				unset($_SESSION['cust_id']);
			}
			if(isset($_SESSION['lifeplanner'])){
				unset($_SESSION['lifeplanner']);
			}
		}
	}
	
	function unique_code($code="UN") {
		$YearMap = array('2018'=>'A','2019'=>'B','2020'=>'C','2021'=>'D','2022'=>'E','2023'=>'F','2024'=>'G','2025'=>'H','2026'=>'I','2027'=>'J','2028'=>'K','2029'=>'L');
		$MonthMap = array('1'=>'J','2'=>'K','3'=>'L','4'=>'M','5'=>'N','6'=>'O','7'=>'P','8'=>'Q','9'=>'R','10'=>'S','11'=>'T','12'=>'U');
		$DayMap = array('1'=>'A','2'=>'B','3'=>'C','4'=>'D','5'=>'E','6'=>'F','7'=>'G','8'=>'H','9'=>'I','10'=>'J','11'=>'K','12'=>'L','13'=>'M','14'=>'N','15'=>'O','16'=>'P','17'=>'Q','18'=>'R','19'=>'S','20'=>'T','21'=>'U','22'=>'V','23'=>'W','24'=>'X','25'=>'Y','26'=>'Z','27'=>'1','28'=>'2','29'=>'3','30'=>'4','31'=>'5');
		$HourMap = array('0'=>'A','1'=>'B','2'=>'C','3'=>'D','4'=>'E','5'=>'F','6'=>'G','7'=>'H','8'=>'I','9'=>'J','10'=>'K','11'=>'L','12'=>'M','13'=>'N','14'=>'O','15'=>'P','16'=>'Q','17'=>'R','18'=>'S','19'=>'T','20'=>'U','21'=>'V','22'=>'W','23'=>'X');
		
		$loctime = time();
		$unq4 = substr($loctime,-4,4);
		$unq2 = mt_rand(10,99);
		$xunq2 = mt_rand(10,99);
		$year  = $YearMap[ltrim(date('Y'), '0')];
		$month = $MonthMap[ltrim(date('n'), '0')];
		$day   = $DayMap[ltrim(date('j'), '0')];
		
		$hr = ltrim(date('H'), '0');
		if($hr == "")
			$hr = "0";
		$hour  = $HourMap[$hr];

		$uniqueCode = $code. $year . $month . $day . $hour. $unq4 . $unq2 . $xunq2;
		return $uniqueCode;
	}
	
	function user_ip(){
		if (isset($_SERVER)) {

			if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
				return $_SERVER["HTTP_X_FORWARDED_FOR"];
			
			if (isset($_SERVER["HTTP_CLIENT_IP"]))
				return $_SERVER["HTTP_CLIENT_IP"];

			return $_SERVER["REMOTE_ADDR"];
		}

		if (getenv('HTTP_X_FORWARDED_FOR'))
			return getenv('HTTP_X_FORWARDED_FOR');

		if (getenv('HTTP_CLIENT_IP'))
			return getenv('HTTP_CLIENT_IP');

		return getenv('REMOTE_ADDR');
	}
}
?>