<?php
$data = array();
$data['installed'] = false;
// Used in URL
$path = array();
if(isset($_SERVER["QUERY_STRING"])){
$path = explode("/",trim($_SERVER["QUERY_STRING"],"/"));
$path = array_filter($path);
}
if(isset($path[1])){
$global['key'] = $path[1];
}
if(!($data = @include "config/config.php")){
$config = new config();
$data = $conf = $config->config();
$conf = $config->getconfig($conf);
file_put_contents('config/config.php',$conf);
}
if(isset($data['timezone'])){
date_default_timezone_set($data['timezone']);
}
if(!isset($data['installed'])){
$config = new config();
$t = new TempCache('~C~kchat~'.$global['key'].'~@~');
$conf = $config->config();
$t->setcache(base64_encode(serialize($conf)));
}
if(!isset($data['key'])){
$t = new TempCache('~S~kchat~'.$global['key'].'~@~');
$cache = $t->getcache();
$sdata = $cache = unserialize(base64_decode($cache));
if(is_array($sdata)){
$data = array_merge($data,$sdata);
$data['installed'] = true;
$config = new config();
$conf = $config->getconfig($data);
file_put_contents('config/config.php',$conf);
}
}
function _p($e){echo $e;}
function getip(){
$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 getBrowser(){
if(!empty($_SERVER['HTTP_USER_AGENT'])){
return $_SERVER['HTTP_USER_AGENT'];
}else{
return false;
}
}
function getUniqe(){
return md5(getip().getBrowser());
}
function k_random($n){
$char = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$result = '';
while($n > 0){
$result .= $char[rand(0,61)];
$n--;
}
return $result;
}
function base($n,$bf,$bt){
$char = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$result = '';
while($n != 0){
$result .= $char[($n%$bt)];
$n = floor($n/$bt);
}
return strrev($result);
}
function ago($datetime, $full = false)
{
$now = new DateTime();
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
function kchat_rand(){
return base(time(),10,62).k_random(10);
}
function psql($string,$data) {
$indexed=$data==array_values($data);
foreach($data as $k=>$v) {
if(is_string($v)) $v="'$v'";
if($indexed) $string=preg_replace('/\?/',$v,$string,1);
else $string=str_replace(":$k",$v,$string);
}
return $string;
}
if(isset($path[0])){
$kc = new KChat($data);
switch($path[0]){
case 'js':
header("Content-Type: text/js");
$kc->js($data);
break;
case 'css':
header("Content-Type: text/css");
$kc->css($data);
break;
case 'start':
$kc->start($data);
break;
case 'msg':
$kc->msg($data);
break;
case 'getmsg':
_p(json_encode($kc->getmsg($_POST,$data),128));
break;
}
}
function reverse($a){
$b = array();
for($i = count($a) - 1;$i >= 0 ; $i--){
$b[] = $a[$i];
}
return $b;
}
function msgencode($txt){
return trim(json_encode($txt),'"');
}
function msgdecode($txt){
return json_decode('"'.$txt.'"', 1);
}
function isReq($id){
if(isset($_POST[$id])){
if($_POST[$id] == 'true'){
return true;
}
}
return false;
}
|