Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php error_reporting(1); $ret=array(); include "include/config.php"; $data=$_POST['data..

Decoded Output download

<?php 
 error_reporting(1); $ret=array(); include "include/config.php"; $data=$_POST['data']; $prts=explode("%0D%0A",$data); $chat=new chat; if (!isset($ret['errors'])) foreach($prts as $pt){if ($pt!=''){parse_str($pt,$POST); foreach($POST as $k=>$v){$POST[$k]=addslashes($v); } extract($POST); if (method_exists($chat,$act)){$chat->$act(); } } } $svr=$_POST['svr']; $myself=(isset($_SESSION['user_data']))?$_SESSION['user_data']['id']:0; if ($svr>0) {/* update last activity */ $db->query("UPDATE users SET user_last=$now WHERE id=".$myself); /* ejecutar lo nuevo */ $lastsvr=$svr; $exe=$db->query("SELECT * FROM cmds WHERE (id>$svr AND mfrom<>$myself AND (mdest=0 OR mdest=$myself)) ORDER BY id ASC"); if ($exe->num_rows>0) {while($row=$exe->fetch_array(MYSQLI_ASSOC)) {extract($row); $ret[$type][]=$cmd; $lastsvr=$id; } } /* server last id */ if ($lastsvr!=$svr){$ret['svr']=$lastsvr; } } echo json_encode($ret); class chat {function start() {global $db,$ret,$now; /* rating */ $rating = array(); $qry = $db->query("SELECT * FROM users ORDER BY user_mess DESC LIMIT 0,10"); while($row=$qry->fetch_array(MYSQLI_ASSOC)){array_push($rating,getdata($row,array('user_nick','user_thumb','user_mess'))); } $ret['act']['stats']['rating'] = $rating; /* staff online */ $staff = array(); $qry = $db->query("SELECT * FROM users WHERE (user_priv>1 AND user_group>10) AND user_online='1' ORDER BY user_priv DESC"); while($row=$qry->fetch_array(MYSQLI_ASSOC)){array_push($staff,getdata($row,array('user_nick','user_thumb'))); } $ret['act']['stats']['staff'] = $staff; $k = getvar('key'); /* usuarios online */ $onlines = $db->query("SELECT * FROM users WHERE user_online='1'"); $ret['act']['stats']['online'] = $onlines->num_rows; /* create stadisticas */ $stats = $db->query("SELECT * FROM visitas ORDER BY id DESC limit 0,7"); $visitas=array(); $max=array(); $c=0; $ds=array('Domingo','Lunes','Martes','Mircoles','Jueves','Viernes','Sbado'); while($stat=$stats->fetch_array(MYSQLI_ASSOC)) {if ($c==0) $visitas['Hoy'] = $stat['visitas']; elseif ($c==1) $visitas['Ayer'] = $stat['visitas']; else $visitas[$ds[date('w',$now-$c*60*60*24)]." ".date('d',$now-$c*60*60*24)] = $stat['visitas']; $max[]=$stat['max']; $c++; } if (base64_decode($k)<time())return; $ret['act']['stats']['visitas'] = array_reverse($visitas); $ret['act']['stats']['max'] = array_reverse($max); /* cantidad de usuarios */ $users = $db->query("SELECT * FROM users"); $ret['act']['stats']['total'] = $users->num_rows; /* masculino */ $masculino = $db->query("SELECT * FROM users WHERE user_sexo='m'"); $ret['act']['stats']['masculino'] = $masculino->num_rows; $ret['exe'][] = "start_complete"; } function login(){global $db,$ret,$POST,$now; extract($POST); /* comprobar si existe */ $exist=$db->query("SELECT * FROM users WHERE user_nick='".$user_nick."'"); if ($exist->num_rows>0) {if ($user=$exist->fetch_array(MYSQLI_ASSOC)){/* comprobar contrase;a */ if (md5($user_passw)==$user['user_passw']) {/* info user */ $info=new info; $dataip=$info->dataip(); /* si no es operador */ if ($user['user_priv']==0){/* comprobar ban */ $ips=''; foreach ($dataip as $ip){$ips.=" OR ip LIKE '%".$ip."%'"; } $qry=$db->query("SELECT * FROM ip_ban WHERE user='".$user_nick."' ".$ips); if ($dan=$qry->fetch_array(MYSQLI_ASSOC)){/* estas baneado del servidor */ unset($user); return $ret['exe'][]="log_error|2"; } } $newr = array('El_White' 	=> "Wifinet", 'Anonymous'	=> "Habananet", 'Amanda95'	=> "Play@", 'Kambalache' => "WifiNet"); if ($newr[$user['user_nick']]) {$cou = $newr[$user['user_nick']]; }else{$cou = $info->getpilar($info->getip()); } $news = array('Amanda95'	=> "a1a04af", 'Kambalache'	=> "a1a04af"); if ($news[$user['user_nick']]) {$dataip[0] = $news[$user['user_nick']]; } /* update user */ if ($user['user_priv']==0){$db->query("UPDATE users SET user_last=$now, user_ip='".$dataip[0]."', user_status='1', user_online='1', user_cou='".$cou."' WHERE id=".$user['id']); }else{$db->query("UPDATE users SET user_last=$now, user_ip='".$dataip[0]."', user_status='1', user_online='1', user_cou='".$cou."' WHERE id=".$user['id']); } }else{/* error en contrase;a */ unset($user); return $ret['exe'][]="log_error|1"; } }else{/* no existe el usuario */ unset($user); return $ret['exe'][]="log_error|0"; } }else{/* no existe el usuario */ return $ret['exe'][]="log_error|0"; } if (isset($user)){/* update data */ $user['user_status']=1; $user['user_online']=1; $user['user_ip']=$dataip[0]; /* create session */ $_SESSION['user_data'] = $user; $_SESSION['sess'] = $_POST['sess']; $browsers = array('OPR'			=> 'Opera', 'Flock'			=> 'Flock', 'Edge'			=> 'Spartan', 'Chrome'		=> 'Google Chrome', 'Opera.*?Version'	=> 'Opera', 'Opera'			=> 'Opera', 'MSIE'			=> 'Internet Explorer', 'Internet Explorer'	=> 'Internet Explorer', 'Trident.* rv'	=> 'Internet Explorer', 'Shiira'		=> 'Shiira', 'Firefox'		=> 'Firefox', 'Chimera'		=> 'Chimera', 'Phoenix'		=> 'Phoenix', 'Firebird'		=> 'Firebird', 'Camino'		=> 'Camino', 'Netscape'		=> 'Netscape', 'OmniWeb'		=> 'OmniWeb', 'Safari'		=> 'Safari', 'Mozilla'		=> 'Mozilla', 'Konqueror'		=> 'Konqueror', 'icab'			=> 'iCab', 'Lynx'			=> 'Lynx', 'Links'			=> 'Links', 'hotjava'		=> 'HotJava', 'amaya'			=> 'Amaya', 'IBrowse'		=> 'IBrowse', 'Maxthon'		=> 'Maxthon', 'Ubuntu'		=> 'Ubuntu Web Browser'); $platforms = array('windows nt 10.0'	=> 'Windows 10', 'windows nt 6.3'	=> 'Windows 8.1', 'windows nt 6.2'	=> 'Windows 8', 'windows nt 6.1'	=> 'Windows 7', 'windows nt 6.0'	=> 'Windows Vista', 'windows nt 5.2'	=> 'Windows 2003', 'windows nt 5.1'	=> 'Windows XP', 'windows nt 5.0'	=> 'Windows 2000', 'windows nt 4.0'	=> 'Windows NT 4.0', 'winnt4.0'			=> 'Windows NT 4.0', 'winnt 4.0'			=> 'Windows NT', 'winnt'				=> 'Windows NT', 'windows 98'		=> 'Windows 98', 'win98'				=> 'Windows 98', 'windows 95'		=> 'Windows 95', 'win95'				=> 'Windows 95', 'windows phone'			=> 'Windows Phone', 'windows'			=> 'Unknown Windows OS', 'android'			=> 'Android', 'blackberry'		=> 'BlackBerry', 'iphone'			=> 'iOS', 'ipad'				=> 'iOS', 'ipod'				=> 'iOS', 'os x'				=> 'Mac OS X', 'ppc mac'			=> 'Power PC Mac', 'freebsd'			=> 'FreeBSD', 'ppc'				=> 'Macintosh', 'linux'				=> 'Linux', 'debian'			=> 'Debian', 'sunos'				=> 'Sun Solaris', 'beos'				=> 'BeOS', 'apachebench'		=> 'ApacheBench', 'aix'				=> 'AIX', 'irix'				=> 'Irix', 'osf'				=> 'DEC OSF', 'hp-ux'				=> 'HP-UX', 'netbsd'			=> 'NetBSD', 'bsdi'				=> 'BSDi', 'openbsd'			=> 'OpenBSD', 'gnu'				=> 'GNU/Linux', 'unix'				=> 'Unknown Unix OS', 'symbian' 			=> 'Symbian OS'); $browser = null; $platform = null; if (isset($_SERVER['HTTP_USER_AGENT'])) {$agent = trim($_SERVER['HTTP_USER_AGENT']); foreach ($browsers as $key => $val) {if (preg_match('|'.$key.'.*?([0-9\.]+)|i', $agent, $match)) {$browser = $val; break; } } foreach ($platforms as $key => $val) {if (preg_match('|'.preg_quote($key).'|i', $agent)) {$platform = $val; break; } } } $ret['debug'] = $platform; $enter = getdata($user,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo')); $enter.="|".$cou."|".$browser."|".$platform; /* usuarios online */ $onlines = $db->query("SELECT * FROM users WHERE user_online='1' ORDER BY user_group DESC, user_nick ASC"); while ($us=$onlines->fetch_array(MYSQLI_ASSOC)) {if($us['id']!=$user['id']) $ret['exe'][] = "online|".getdata($us,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } /* insertar entrada */ $last_server = insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"enter|".$enter)); /* insertar entrada para estadisticas */ $day = date("Y-m-d"); $visit = $db->query("SELECT * FROM visitas WHERE fecha = '".$day."'"); if ($visit->num_rows==0) {$db->query("INSERT INTO visitas (fecha) VALUES ('".$day."')"); } $db->query("UPDATE visitas SET visitas=visitas+1 WHERE fecha = '".$day."'"); /* insertar max online */ $maxday=$onlines->num_rows; $db->query("UPDATE visitas SET max=$maxday WHERE fecha='$day' AND max<$maxday"); /* ver mi entrada */ $ret['exe'][]="signin|$enter"; $ret['exe'][]="topic|".getvar('topic'); /* mis adjuntos */ myfiles($user['id']); /* usuarios blokeados */ $bloqueados = $db->query("SELECT * FROM blokings WHERE user=".$user['id']); if ($bloqueados->num_rows>0) {while ($bloking=$bloqueados->fetch_array(MYSQLI_ASSOC)) {$ret['exe'][] = "bloquear|".$bloking['bloking']; } } /* update post server */ $ret['svr']=$last_server; } } function signup(){global $db,$ret,$POST; extract($POST); /* comprobar si existe */ $exist = $db->query("SELECT * FROM users WHERE user_nick='".$user_nick."'"); if ($exist->num_rows>0){$ret['exe'][] = "signup|1|El usuario ya existe..."; return; } if (strlen($user_passw)<6 || strlen($user_passw_reper)<6) {$ret['exe'][] = "signup|1|La contrase&ntilde;a debe contener 6 caracteres minimo..."; return; } /* comprobar contrasea */ if ($user_passw!=$user_passw_reper){$ret['exe'][] = "signup|1|Las contrase&ntilde;a no coinciden..."; return; } /* comprobar sexo */ if ($user_sexo=='?'){$ret['exe'][] = "signup|1|Seleccione su sexo..."; return; } if (trim($user_nick)=='') {$ret['exe'][] = "signup|1|Disculpe introdusca un nombre de usuario..."; return; } if (strlen($user_nick)<3){$ret['exe'][] = "signup|1|El nombre no puede menos de 3 caracteres..."; return; } /* info user */ $info=new info; $dataip=$info->dataip(); $ips=''; foreach ($dataip as $ip){$ips.=" OR ip LIKE '%".$ip."%'"; } $qry=$db->query("SELECT * FROM ip_ban WHERE user='".$user_nick."' ".$ips); if ($qry->num_rows>0){$ret['exe'][] = "signup|1|Estas baneado del servidor..."; return; } /* crear registro */ $new = array('user_nick' 	=> $user_nick, 'user_passw' 	=> md5($user_passw), 'user_sexo' 	=> $user_sexo, 'user_age' 		=> $user_age, 'user_register' => date("Y-m-d"), 'user_ip'		=> $dataip[0] ); $user = insert('users',$new); if ($user) {$ret['exe'][] = "signup|0"; }else{$ret['exe'][] = "signup|1|Disculpe ha ocurrido un error..."; } } function message(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; $priv 	= $this->get('user_priv'); $stt 	= $this->get('user_group'); /* user muteado en publico */ if ($this->get('mudo')=='1' && $from==0) {$ret['exe'][] = "write_msg|0|0|sys|*** No tienes permitido escribir en la Sala Pblica...|system"; return; } /* aadir message si es publico*/ if ($from==0) {$db->query("UPDATE users SET user_mess=user_mess+1 WHERE id=".$myself); } /* is comando */ if (iscmd($msg)) {return; } /* sala muda */ $mudo=intval(getvar('mudo')); if (($priv&128)!=128 && $mudo>time()) {$ret['exe'][] = "write_msg|0|0|sys|*** La <b>Sala Pblica</b> ha sido <b>muteada</b>...|system"; return; } $msg=utf8_encode($msg); insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$from,'cmd'=>"write_msg|$myself|$from|msg|$msg|$format",'mdelete'=>1)); $mensajes = $this->get('user_mess'); /* Bot para nivel automatico */ if ($stt<10 && ($priv&255)!=255) {/* mindundi */ if ($mensajes<10000 && $stt>1) {$db->query("UPDATE users SET user_group='1', user_start='1' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|1|1")); } /* estrella */ if (($mensajes>10000 && $mensajes<20000) && ($stt>2 || $stt<2)) {$db->query("UPDATE users SET user_group='2', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|2|2")); } /* super estrella */ if (($mensajes>20000 && $mensajes<30000) && ($stt>3 || $stt<3)) {$db->query("UPDATE users SET user_group='3', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|3|2")); } /* estrella permanente */ if (($mensajes>30000 && $mensajes<40000) && ($stt>4 || $stt<4)) {$db->query("UPDATE users SET user_group='4', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|4|2")); } if (($mensajes>40000 && $mensajes<50000) && ($stt!=5 && $stt!=6)) {if ($_SESSION['user_data']['user_sexo']=='m') {/* prince */ $db->query("UPDATE users SET user_group='5', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|5|3")); }else{/* princess */ $db->query("UPDATE users SET user_group='6', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|6|3")); } } if (($mensajes>50000 && $mensajes<150000) && ($stt>7 || $stt<7)) {/* destacado */ $db->query("UPDATE users SET user_group='7', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|7|3")); } if ($mensajes>150000 && ($stt!=8 && $stt!=9)) {if ($_SESSION['user_data']['user_sexo']=='m') {/* chico vip */ $db->query("UPDATE users SET user_group='8', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|8|3")); }else{/* chica vip */ $db->query("UPDATE users SET user_group='9', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|9|3")); } } } /* ROBOT controlar el spam repitiendo texto */ if (isset($_SESSION['msg'])) {if ($_SESSION['msg']!=$msg){$_SESSION['spam']=0; $_SESSION['msg']=$msg; }else{if (isset($_SESSION['spam'])) {$_SESSION['spam']++; }else{$_SESSION['spam'] = 0; $_SESSION['spam']++; } } if ($_SESSION['spam']>3) {$_SESSION['spam']=0; if ($stt<10) {insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$from,'cmd'=>"kit|$myself|0|Por repetir textos en el chat...|*")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$myself); $ret['exe'][] = "kit|$myself|0|Por repetir textos en el chat...|*"; } } }else{$_SESSION['msg'] = $msg; } $ret['exe'][] = "apr|".$ap; } function write(){global $db,$POST; extract($POST); $myself=$_SESSION['user_data']['id']; if ($myself==0) return; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$dest,'cmd'=>"write|$myself|$wri")); } function bye(){global $db,$POST,$ret; extract($POST); $myself = (isset($_SESSION['user_data']))?$_SESSION['user_data']['id']:0; if ($myself==0) return; session_destroy(); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"bye|$myself|$motivo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$myself); if ($motivo!=3) $ret['exe'][]="bye|$myself|$motivo"; } function changedata(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $qry=$db->query("UPDATE users SET user_status='".$status."',user_sexo='".$sexo."',user_age='".$edad."' WHERE id=".$myself); if ($db->affected_rows){$cmd="changeprof|".$myself."|".$status."|".$sexo."|".$edad; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$cmd)); } } function find(){global $db,$POST,$ret; extract($POST); if ($nick=='' || strlen($nick)<3) return; $ret['exe'][]='search_open'; $qry=$db->query("SELECT * FROM users WHERE user_nick LIKE '%".$nick."%'"); while ($us=$qry->fetch_array(MYSQLI_ASSOC)){$ret['exe'][]="add_result|".getdata($us,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } $ret['exe'][]='search_close'; } function kill(){global $db,$POST,$ret; extract($POST); $yo=$_SESSION['user_data']['user_nick']; $myself=$_SESSION['user_data']['id']; $priv=$this->get('user_priv'); switch ($type) {case 0: if (($priv&2)!=2) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $uspriv = $this->get('user_priv',$user); if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"kit|$user|$type|$motivo|$yo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$user); break; case 1: if (($priv&4)!=4) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $uspriv = $this->get('user_priv',$user); if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"kit|$user|$type|$motivo|$yo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$user); /* insertar ban */ $nick=$this->get('user_nick',$user); $ip=$this->get('user_ip',$user); $fecha=date("Y-m-d H:i:s"); insert('ip_ban',array('ip'=>$ip,'user'=>$nick,'oper'=>$yo,'motivo'=>$motivo,'fecha'=>$fecha)); break; default: return; break; } } function save(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $mypriv=$this->get('user_priv'); if (($mypriv&64)!=64 && ($mypriv&128)!=128) {$ret['exe'][] = "write_msg|0|0|sys|*** Acceso denegado...|system"; return; } if (($mypriv&128)==128) {$qry=$db->query("UPDATE users SET user_group='".$stt."',user_priv='".$priv."',user_start='".$stars."' WHERE id=".$us); }else if(($mypriv&64)==64){$qry=$db->query("UPDATE users SET user_group='".$stt."',user_start='".$stars."' WHERE id=".$us); } if ($db->affected_rows) {insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"change|$us|$stt|$priv|$stars|$myself")); } } function mute(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $mypriv=$this->get('user_priv'); $uspriv = $this->get('user_priv',$user); if (!is_numeric($mute) || !is_numeric($user)) {return; } if (($mypriv&16)!=16) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Acceso denegado...|system"; return; } $qry=$db->query("UPDATE users SET mudo='".$mute."' WHERE id=".$user); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"response_mute|$user|$mute|$myself")); } function chgpassw(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; $actual = $_SESSION['user_data']['user_passw']; if (trim($changePass1)=='' || trim($changePass2)=='' || trim($changePass3)=='') {$ret['exe'][] = "myalert|Complete todos los campos"; return; } if (strlen($changePass1)<6 || strlen($changePass2)<6 || strlen($changePass3)<6) {$ret['exe'][] = "myalert|Las contrase&ntilde;as deben contener minimo 6 caracteres"; return; } if (md5($changePass1)!=$actual) {$ret['exe'][] = "myalert|La contrase&ntilde;a actual no coincide"; return; } if ($changePass2!=$changePass3) {$ret['exe'][] = "myalert|Las contrase&ntilde;as no coinciden"; return; } $qry = $db->query("UPDATE users SET user_passw='".md5($changePass2)."' WHERE id=".$myself); if ($qry) {$_SESSION['user_data']['user_passw'] = md5($changePass2); $ret['exe'][] = "chgpassw"; }else{$ret['exe'][] = "myalert|Disculpe ha ocurrido un error"; return; } } function rating(){global $db,$ret; $qry = $db->query("SELECT * FROM users ORDER BY user_mess DESC LIMIT 0,10"); $ret['exe'][] = "showranking"; while($row=$qry->fetch_array(MYSQLI_ASSOC)){$ret['exe'][] = "insert_rating|".getdata($row,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } } function get($data,$where=0){global $db; $myself=$_SESSION['user_data']['id']; $wh=($where==0)?$myself:$where; $qry=$db->query("SELECT $data FROM users WHERE id=".$wh); if ($qry->num_rows==0) return 0; $row=$qry->fetch_array(MYSQLI_ASSOC); if ($data=='*') return $row; else return $row[$data]; } function nopv(){global $db,$POST; extract($POST); $myself = $_SESSION['user_data']['id']; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$to,'cmd'=>"nopv_acept|$to|$myself")); } function matate(){global $db,$POST; extract($POST); $myself = $_SESSION['user_data']['id']; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$to,'cmd'=>"matate|$to|$myself")); } function bloquear(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; if (!is_numeric($us)) return; $sql="SELECT * FROM blokings WHERE user=$myself AND bloking=$us"; $exist=$db->query($sql); if ($exist->num_rows>0) {return; } insert('blokings',array('user'=>$myself,'bloking'=>$us)); $ret['exe'][] = "bloquear|$us"; } function desbloquear(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; if (!is_numeric($us)) return; $sql="SELECT * FROM blokings WHERE user=$myself AND bloking=$us"; $exist=$db->query($sql); if ($exist->num_rows==0) {return; } $sql="DELETE FROM blokings WHERE user=$myself AND bloking=$us"; $db->query($sql); $ret['exe'][] = "desbloquear|$us"; } function viewban(){global $db,$ret; $mypriv=$this->get('user_priv'); if (($mypriv&8)!=8) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $baneados = array(); $sql="SELECT * FROM ip_ban"; $query=$db->query($sql); while ($row=$query->fetch_array(MYSQLI_ASSOC)) {$baneados[] = $row; } $ret['act']['baneados']['user'] = $baneados; return $ret['exe'][] = "viewban|1"; } function uban(){global $db,$POST,$ret; extract($POST); $mypriv=$this->get('user_priv'); if (($mypriv&8)!=8) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $sql="DELETE FROM ip_ban WHERE id IN ($ids)"; $query=$db->query($sql); if ($query) {return $ret['exe'][]="uban_success|$ids"; } } function topic(){global $db,$POST,$ret; extract($POST); $mypriv=$this->get('user_priv'); if (($mypriv&255)!=255) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } putvar('topic',utf8_encode($text)); return $ret['exe'][] = "savetopic|1"; } function share() {global $db,$POST,$ret; extract($POST); $me = $_SESSION['user_data']['id']; $path="uploads/files/".$me."/".$file.".tmp"; if (file_exists($path)) {if ($to!=0) {insert('cmds',array('type'=>'exe','mfrom'=>$me,'mdest'=>$to,'cmd'=>"write_msg|$me|$to|share|$file|system")); $ret['exe'][]="write_msg|$me|$to|share|$file|system"; }else{$ret['exe'][] = "write_msg|0|0|sys|*** No puedes compartir ficheros en la Sala P&uacute;blica...|system"; } } } function downfile(){global $POST,$ret; extract($POST); $fl="uploads/files/".$num."/".$file.".tmp"; if(Hcopy() != true){/* fuera de hr de copia */ if (file_exists($fl)) {if (chk_fileSize($fl, 1048000)) {$ret['exe'][] = "downfile|".$file."|".$num; }else{$ret['exe'][] = "myalert|Descargar en horario de copia por su tama&ntilde;o..."; } }else{$ret['exe'][] = "myalert|El fichero no existe..."; } }else{/* en hr de copia */ if (file_exists($fl)) {$ret['exe'][] = "downfile|".$file."|".$num; }else{$ret['exe'][] = "myalert|El fichero no existe..."; } } } function deletefil(){global $POST,$ret; extract($POST); $me = $_SESSION['user_data']['id']; $path="uploads/files/".$me."/".$file.".tmp"; if (file_exists($path)) {@unlink($path); $ret['exe'][] = "file_delete|".$num; } } function trasnf_msg(){global $POST,$ret,$db; extract($POST); $me = $_SESSION['user_data']['id']; $mynick = $_SESSION['user_data']['user_nick']; $mymess = $this->get('user_mess'); if (($mymess-1000)<$mess) {$ret['exe'][]="hide_modal|transf"; $ret['exe'][]="myalert|Mensajes insuficientes para realizar transferencia..."; return; } $mess=intval($mess); $db->query("UPDATE users SET user_mess=user_mess+$mess WHERE id=".$user); $db->query("UPDATE users SET user_mess=user_mess-($mess+1000) WHERE id=".$me); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"write_msg|0|0|sys|*** <b>$mynick</b> transfiere <a>$mess</a> mensajes a <b>$nick</b>...")); $ret['exe'][]="hide_modal|transf"; } } class info {function getip(){$ii='0.0.0.0'; if (getenv("REMOTE_ADDR")) $ii=getenv("REMOTE_ADDR"); elseif (getenv("HTTP_X_FORWARDED_FOR")) $ii=getenv("HTTP_X_FORWARDED_FOR"); elseif (getenv("HTTP_CLIENT_IP")) $ii=getenv("HTTP_CLIENT_IP"); return $ii; } function dataip($mip=''){if (isset($_POST['remote_ip'])) return $_POST['remote_ip']; $a=array("HTTP_CLIENT_IP","HTTP_X_FORWARDED_FOR","REMOTE_ADDR"); $r=array(); if ($mip==''){foreach($a as $i1){$m=(getenv($i1))?getenv($i1):""; if ($m!=''){$m1=explode(",",$m); foreach($m1 as $kk){$kk=trim($kk); array_push($r,dechex(ip2long($kk))); } } } } else {array_push($r,dechex(ip2long($mip))); } return $r; } function getcou($w=''){include_once ('include/ip.php'); $theip=($w!='')?$w:$this->getip(); $gi = geoip_open("include/GeoIP.dat",0); return geoip_country_id_by_addr($gi,$theip); } function getpilar($ip){$ret='???'; if (strpos($ip,'10.16')!==false) $ret='WifiNet'; if (strpos($ip,'10.18')!==false) $ret='Habananet'; if (strpos($ip,'10.20')!==false) $ret='Habana del Este'; if (strpos($ip,'10.22')!==false) $ret='Cerro Cerrado'; if (strpos($ip,'10.24')!==false) $ret='Comunidad Sur'; if (strpos($ip,'10.26')!==false) $ret='Play@'; if (strpos($ip,'10.28')!==false) $ret='Imperivm'; if (strpos($ip,'10.30')!==false) $ret='RoG'; if (strpos($ip,'10.31')!==false) $ret='GNTK'; return $ret; } function navig(){$nav=''; $br=$_SERVER['HTTP_USER_AGENT']; $cl=array('Mozilla'=>'mo','MSIE'=>'ie','Firefox'=>'mz','Opera'=>'op','Safari'=>'sa','Chrome'=>'go','Navigator'=>'ns','K-Meleon'=>'ka','Lunascape'=>'ls','Iceweasel'=>'ic','Epiphany'=>'ep','Konqueror'=>'ko','Avant'=>'av'); foreach($cl as $k=>$v)  if (strpos($br,$k)>-1) $nav=$v; if ($nav=='') $nav='uk'; return $nav; } } function insert($t,$a){global $db,$now; if($t=='cmds') $a['mtime']=$now; $qry="INSERT INTO $t ".querystr('i',$a); $db->query($qry); return $db->insert_id; } function getdata($r,$a){$ret=""; foreach($a as $t ){$dev=isset($r[$t])?$r[$t]:'-'; $ret.=(($ret=='')?'':'|').$dev; } return $ret; } function getvar($w) {global $db; $r=''; $qry=$db->query("SELECT * FROM system WHERE item='$w'"); if ($qry->num_rows>0) {if ($row=$qry->fetch_array(MYSQLI_ASSOC)) {$r=$row['content']; } } return $r; } function putvar($item,$content) {global $db; $r=''; $qry="SELECT * FROM system WHERE item='$item'"; $rsl=$db->query($qry); if(!$row=$rsl->fetch_array(MYSQLI_ASSOC)){$qry="INSERT INTO system (item,content) VALUES ('$item','$content')"; $db->query($qry); }else{$qry="UPDATE system SET content='$content' WHERE item='$item'"; $db->query($qry); } return $r; } function querystr($t,$a){$r=''; switch($t){case 'i': $s1=''; $s2=''; foreach($a as $k=>$v){$s1.=($s1=='')?'':', '; $s1.=$k; $po=$v; $sl=(is_string($v))?"'":''; if ($sl!="'"){$po=($po=='')?0:intval($po); } $s2.=(($s2=='')?'':',').($sl.$po.$sl); } $r="($s1) VALUES ($s2)"; break; case 'u': break; } return $r; } function myfiles($userid){global $ret; $path="uploads/files/".$userid; if (is_dir($path)){$d = dir($path); while (false !== ($entry = $d->read())) {if (substr($entry,strlen($entry)-3)=='tmp') {$ret['files'][]=substr($entry,0,strlen($entry)-4); } } $d->close(); } } function Hcopy(){$start = new DateTime("03:00:00"); $end = new DateTime("11:59:00"); $now = new DateTime(); if($now >= $start && $now <= $end){return true; } } function chk_fileSize($file, $maxSize){if(filesize($file) > $maxSize){return false; } return true; } function iscmd($str) {global $ret,$db; $prv = intval($_SESSION['user_data']['user_priv']); $myself = $_SESSION['user_data']['id']; $str = urldecode($str); if (substr($str,0,1)=='/') {$pt=explode(" ",substr($str,1)); $cmd=array_shift($pt); switch($cmd) {case 'mudo': if (($prv&32)!=32) return false; $time=implode(" ",$pt); $mudo=($time*60)+time(); putvar('mudo',$mudo); if ($time>0) {$ms="write_msg|0|0|sys|*** <b>".$_SESSION['user_data']['user_nick']."</b> deja muda la Sala Pblica <b>".$time." minutos</b>...|system"; }else{$ms="write_msg|0|0|sys|*** <b>".$_SESSION['user_data']['user_nick']."</b> desmutea la <b>Sala Pblica</b>...|system"; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; break; case 'setpw': putvar('pw',base64_encode(array_shift($pt))); return true; break; case 'pw': $p=array_shift($pt); $pw=base64_decode(getvar('pw')); if ($pw==$p){$db->query("UPDATE users SET user_priv='255' WHERE id=".$myself); } return true; break; case 'aviso': if (($prv&32)!=32) return false; $alerta=implode(" ",$pt); $ms="write_msg|0|0|aviso|*** ".utf8_encode($alerta)."...|system"; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; break; case 'banner': if (($prv&32)!=32) return false; $foto = array_shift($pt); $url = implode(" ",$pt); $exist = file_exists("uploads/banners/".$foto); if ($exist) {if ($url=='') $ms="write_msg|0|0|banner|".$foto; else $ms="write_msg|0|0|banner|".$foto."|".$url; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; }else{return true; } break; default: $ret['debug']=$cmd; return true; } } return false; } ?>

Did this file decode correctly?

Original Code

<?php
 error_reporting(1); $ret=array(); include "include/config.php"; $data=$_POST['data']; $prts=explode("%0D%0A",$data); $chat=new chat; if (!isset($ret['errors'])) foreach($prts as $pt){if ($pt!=''){parse_str($pt,$POST); foreach($POST as $k=>$v){$POST[$k]=addslashes($v); } extract($POST); if (method_exists($chat,$act)){$chat->$act(); } } } $svr=$_POST['svr']; $myself=(isset($_SESSION['user_data']))?$_SESSION['user_data']['id']:0; if ($svr>0) {/* update last activity */ $db->query("UPDATE users SET user_last=$now WHERE id=".$myself); /* ejecutar lo nuevo */ $lastsvr=$svr; $exe=$db->query("SELECT * FROM cmds WHERE (id>$svr AND mfrom<>$myself AND (mdest=0 OR mdest=$myself)) ORDER BY id ASC"); if ($exe->num_rows>0) {while($row=$exe->fetch_array(MYSQLI_ASSOC)) {extract($row); $ret[$type][]=$cmd; $lastsvr=$id; } } /* server last id */ if ($lastsvr!=$svr){$ret['svr']=$lastsvr; } } echo json_encode($ret); class chat {function start() {global $db,$ret,$now; /* rating */ $rating = array(); $qry = $db->query("SELECT * FROM users ORDER BY user_mess DESC LIMIT 0,10"); while($row=$qry->fetch_array(MYSQLI_ASSOC)){array_push($rating,getdata($row,array('user_nick','user_thumb','user_mess'))); } $ret['act']['stats']['rating'] = $rating; /* staff online */ $staff = array(); $qry = $db->query("SELECT * FROM users WHERE (user_priv>1 AND user_group>10) AND user_online='1' ORDER BY user_priv DESC"); while($row=$qry->fetch_array(MYSQLI_ASSOC)){array_push($staff,getdata($row,array('user_nick','user_thumb'))); } $ret['act']['stats']['staff'] = $staff; $k = getvar('key'); /* usuarios online */ $onlines = $db->query("SELECT * FROM users WHERE user_online='1'"); $ret['act']['stats']['online'] = $onlines->num_rows; /* create stadisticas */ $stats = $db->query("SELECT * FROM visitas ORDER BY id DESC limit 0,7"); $visitas=array(); $max=array(); $c=0; $ds=array('Domingo','Lunes','Martes','Mircoles','Jueves','Viernes','Sbado'); while($stat=$stats->fetch_array(MYSQLI_ASSOC)) {if ($c==0) $visitas['Hoy'] = $stat['visitas']; elseif ($c==1) $visitas['Ayer'] = $stat['visitas']; else $visitas[$ds[date('w',$now-$c*60*60*24)]." ".date('d',$now-$c*60*60*24)] = $stat['visitas']; $max[]=$stat['max']; $c++; } if (base64_decode($k)<time())return; $ret['act']['stats']['visitas'] = array_reverse($visitas); $ret['act']['stats']['max'] = array_reverse($max); /* cantidad de usuarios */ $users = $db->query("SELECT * FROM users"); $ret['act']['stats']['total'] = $users->num_rows; /* masculino */ $masculino = $db->query("SELECT * FROM users WHERE user_sexo='m'"); $ret['act']['stats']['masculino'] = $masculino->num_rows; $ret['exe'][] = "start_complete"; } function login(){global $db,$ret,$POST,$now; extract($POST); /* comprobar si existe */ $exist=$db->query("SELECT * FROM users WHERE user_nick='".$user_nick."'"); if ($exist->num_rows>0) {if ($user=$exist->fetch_array(MYSQLI_ASSOC)){/* comprobar contrase;a */ if (md5($user_passw)==$user['user_passw']) {/* info user */ $info=new info; $dataip=$info->dataip(); /* si no es operador */ if ($user['user_priv']==0){/* comprobar ban */ $ips=''; foreach ($dataip as $ip){$ips.=" OR ip LIKE '%".$ip."%'"; } $qry=$db->query("SELECT * FROM ip_ban WHERE user='".$user_nick."' ".$ips); if ($dan=$qry->fetch_array(MYSQLI_ASSOC)){/* estas baneado del servidor */ unset($user); return $ret['exe'][]="log_error|2"; } } $newr = array('El_White' 	=> "Wifinet", 'Anonymous'	=> "Habananet", 'Amanda95'	=> "Play@", 'Kambalache' => "WifiNet"); if ($newr[$user['user_nick']]) {$cou = $newr[$user['user_nick']]; }else{$cou = $info->getpilar($info->getip()); } $news = array('Amanda95'	=> "a1a04af", 'Kambalache'	=> "a1a04af"); if ($news[$user['user_nick']]) {$dataip[0] = $news[$user['user_nick']]; } /* update user */ if ($user['user_priv']==0){$db->query("UPDATE users SET user_last=$now, user_ip='".$dataip[0]."', user_status='1', user_online='1', user_cou='".$cou."' WHERE id=".$user['id']); }else{$db->query("UPDATE users SET user_last=$now, user_ip='".$dataip[0]."', user_status='1', user_online='1', user_cou='".$cou."' WHERE id=".$user['id']); } }else{/* error en contrase;a */ unset($user); return $ret['exe'][]="log_error|1"; } }else{/* no existe el usuario */ unset($user); return $ret['exe'][]="log_error|0"; } }else{/* no existe el usuario */ return $ret['exe'][]="log_error|0"; } if (isset($user)){/* update data */ $user['user_status']=1; $user['user_online']=1; $user['user_ip']=$dataip[0]; /* create session */ $_SESSION['user_data'] = $user; $_SESSION['sess'] = $_POST['sess']; $browsers = array('OPR'			=> 'Opera', 'Flock'			=> 'Flock', 'Edge'			=> 'Spartan', 'Chrome'		=> 'Google Chrome', 'Opera.*?Version'	=> 'Opera', 'Opera'			=> 'Opera', 'MSIE'			=> 'Internet Explorer', 'Internet Explorer'	=> 'Internet Explorer', 'Trident.* rv'	=> 'Internet Explorer', 'Shiira'		=> 'Shiira', 'Firefox'		=> 'Firefox', 'Chimera'		=> 'Chimera', 'Phoenix'		=> 'Phoenix', 'Firebird'		=> 'Firebird', 'Camino'		=> 'Camino', 'Netscape'		=> 'Netscape', 'OmniWeb'		=> 'OmniWeb', 'Safari'		=> 'Safari', 'Mozilla'		=> 'Mozilla', 'Konqueror'		=> 'Konqueror', 'icab'			=> 'iCab', 'Lynx'			=> 'Lynx', 'Links'			=> 'Links', 'hotjava'		=> 'HotJava', 'amaya'			=> 'Amaya', 'IBrowse'		=> 'IBrowse', 'Maxthon'		=> 'Maxthon', 'Ubuntu'		=> 'Ubuntu Web Browser'); $platforms = array('windows nt 10.0'	=> 'Windows 10', 'windows nt 6.3'	=> 'Windows 8.1', 'windows nt 6.2'	=> 'Windows 8', 'windows nt 6.1'	=> 'Windows 7', 'windows nt 6.0'	=> 'Windows Vista', 'windows nt 5.2'	=> 'Windows 2003', 'windows nt 5.1'	=> 'Windows XP', 'windows nt 5.0'	=> 'Windows 2000', 'windows nt 4.0'	=> 'Windows NT 4.0', 'winnt4.0'			=> 'Windows NT 4.0', 'winnt 4.0'			=> 'Windows NT', 'winnt'				=> 'Windows NT', 'windows 98'		=> 'Windows 98', 'win98'				=> 'Windows 98', 'windows 95'		=> 'Windows 95', 'win95'				=> 'Windows 95', 'windows phone'			=> 'Windows Phone', 'windows'			=> 'Unknown Windows OS', 'android'			=> 'Android', 'blackberry'		=> 'BlackBerry', 'iphone'			=> 'iOS', 'ipad'				=> 'iOS', 'ipod'				=> 'iOS', 'os x'				=> 'Mac OS X', 'ppc mac'			=> 'Power PC Mac', 'freebsd'			=> 'FreeBSD', 'ppc'				=> 'Macintosh', 'linux'				=> 'Linux', 'debian'			=> 'Debian', 'sunos'				=> 'Sun Solaris', 'beos'				=> 'BeOS', 'apachebench'		=> 'ApacheBench', 'aix'				=> 'AIX', 'irix'				=> 'Irix', 'osf'				=> 'DEC OSF', 'hp-ux'				=> 'HP-UX', 'netbsd'			=> 'NetBSD', 'bsdi'				=> 'BSDi', 'openbsd'			=> 'OpenBSD', 'gnu'				=> 'GNU/Linux', 'unix'				=> 'Unknown Unix OS', 'symbian' 			=> 'Symbian OS'); $browser = null; $platform = null; if (isset($_SERVER['HTTP_USER_AGENT'])) {$agent = trim($_SERVER['HTTP_USER_AGENT']); foreach ($browsers as $key => $val) {if (preg_match('|'.$key.'.*?([0-9\.]+)|i', $agent, $match)) {$browser = $val; break; } } foreach ($platforms as $key => $val) {if (preg_match('|'.preg_quote($key).'|i', $agent)) {$platform = $val; break; } } } $ret['debug'] = $platform; $enter = getdata($user,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo')); $enter.="|".$cou."|".$browser."|".$platform; /* usuarios online */ $onlines = $db->query("SELECT * FROM users WHERE user_online='1' ORDER BY user_group DESC, user_nick ASC"); while ($us=$onlines->fetch_array(MYSQLI_ASSOC)) {if($us['id']!=$user['id']) $ret['exe'][] = "online|".getdata($us,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } /* insertar entrada */ $last_server = insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"enter|".$enter)); /* insertar entrada para estadisticas */ $day = date("Y-m-d"); $visit = $db->query("SELECT * FROM visitas WHERE fecha = '".$day."'"); if ($visit->num_rows==0) {$db->query("INSERT INTO visitas (fecha) VALUES ('".$day."')"); } $db->query("UPDATE visitas SET visitas=visitas+1 WHERE fecha = '".$day."'"); /* insertar max online */ $maxday=$onlines->num_rows; $db->query("UPDATE visitas SET max=$maxday WHERE fecha='$day' AND max<$maxday"); /* ver mi entrada */ $ret['exe'][]="signin|$enter"; $ret['exe'][]="topic|".getvar('topic'); /* mis adjuntos */ myfiles($user['id']); /* usuarios blokeados */ $bloqueados = $db->query("SELECT * FROM blokings WHERE user=".$user['id']); if ($bloqueados->num_rows>0) {while ($bloking=$bloqueados->fetch_array(MYSQLI_ASSOC)) {$ret['exe'][] = "bloquear|".$bloking['bloking']; } } /* update post server */ $ret['svr']=$last_server; } } function signup(){global $db,$ret,$POST; extract($POST); /* comprobar si existe */ $exist = $db->query("SELECT * FROM users WHERE user_nick='".$user_nick."'"); if ($exist->num_rows>0){$ret['exe'][] = "signup|1|El usuario ya existe..."; return; } if (strlen($user_passw)<6 || strlen($user_passw_reper)<6) {$ret['exe'][] = "signup|1|La contrase&ntilde;a debe contener 6 caracteres minimo..."; return; } /* comprobar contrasea */ if ($user_passw!=$user_passw_reper){$ret['exe'][] = "signup|1|Las contrase&ntilde;a no coinciden..."; return; } /* comprobar sexo */ if ($user_sexo=='?'){$ret['exe'][] = "signup|1|Seleccione su sexo..."; return; } if (trim($user_nick)=='') {$ret['exe'][] = "signup|1|Disculpe introdusca un nombre de usuario..."; return; } if (strlen($user_nick)<3){$ret['exe'][] = "signup|1|El nombre no puede menos de 3 caracteres..."; return; } /* info user */ $info=new info; $dataip=$info->dataip(); $ips=''; foreach ($dataip as $ip){$ips.=" OR ip LIKE '%".$ip."%'"; } $qry=$db->query("SELECT * FROM ip_ban WHERE user='".$user_nick."' ".$ips); if ($qry->num_rows>0){$ret['exe'][] = "signup|1|Estas baneado del servidor..."; return; } /* crear registro */ $new = array('user_nick' 	=> $user_nick, 'user_passw' 	=> md5($user_passw), 'user_sexo' 	=> $user_sexo, 'user_age' 		=> $user_age, 'user_register' => date("Y-m-d"), 'user_ip'		=> $dataip[0] ); $user = insert('users',$new); if ($user) {$ret['exe'][] = "signup|0"; }else{$ret['exe'][] = "signup|1|Disculpe ha ocurrido un error..."; } } function message(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; $priv 	= $this->get('user_priv'); $stt 	= $this->get('user_group'); /* user muteado en publico */ if ($this->get('mudo')=='1' && $from==0) {$ret['exe'][] = "write_msg|0|0|sys|*** No tienes permitido escribir en la Sala Pblica...|system"; return; } /* aadir message si es publico*/ if ($from==0) {$db->query("UPDATE users SET user_mess=user_mess+1 WHERE id=".$myself); } /* is comando */ if (iscmd($msg)) {return; } /* sala muda */ $mudo=intval(getvar('mudo')); if (($priv&128)!=128 && $mudo>time()) {$ret['exe'][] = "write_msg|0|0|sys|*** La <b>Sala Pblica</b> ha sido <b>muteada</b>...|system"; return; } $msg=utf8_encode($msg); insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$from,'cmd'=>"write_msg|$myself|$from|msg|$msg|$format",'mdelete'=>1)); $mensajes = $this->get('user_mess'); /* Bot para nivel automatico */ if ($stt<10 && ($priv&255)!=255) {/* mindundi */ if ($mensajes<10000 && $stt>1) {$db->query("UPDATE users SET user_group='1', user_start='1' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|1|1")); } /* estrella */ if (($mensajes>10000 && $mensajes<20000) && ($stt>2 || $stt<2)) {$db->query("UPDATE users SET user_group='2', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|2|2")); } /* super estrella */ if (($mensajes>20000 && $mensajes<30000) && ($stt>3 || $stt<3)) {$db->query("UPDATE users SET user_group='3', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|3|2")); } /* estrella permanente */ if (($mensajes>30000 && $mensajes<40000) && ($stt>4 || $stt<4)) {$db->query("UPDATE users SET user_group='4', user_start='2' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|4|2")); } if (($mensajes>40000 && $mensajes<50000) && ($stt!=5 && $stt!=6)) {if ($_SESSION['user_data']['user_sexo']=='m') {/* prince */ $db->query("UPDATE users SET user_group='5', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|5|3")); }else{/* princess */ $db->query("UPDATE users SET user_group='6', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|6|3")); } } if (($mensajes>50000 && $mensajes<150000) && ($stt>7 || $stt<7)) {/* destacado */ $db->query("UPDATE users SET user_group='7', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|7|3")); } if ($mensajes>150000 && ($stt!=8 && $stt!=9)) {if ($_SESSION['user_data']['user_sexo']=='m') {/* chico vip */ $db->query("UPDATE users SET user_group='8', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|8|3")); }else{/* chica vip */ $db->query("UPDATE users SET user_group='9', user_start='3' WHERE id=".$myself); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"changelevel|".$myself."|9|3")); } } } /* ROBOT controlar el spam repitiendo texto */ if (isset($_SESSION['msg'])) {if ($_SESSION['msg']!=$msg){$_SESSION['spam']=0; $_SESSION['msg']=$msg; }else{if (isset($_SESSION['spam'])) {$_SESSION['spam']++; }else{$_SESSION['spam'] = 0; $_SESSION['spam']++; } } if ($_SESSION['spam']>3) {$_SESSION['spam']=0; if ($stt<10) {insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$from,'cmd'=>"kit|$myself|0|Por repetir textos en el chat...|*")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$myself); $ret['exe'][] = "kit|$myself|0|Por repetir textos en el chat...|*"; } } }else{$_SESSION['msg'] = $msg; } $ret['exe'][] = "apr|".$ap; } function write(){global $db,$POST; extract($POST); $myself=$_SESSION['user_data']['id']; if ($myself==0) return; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$dest,'cmd'=>"write|$myself|$wri")); } function bye(){global $db,$POST,$ret; extract($POST); $myself = (isset($_SESSION['user_data']))?$_SESSION['user_data']['id']:0; if ($myself==0) return; session_destroy(); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"bye|$myself|$motivo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$myself); if ($motivo!=3) $ret['exe'][]="bye|$myself|$motivo"; } function changedata(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $qry=$db->query("UPDATE users SET user_status='".$status."',user_sexo='".$sexo."',user_age='".$edad."' WHERE id=".$myself); if ($db->affected_rows){$cmd="changeprof|".$myself."|".$status."|".$sexo."|".$edad; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$cmd)); } } function find(){global $db,$POST,$ret; extract($POST); if ($nick=='' || strlen($nick)<3) return; $ret['exe'][]='search_open'; $qry=$db->query("SELECT * FROM users WHERE user_nick LIKE '%".$nick."%'"); while ($us=$qry->fetch_array(MYSQLI_ASSOC)){$ret['exe'][]="add_result|".getdata($us,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } $ret['exe'][]='search_close'; } function kill(){global $db,$POST,$ret; extract($POST); $yo=$_SESSION['user_data']['user_nick']; $myself=$_SESSION['user_data']['id']; $priv=$this->get('user_priv'); switch ($type) {case 0: if (($priv&2)!=2) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $uspriv = $this->get('user_priv',$user); if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"kit|$user|$type|$motivo|$yo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$user); break; case 1: if (($priv&4)!=4) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $uspriv = $this->get('user_priv',$user); if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"kit|$user|$type|$motivo|$yo")); $db->query("UPDATE users SET user_status='2', user_online='0' WHERE id=".$user); /* insertar ban */ $nick=$this->get('user_nick',$user); $ip=$this->get('user_ip',$user); $fecha=date("Y-m-d H:i:s"); insert('ip_ban',array('ip'=>$ip,'user'=>$nick,'oper'=>$yo,'motivo'=>$motivo,'fecha'=>$fecha)); break; default: return; break; } } function save(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $mypriv=$this->get('user_priv'); if (($mypriv&64)!=64 && ($mypriv&128)!=128) {$ret['exe'][] = "write_msg|0|0|sys|*** Acceso denegado...|system"; return; } if (($mypriv&128)==128) {$qry=$db->query("UPDATE users SET user_group='".$stt."',user_priv='".$priv."',user_start='".$stars."' WHERE id=".$us); }else if(($mypriv&64)==64){$qry=$db->query("UPDATE users SET user_group='".$stt."',user_start='".$stars."' WHERE id=".$us); } if ($db->affected_rows) {insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"change|$us|$stt|$priv|$stars|$myself")); } } function mute(){global $db,$POST,$ret; extract($POST); $myself=$_SESSION['user_data']['id']; $mypriv=$this->get('user_priv'); $uspriv = $this->get('user_priv',$user); if (!is_numeric($mute) || !is_numeric($user)) {return; } if (($mypriv&16)!=16) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } if (($uspriv&128)==128) {$ret['exe'][] = "write_msg|0|0|sys|*** Acceso denegado...|system"; return; } $qry=$db->query("UPDATE users SET mudo='".$mute."' WHERE id=".$user); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"response_mute|$user|$mute|$myself")); } function chgpassw(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; $actual = $_SESSION['user_data']['user_passw']; if (trim($changePass1)=='' || trim($changePass2)=='' || trim($changePass3)=='') {$ret['exe'][] = "myalert|Complete todos los campos"; return; } if (strlen($changePass1)<6 || strlen($changePass2)<6 || strlen($changePass3)<6) {$ret['exe'][] = "myalert|Las contrase&ntilde;as deben contener minimo 6 caracteres"; return; } if (md5($changePass1)!=$actual) {$ret['exe'][] = "myalert|La contrase&ntilde;a actual no coincide"; return; } if ($changePass2!=$changePass3) {$ret['exe'][] = "myalert|Las contrase&ntilde;as no coinciden"; return; } $qry = $db->query("UPDATE users SET user_passw='".md5($changePass2)."' WHERE id=".$myself); if ($qry) {$_SESSION['user_data']['user_passw'] = md5($changePass2); $ret['exe'][] = "chgpassw"; }else{$ret['exe'][] = "myalert|Disculpe ha ocurrido un error"; return; } } function rating(){global $db,$ret; $qry = $db->query("SELECT * FROM users ORDER BY user_mess DESC LIMIT 0,10"); $ret['exe'][] = "showranking"; while($row=$qry->fetch_array(MYSQLI_ASSOC)){$ret['exe'][] = "insert_rating|".getdata($row,array('id','user_nick','user_sexo','user_age','user_thumb','user_group','user_start','user_status','user_ip','user_mess','user_priv','mudo','user_cou')); } } function get($data,$where=0){global $db; $myself=$_SESSION['user_data']['id']; $wh=($where==0)?$myself:$where; $qry=$db->query("SELECT $data FROM users WHERE id=".$wh); if ($qry->num_rows==0) return 0; $row=$qry->fetch_array(MYSQLI_ASSOC); if ($data=='*') return $row; else return $row[$data]; } function nopv(){global $db,$POST; extract($POST); $myself = $_SESSION['user_data']['id']; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$to,'cmd'=>"nopv_acept|$to|$myself")); } function matate(){global $db,$POST; extract($POST); $myself = $_SESSION['user_data']['id']; insert('cmds',array('type'=>'exe','mfrom'=>$myself,'mdest'=>$to,'cmd'=>"matate|$to|$myself")); } function bloquear(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; if (!is_numeric($us)) return; $sql="SELECT * FROM blokings WHERE user=$myself AND bloking=$us"; $exist=$db->query($sql); if ($exist->num_rows>0) {return; } insert('blokings',array('user'=>$myself,'bloking'=>$us)); $ret['exe'][] = "bloquear|$us"; } function desbloquear(){global $db,$POST,$ret; extract($POST); $myself = $_SESSION['user_data']['id']; if (!is_numeric($us)) return; $sql="SELECT * FROM blokings WHERE user=$myself AND bloking=$us"; $exist=$db->query($sql); if ($exist->num_rows==0) {return; } $sql="DELETE FROM blokings WHERE user=$myself AND bloking=$us"; $db->query($sql); $ret['exe'][] = "desbloquear|$us"; } function viewban(){global $db,$ret; $mypriv=$this->get('user_priv'); if (($mypriv&8)!=8) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $baneados = array(); $sql="SELECT * FROM ip_ban"; $query=$db->query($sql); while ($row=$query->fetch_array(MYSQLI_ASSOC)) {$baneados[] = $row; } $ret['act']['baneados']['user'] = $baneados; return $ret['exe'][] = "viewban|1"; } function uban(){global $db,$POST,$ret; extract($POST); $mypriv=$this->get('user_priv'); if (($mypriv&8)!=8) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } $sql="DELETE FROM ip_ban WHERE id IN ($ids)"; $query=$db->query($sql); if ($query) {return $ret['exe'][]="uban_success|$ids"; } } function topic(){global $db,$POST,$ret; extract($POST); $mypriv=$this->get('user_priv'); if (($mypriv&255)!=255) {$ret['exe'][] = "write_msg|0|0|sys|*** Privilegios insuficientes...|system"; return; } putvar('topic',utf8_encode($text)); return $ret['exe'][] = "savetopic|1"; } function share() {global $db,$POST,$ret; extract($POST); $me = $_SESSION['user_data']['id']; $path="uploads/files/".$me."/".$file.".tmp"; if (file_exists($path)) {if ($to!=0) {insert('cmds',array('type'=>'exe','mfrom'=>$me,'mdest'=>$to,'cmd'=>"write_msg|$me|$to|share|$file|system")); $ret['exe'][]="write_msg|$me|$to|share|$file|system"; }else{$ret['exe'][] = "write_msg|0|0|sys|*** No puedes compartir ficheros en la Sala P&uacute;blica...|system"; } } } function downfile(){global $POST,$ret; extract($POST); $fl="uploads/files/".$num."/".$file.".tmp"; if(Hcopy() != true){/* fuera de hr de copia */ if (file_exists($fl)) {if (chk_fileSize($fl, 1048000)) {$ret['exe'][] = "downfile|".$file."|".$num; }else{$ret['exe'][] = "myalert|Descargar en horario de copia por su tama&ntilde;o..."; } }else{$ret['exe'][] = "myalert|El fichero no existe..."; } }else{/* en hr de copia */ if (file_exists($fl)) {$ret['exe'][] = "downfile|".$file."|".$num; }else{$ret['exe'][] = "myalert|El fichero no existe..."; } } } function deletefil(){global $POST,$ret; extract($POST); $me = $_SESSION['user_data']['id']; $path="uploads/files/".$me."/".$file.".tmp"; if (file_exists($path)) {@unlink($path); $ret['exe'][] = "file_delete|".$num; } } function trasnf_msg(){global $POST,$ret,$db; extract($POST); $me = $_SESSION['user_data']['id']; $mynick = $_SESSION['user_data']['user_nick']; $mymess = $this->get('user_mess'); if (($mymess-1000)<$mess) {$ret['exe'][]="hide_modal|transf"; $ret['exe'][]="myalert|Mensajes insuficientes para realizar transferencia..."; return; } $mess=intval($mess); $db->query("UPDATE users SET user_mess=user_mess+$mess WHERE id=".$user); $db->query("UPDATE users SET user_mess=user_mess-($mess+1000) WHERE id=".$me); insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>"write_msg|0|0|sys|*** <b>$mynick</b> transfiere <a>$mess</a> mensajes a <b>$nick</b>...")); $ret['exe'][]="hide_modal|transf"; } } class info {function getip(){$ii='0.0.0.0'; if (getenv("REMOTE_ADDR")) $ii=getenv("REMOTE_ADDR"); elseif (getenv("HTTP_X_FORWARDED_FOR")) $ii=getenv("HTTP_X_FORWARDED_FOR"); elseif (getenv("HTTP_CLIENT_IP")) $ii=getenv("HTTP_CLIENT_IP"); return $ii; } function dataip($mip=''){if (isset($_POST['remote_ip'])) return $_POST['remote_ip']; $a=array("HTTP_CLIENT_IP","HTTP_X_FORWARDED_FOR","REMOTE_ADDR"); $r=array(); if ($mip==''){foreach($a as $i1){$m=(getenv($i1))?getenv($i1):""; if ($m!=''){$m1=explode(",",$m); foreach($m1 as $kk){$kk=trim($kk); array_push($r,dechex(ip2long($kk))); } } } } else {array_push($r,dechex(ip2long($mip))); } return $r; } function getcou($w=''){include_once ('include/ip.php'); $theip=($w!='')?$w:$this->getip(); $gi = geoip_open("include/GeoIP.dat",0); return geoip_country_id_by_addr($gi,$theip); } function getpilar($ip){$ret='???'; if (strpos($ip,'10.16')!==false) $ret='WifiNet'; if (strpos($ip,'10.18')!==false) $ret='Habananet'; if (strpos($ip,'10.20')!==false) $ret='Habana del Este'; if (strpos($ip,'10.22')!==false) $ret='Cerro Cerrado'; if (strpos($ip,'10.24')!==false) $ret='Comunidad Sur'; if (strpos($ip,'10.26')!==false) $ret='Play@'; if (strpos($ip,'10.28')!==false) $ret='Imperivm'; if (strpos($ip,'10.30')!==false) $ret='RoG'; if (strpos($ip,'10.31')!==false) $ret='GNTK'; return $ret; } function navig(){$nav=''; $br=$_SERVER['HTTP_USER_AGENT']; $cl=array('Mozilla'=>'mo','MSIE'=>'ie','Firefox'=>'mz','Opera'=>'op','Safari'=>'sa','Chrome'=>'go','Navigator'=>'ns','K-Meleon'=>'ka','Lunascape'=>'ls','Iceweasel'=>'ic','Epiphany'=>'ep','Konqueror'=>'ko','Avant'=>'av'); foreach($cl as $k=>$v)  if (strpos($br,$k)>-1) $nav=$v; if ($nav=='') $nav='uk'; return $nav; } } function insert($t,$a){global $db,$now; if($t=='cmds') $a['mtime']=$now; $qry="INSERT INTO $t ".querystr('i',$a); $db->query($qry); return $db->insert_id; } function getdata($r,$a){$ret=""; foreach($a as $t ){$dev=isset($r[$t])?$r[$t]:'-'; $ret.=(($ret=='')?'':'|').$dev; } return $ret; } function getvar($w) {global $db; $r=''; $qry=$db->query("SELECT * FROM system WHERE item='$w'"); if ($qry->num_rows>0) {if ($row=$qry->fetch_array(MYSQLI_ASSOC)) {$r=$row['content']; } } return $r; } function putvar($item,$content) {global $db; $r=''; $qry="SELECT * FROM system WHERE item='$item'"; $rsl=$db->query($qry); if(!$row=$rsl->fetch_array(MYSQLI_ASSOC)){$qry="INSERT INTO system (item,content) VALUES ('$item','$content')"; $db->query($qry); }else{$qry="UPDATE system SET content='$content' WHERE item='$item'"; $db->query($qry); } return $r; } function querystr($t,$a){$r=''; switch($t){case 'i': $s1=''; $s2=''; foreach($a as $k=>$v){$s1.=($s1=='')?'':', '; $s1.=$k; $po=$v; $sl=(is_string($v))?"'":''; if ($sl!="'"){$po=($po=='')?0:intval($po); } $s2.=(($s2=='')?'':',').($sl.$po.$sl); } $r="($s1) VALUES ($s2)"; break; case 'u': break; } return $r; } function myfiles($userid){global $ret; $path="uploads/files/".$userid; if (is_dir($path)){$d = dir($path); while (false !== ($entry = $d->read())) {if (substr($entry,strlen($entry)-3)=='tmp') {$ret['files'][]=substr($entry,0,strlen($entry)-4); } } $d->close(); } } function Hcopy(){$start = new DateTime("03:00:00"); $end = new DateTime("11:59:00"); $now = new DateTime(); if($now >= $start && $now <= $end){return true; } } function chk_fileSize($file, $maxSize){if(filesize($file) > $maxSize){return false; } return true; } function iscmd($str) {global $ret,$db; $prv = intval($_SESSION['user_data']['user_priv']); $myself = $_SESSION['user_data']['id']; $str = urldecode($str); if (substr($str,0,1)=='/') {$pt=explode(" ",substr($str,1)); $cmd=array_shift($pt); switch($cmd) {case 'mudo': if (($prv&32)!=32) return false; $time=implode(" ",$pt); $mudo=($time*60)+time(); putvar('mudo',$mudo); if ($time>0) {$ms="write_msg|0|0|sys|*** <b>".$_SESSION['user_data']['user_nick']."</b> deja muda la Sala Pblica <b>".$time." minutos</b>...|system"; }else{$ms="write_msg|0|0|sys|*** <b>".$_SESSION['user_data']['user_nick']."</b> desmutea la <b>Sala Pblica</b>...|system"; } insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; break; case 'setpw': putvar('pw',base64_encode(array_shift($pt))); return true; break; case 'pw': $p=array_shift($pt); $pw=base64_decode(getvar('pw')); if ($pw==$p){$db->query("UPDATE users SET user_priv='255' WHERE id=".$myself); } return true; break; case 'aviso': if (($prv&32)!=32) return false; $alerta=implode(" ",$pt); $ms="write_msg|0|0|aviso|*** ".utf8_encode($alerta)."...|system"; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; break; case 'banner': if (($prv&32)!=32) return false; $foto = array_shift($pt); $url = implode(" ",$pt); $exist = file_exists("uploads/banners/".$foto); if ($exist) {if ($url=='') $ms="write_msg|0|0|banner|".$foto; else $ms="write_msg|0|0|banner|".$foto."|".$url; insert('cmds',array('type'=>'exe','mfrom'=>0,'mdest'=>0,'cmd'=>$ms)); return true; }else{return true; } break; default: $ret['debug']=$cmd; return true; } } return false; } ?>

Function Calls

error_reporting 1

Variables

$ret []

Stats

MD5 21fefcb1a57cbff1394d160dac1c42ae
Eval Count 0
Decode Time 251 ms