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');
}
}
?>