[Release] SMS Admin 1.0 Decoded

Elven`

New Member
Joined
Jul 12, 2009
Messages
337
Reaction score
31
Тъй като дълго обмисля дали да го релийзна или не,и стигнах до извода че Zending is Ass,и това да криптира човек със 2 алгоритма и едно Encryption, е глуво.

Ето го и чистия код на index.php:
PHP:
<?php
session_start();

define("IN_SMSADMINS", 1);

$crypted_code=md5("50b9e23596aa9bcefc28695c72b7621d");

$script_expire_on = strtotime("01.03.2010");
$warning_period = strtotime("25.02.2010");

$warn_head = '
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=windows-1251">
		<title>SMSAdmins by hateYou @ amxmodxbg.org</title>
		<style type="text/css"> 
			body {
				background-color: #808080;
				color: white;
			}
			
			a {
				color:black;
				font-weight:bold
			}
		</style>
	</head>
	<body>
		<center> <br><br><br><br><br> <br><br><br><br><br>';

$warning_for_expire = '
			Срокът за използване на SMSAdmins изтича в края на този месец.<br>
			Ако искате да продължите да ползвате системата, моля изтеглете я на ново от <a href="http://amxmodxbg.org/forum/viewtopic.php?t=14906" title="AMX Mod X България: SMSAdmins от hateYou">http://amxmodxbg.org/forum/viewtopic.php?t=14906</a>.<br><br>
			За въпроси и контакти: <i>hateyou @ amxmodxbg.org</i>';

$warn_footer = '
		</center>
	</body>
</html>';


echo"\n\n\n\n<!--
 /*
 ****************************************************************
 *
 *			SMSAdmins System v1.0
 *
 * Author: hateYou @ amxmodxbg.org
 * More info at: http://amxmodxbg.org/forum/viewtopic.php?t=14906
 *
 ****************************************************************
 */
-->\n\n\n\n";

if(time() < $script_expire_on && defined("IN_SMSADMINS") ) { // && md5(strtolower(IN_SMSADMINS)) == $crypted_code
	
define('SMSAdmins', 1);

include("include/config.php");
include("include/style.php");

function clean($str) { return htmlspecialchars(trim(stripslashes($str))); }

if(!clean($_GET['p']) || clean($_GET['p']) == 'logout') ob_start();

define(g_error, "Couldn't connect to database");

function dbc() {
	global $g_dbhost, $g_dbuser, $g_dbpass, $g_dbname;
	
   $result = @mysql_connect($g_dbhost, $g_dbuser, $g_dbpass); 
   if (!$result)
      return false;
   if (!@mysql_select_db($g_dbname))
      return false;
   return $result;

}

function isValid($type,$var) { 
 $valid = false; 
 switch ($type) { 

  case "num": 
   if (ereg("^[0-9]+$",$var)) { 
    $valid = true; 
   } 
   break;
      
  case "captcha": 
   if (ereg("^([a-z0-9]{5})$",$var)) { 
    $valid = true; 
   } 
   break;
 } 
 return $valid; 
}

function is_included_in_smsadmins_system() {
	if(defined('SMSAdmins')) {
		return 1;
	} else {
		return 0;
	}
}

function security_num($numofletters = 4, $encode = "0") {
  $code="";
  for($i=0;$i<$numofletters;$i++) $code.=strtolower(chr(rand(65,90)));
  if($encode == "1") {
	return md5($code);
  } else {
  	return $code;
  }
}

function is_user_logged_in() {
	if (!clean($_SESSION['sa_data'])) {
		return false;
	} else {
		return true;
	}
}

function show_servers() {
	global $g_ServerName;
	echo"\n		<select name=\"server_num\" style=\"width:310px; margin-left: 5px;\">\n";
	echo "		<option value=\"0\">Изберете сървър за управление</option>";
	for( $i = 0; $i < count($g_ServerName); $i++) {
		$ni=$i+1;
		echo "\n			<option value=\"$ni\">".$g_ServerName[$i+1]."</option>";
	}
	echo"\n		</select>";
}

function add_new_sms_field($num) {
	return " <tr>
  <td>SMS Код #$num:</td> <td><input type=\"text\" name=\"smscode[]\"></td>
 </tr>\n";
}

function show_sms_fields() {
	global $g_sms_amount;
	
	$how_much_sms = clean($g_sms_amount);
	if($how_much_sms < 100)  {
		for( $i = 0; $i < $how_much_sms; $i++) {
			echo add_new_sms_field($i+1);
		}
	} else {
		echo add_new_sms_field(1);
	}
}

function msg($type, $msg) {
	switch ($type) {
		case "error": echo "\n<b>ГРЕШКА:</b> $msg"; break;
		case "notice": echo "\n<b>Съобщение:</b> $msg"; break;
	}
		
}

function show_x3() {
	global $g_x3, $g_x3_Description, $g_x3_Flags, $g_flags, $g_status, $g_server;
	
	for ($i=0; $i <= count($g_x3)-1; $i++) {
			$g_x3[$i] = clean($g_x3[$i]); 	$g_x3_Description[$i] = clean($g_x3_Description[$i]); 	$g_x3_Flags[$i] = clean($g_x3_Flags[$i]);
			
			if(strstr($g_flags, $g_x3_Flags[$i]) || $g_status == "1" && $i==0) {
				$disable = " disabled";
			} else {
				$disable = "";
			}
			
			if($i == 0) { $star = " <font style=\"color:red\">*</font>"; } else { $star = ""; }
		
			$title = $g_x3[$i].$star;
			$description = $g_x3_Description[$i];
			$flag = $g_x3_Flags[$i];
			
			show_all_x3($title, $description, $flag, $disable);
			echo"\n";
	}
}

function mobio_checkcode($g_servID, $code, $debug=0) {

	$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1");

	$ret = 0;
	if($res_lines) {

		if(strstr("PAYBG=OK", $res_lines[0])) {
			$ret = 1;
		}else{
			if($debug)
				echo $line."\n";
		}
	}else{
		if($debug)
			echo "Unable to connect to mobio.bg server.\n";
		$ret = 0;
	}

	return $ret;
}

function mobio_checkcode_f($g_servID, $code, $debug=0) {

	$ret = 0;

	$mobio_socket = fsockopen("www.mobio.bg", 80);

	if(!$mobio_socket) {
		if($debug)
			echo "Unable to connect to mobio.bg server\n";
		$ret = 0;
	}else{
		$request .= "GET http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1 HTTP/1.0\r\n\r\n";
		fwrite($mobio_socket, $request);
		$result = fread($mobio_socket, 255);
		if(strstr($result, "PAYBG=OK")) {
			$ret = 1;
		}else{
			$ret = 0;
			if($debug)
				echo strstr($result, "PAYBG");
		}
		fclose($mobio_socket);
	}

	return $ret;
}

function valid_sms_codes() {
	global $g_working_mode, $g_demo_codes, $g_wisdom_prefix, $g_servID;
	
  	switch ($g_working_mode) {
  		case "wisdom":
  		for( $i = 0; $i < count($_POST['smscode']); $i++){ 
  			if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
  			$smscode=clean($_POST['smscode'][$i]);
  			$tmp = file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&user_ip='.$_SERVER['REMOTE_ADDR']);
			$tmp = unserialize($tmp);

			if (preg_match('/^Invalid prefix/i', $tmp['error'])) {
				echo "Не сте въвели валиден префикс !"; sf(); die;
			}
			
			if ($tmp['result'] == TRUE) {
				file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&mark_as_used=1&user_ip='.$_SERVER['REMOTE_ADDR']);
				$smscodes[]=$smscode;
  				if($i+1 == count($_POST['smscode'])) { return 1; }
			} else {
  				echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
			}
  		}
  		break;
  		
  		case "mobio_fopen":
  		for( $i = 0; $i < count($_POST['smscode']); $i++){ 
  			if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
  			$smscode=clean($_POST['smscode'][$i]);
  			if(mobio_checkcode_f($g_servID, $smscode, 0) == 1) {
  				$smscodes[]=$smscode;
  				if($i+1 == count($_POST['smscode'])) { return 1; }
  			} else {
  				echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
  			}
  		}
  		break;
  		
  		case "mobio_fsockopen":
  		for( $i = 0; $i < count($_POST['smscode']); $i++){ 
  			if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
  			$smscode=clean($_POST['smscode'][$i]);
  			if(mobio_checkcode($g_servID, $smscode, 1) == 1) {
  				$smscodes[]=$smscode;
  				if($i+1 == count($_POST['smscode'])) { return 1; }
  			} else {
  				echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
  			}
  		}
  		break;
  		
  		case "demo":
  		for( $i = 0; $i < count($_POST['smscode']); $i++){ 
  			if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
  			$smscode=clean($_POST['smscode'][$i]);
  			if($smscode == $g_demo_codes[$i]) {		
  				$smscodes[]=$smscode;
  				if($i+1 == count($_POST['smscode'])) { return 1; }
  			} else {
  				echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
  			}
  		}
  		break;
  	}
}

function refresh($sec = 1, $url = "index.php") {
	echo '<meta http-equiv="refresh" content="'.$sec.';url='.$url.'">';
}

function convert_date($expire_date) {
	$expire_date = clean($expire_date);
	$bg=array("ден","дни","седмица","седмици","месец","месеца","година","години");
	$en=array("day","days","week","weeks","month","months","year","years");
	$expire_date=str_replace($bg,$en, $expire_date);
	$expire_date=strtotime("+ $expire_date");
	
	return $expire_date;
}

function calculate_admin_expire($g_user_expire_date) {
	$now = $g_user_expire_date; 
	$then = strtotime ("now"); 
	$difference = $now - $then ; 
	$num = $difference/86400; 
	$days = intval($num); 
	$num2 = ($num - $days)*24; 
	$hours = intval($num2); 
	$num3 = ($num2 - $hours)*60; 
	$mins = intval($num3); 
	$num4 = ($num3 - $mins)*60; 
	$secs = intval($num4);
	
	return "$days дни, $hours часа, $mins минути и $secs секунди";
}

function show_date($date) {
	return date("d.m.Y - H:i:s", $date);
}

function admin_list_mark_functions() {
	global $g_user_level, $g_tbname;
	
	if($g_user_level == "1") {
		if(isset($_POST['deactivate'])) {
			for( $i = 0; $i < count($_POST['mark']); $i++){ 
				if($_POST['mark'][$i] != NULL){ 
					$admin_id=$_POST['mark'][$i];
				    $delete=mysql_query("UPDATE `$g_tbname` set `expire_date`='0', `status` = '0' WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
				}
			}
			refresh(1, "?p=adminlist");
		} elseif(isset($_POST['delete'])) {
			for( $i = 0; $i < count($_POST['mark']); $i++){ 
				if($_POST['mark'][$i] != NULL){ 
					$admin_id=$_POST['mark'][$i];
				    $delete=mysql_query("DELETE FROM `$g_tbname` WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
				}
			}
			refresh(1, "?p=adminlist");
		}
	}
}

function is_this_first_registration() {
	global $g_tbname;
	
	dbc();
	$checking = mysql_query("SELECT `id` FROM `$g_tbname`") or die(g_error);
	if(mysql_num_rows($checking)>0) {
		return 0;
	} else {
		return 1;
	}
}


if (!clean($_SESSION['sa_data'])) {
	$_SESSION['sa_data'] = 0;
} else {
	$g_userid = clean($_SESSION['sa_data'][0]);
	$g_nickname = clean($_SESSION['sa_data'][1]);
	$g_flags = clean($_SESSION['sa_data'][2]);
	$g_server = clean($_SESSION['sa_data'][3]);
	$g_user_expire_date = clean($_SESSION['sa_data'][4]);
	$g_status = clean($_SESSION['sa_data'][5]);
	$g_user_level = clean($_SESSION['sa_data'][6]);
}

sh();

if($g_system_is_on == 1) {
	$page = clean($_GET['p']);

	switch($page) {
		case "config":
			echo ($g_user_level == 1 && $smsadmins_view_config_remotely == "1") ? highlight_file("include/config.php") : msg("error","Не можете да видите конфигурацията поради настройките на системата !");
		break;
		
		case "adminlist":
			include("include/pages/adminlist.php");
		break;
		
		case "logout":
			session_destroy();
			msg("notice", "Вие успешно излязохте от вашия акаунт !");
			refresh();
			
		break;
	
		default:
			if(is_user_logged_in()) {
				dbc();
				
				if($g_user_level == 0) {
					if(isValid("num", $g_userid)) {
						$fetch_data = mysql_query("SELECT * FROM `$g_tbname` WHERE `id` = '$g_userid'") or die(g_error);
						
						if(mysql_num_rows($fetch_data) > 0) {
							/*
							while ($row = mysql_fetch_array($fetch_data)) {
								extract($row);
								
								echo "Zdravei, ".$player;
							}
							*/
							
							if(isset($_POST['update_rights']))
							{
								$new_flag = $_POST['flag'];
								if($new_flag != null){								
									
									//if ($new_flag != "@" && $g_status == "0") {
									if ($g_compulsory_flag == 1 && !strstr($new_flag, "@") && $g_status == "0") {
										msg("error", "Трябва първо да изберете \"".$g_x3[0]."\" за да можете да ъпдейтнете вашите права по-нататък !");
									} else {							
										if (valid_sms_codes() == 1) {
											$convert_expire = convert_date($g_expire_date);
											
											if($g_status == "0") {
												$sql_convert_expire = ", `expire_date` = '$convert_expire'";
											} else {
												$sql_convert_expire = "";
											}
											//if($new_flag == "@") {
											if(strstr($new_flag, "@")) {
												//$new_flag = "";
												$new_flag = explode("@", $new_flag);
												$new_flag = $new_flag[1];
											}
											
											@include("include/pages/afterreg.php");
											
											$deadline = ($g_status == "0") ? "			   $afterreg_text2" : "";
											
											$update_rights = mysql_query("UPDATE `$g_tbname` SET `flags` = '$g_flags$new_flag', `status` = '1' $sql_convert_expire WHERE `id` = '$g_userid'") or die(g_error);
											$_SESSION['sa_data'][5] = "1";
											$_SESSION['sa_data'][2] = "$g_flags$new_flag";
											
											if($update_rights) {
												echo $afterreg_text.$deadline;
												echo "<br><hr>
			   <i>Тази система е разработена и поддържана от hateYou @ amxmodxbg.org</i>";
											}
											
										} else {
											msg("error", "Въвели сте невалидни SMS кодове !<br>Системата е писана от hateYou @ amxmodxbg.org");
										}
									}
								} else {
									msg("error", "Не сте избрали никаква опция !");
								}
							} else {
								include("include/pages/index.php");
							}
							
						} else {
							msg("error", "Въвели сте грешни данни за login !");
							refresh();
						}
					} else {
						msg("error", "Не валидна сесия ! <br>Моля излезте от акаунта и влезте отново !");
					}
				} else {
					echo "Здравейте <b>$g_nickname</b> ! <br>Това е вашият административен потребител. <br>С него единствено можете да управлявате вашите потребители !";
				}

			} else {
				if(isset($_POST['login'])) {
					$username = clean($_POST['username']);
					$password = clean($_POST['password']);
					
					$server = $_POST['server_num'];
					
					$generated_captcha = $_POST['captcha'];
					$security_code = clean($_POST['security_code']);
					
					if ($security_code == $generated_captcha) {
						dbc();
						$check = mysql_query("SELECT `id`, `player`, `flags`, `server`, `expire_date`, `status`, `user_level` FROM `$g_tbname` WHERE `player` = '$username' AND `password` = '$password' AND `server` = '$server'") or die(g_error);
						if(mysql_num_rows($check) > 0) {
							$row = mysql_fetch_row($check);
							
							if($row[4] < time()) { $new_sql_query = ", `status` = '0'"; } else { $new_sql_query = ""; }
							
							$_SESSION['sa_data'] = $row;
							if($row[4] < time()) { $_SESSION['sa_data'][5] = "0"; }
						}

						msg("notice", ".. пренасочване ..");
						refresh();
						
					} else {
						msg("error", "Въведения код за визуално потвърждение грешен !");
						refresh(2);
					}
					
				} else if(isset($_POST['register'])) {
					$username = clean($_POST['username']);
					$password = clean($_POST['password']);
					
					$server = $_POST['server_num'];
					
					$generated_captcha = $_POST['captcha'];
					$security_code = clean($_POST['security_code']);
					$time = time();
					
					if(is_this_first_registration()) {
						$_server_if_check_value = "1";
						$_userlevel = "1";
					} else {
						$_server_if_check_value = "0";
						$_userlevel = "0";
					}
					
					if ($security_code == $generated_captcha && $server != "$_server_if_check_value") {
						if(!in_array($username, $g_reserved_nicks)) {
							if(strlen($username) > 3) {
								dbc();
								$now = time();
								if(mysql_num_rows(mysql_query("SELECT `id` FROM `$g_tbname` WHERE `server` = '$server' AND `expire_date` > '$now'")) <= $g_max_admins_per_server) {
									$check_data = mysql_query("SELECT `player` FROM `$g_tbname` WHERE `player` = '$username' AND `server` = '$server'") or die(g_error);
									if(mysql_num_rows($check_data) == 0) {
										$insert_data = mysql_query("INSERT INTO `$g_tbname` (`player`, `password`, `flags`, `server`, `time_on_reg`, `expire_date`, `status`, `user_level`) VALUES('$username', '$password', '', '$server', '$time', '0', '0','$_userlevel');") or die(mysql_error());
										
										switch ($g_notify) {
											case "1": @mail($g_administrator_email, $g_email_subject, $g_email_message); break;
											case "2": @mail($g_administrator_gsm, $g_email_subject, $g_email_message); break;
											default:
										}
										
										msg("notice", "Благодарим Ви за регистрацията ! <br>
											Можете сега да си влезете в акаунта");
										refresh(2);
									} else {
										msg("error", "Този никнейм, вече е бил регистриран за в този сървър !");
										refresh(2);
									}
								} else {
									msg("error", "За в момента не можем да приемеме повече регистрации за сървъра, който сте избрали !");
									refresh(2);
								}
							} else {
								msg("error", "Вашият никнейм трябва да е по-дълъг от 3 символа !");
							}
						} else {
							msg("error", "Потребителското име е запазено от администратора ! <br> Моля изберете друго.");
							refresh(2);
						}
						
					} else {
						msg("error", "Въведения код за визуално потвърждение е грешен или не сте избрали сървър, за където да си регистрирате потребителското име !");
						refresh(2);
					}
				} else {
					include("include/pages/register.php");
				}
			}
			
	}
} else {
	msg("notice", "За в момента не приемаме никакви регистрации.
  	<br>Моля опитайте по-късно.");
}

sf();

  if(time() >= $warning_period && (time() <= $script_expire_on) || (time() >= $script_expire_on)) { echo $warning_for_expire; }
} else {
	if(time() >= $script_expire_on) {
		echo $warn_head.$warning_for_expire.$warn_footer;
	} else {
		echo"$warn_head \n<b>Грешка:</b> Hacking attempt <br><br><i>SMSAdmins v1.0 by: hateYou @ amxmodxbg.org</i> \n $warn_footer";
	}
}

// echo "<center>Сайта използва SMSAdmins v1.0 от hateYou @ <a href=\"http://amxmodxbg.org\" title=\"AMX Mod X BG - Официален сайт за България\">amxmodxbg.org</a></center>";

echo"\n\n\n\n<!--
 /*
 ****************************************************************
 *
 *			SMSAdmins System v1.0
 *
 * Автор: hateYou @ amxmodxbg.org
 * Информация: http://amxmodxbg.org/forum/viewtopic.php?t=14906
 *
 ****************************************************************
 */
-->\n\n\n\n";

?>
За да махнете валидация за времето просто сменяте
PHP:
$script_expire_on = strtotime("01.03.2010");
$warning_period = strtotime("25.02.2010");
На някоя 2012,защото по натам може и да ни няма :D
+ файла Core.php не ви е нужен вече,той съдържаше RC4 алгоритъма

И още:
Моля уважавайте автора и неговата работа като не махате Credit's от скрипта.
Credit's:hateYou,RC4,Elven` | HF ;)
 
Last edited:
  • Like
Reactions: ivowe3 and gopsan
Много полезно,браво!
 
Въпросът ми е работи ли този код през XAMPP
 
Спри да пишеш в стари теми бе СПАМЕР ГАДЕН
 
Ако си пуснеш PHP-то на хампа може и да трагне :D
 
Ползвам VertrigoServ 2.23 - Index of / няма проблеми с другите системи просто въпросната /sms нещо не е наред.

EDIT: Проблема беше остранен чрез смяна на кодировката на файлът. Благодаря!
 
Last edited:
Elven, позлзвам този декодиран индекс, но имам проблем със символите < и > записват се като: &lt; и &gt; вместо <> и хората с този символ в ника, немогат да са админи, смисъл такъв аз трябва да го едитна в таблицата дадения ник за да работи.
Били ми обяснил какво трябва да се промени в индекса за да работи, защото от там е проблема.. няма откъде другаде да е.
Иначе е в utf8 кодировка с notepad2 е сейфнат.
 
Когато сложа този код във файла index.php и променя датата на изтичане, ми изписва отновно, че ми е изтекъл срока.
 
Когато сложа този код във файла index.php и променя датата на изтичане, ми изписва отновно, че ми е изтекъл срока.

Някой ще помогне ли относно този проблем??
 
Сложи това в индекса и си готов :)
PHP:
<?php
session_start();

define("IN_SMSADMINS", 1);

$crypted_code=md5("50b9e23596aa9bcefc28695c72b7621d");

$script_expire_on = strtotime("01.01.2022");
$warning_period = strtotime("01.01.2022");

$warn_head = '
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1251">
        <title>SMSAdmins by hateYou @ amxmodxbg.org</title>
        <style type="text/css"> 
            body {
                background-color: #808080;
                color: white;
            }
            
            a {
                color:black;
                font-weight:bold
            }
        </style>
    </head>
    <body>
        <center> <br><br><br><br><br> <br><br><br><br><br>';

$warning_for_expire = '
            Срокът за използване на SMSAdmins изтича в края на този месец.<br>
            Ако искате да продължите да ползвате системата, моля изтеглете я на ново от <a href="http://amxmodxbg.org/forum/viewtopic.php?t=14906" title="AMX Mod X България: SMSAdmins от hateYou">http://amxmodxbg.org/forum/viewtopic.php?t=14906</a>.<br><br>
            За въпроси и контакти: <i>hateyou @ amxmodxbg.org</i>';

$warn_footer = '
        </center>
    </body>
</html>';


echo"\n\n\n\n<!--
 /*
 ****************************************************************
 *
 *            SMSAdmins System v1.0
 *
 * Author: hateYou @ amxmodxbg.org
 * More info at: http://amxmodxbg.org/forum/viewtopic.php?t=14906
 *
 ****************************************************************
 */
-->\n\n\n\n";

if(time() < $script_expire_on && defined("IN_SMSADMINS") ) { // && md5(strtolower(IN_SMSADMINS)) == $crypted_code
    
define('SMSAdmins', 1);

include("include/config.php");
include("include/style.php");

function clean($str) { return htmlspecialchars(trim(stripslashes($str))); }

if(!clean($_GET['p']) || clean($_GET['p']) == 'logout') ob_start();

define(g_error, "Couldn't connect to database");

function dbc() {
    global $g_dbhost, $g_dbuser, $g_dbpass, $g_dbname;
    
   $result = @mysql_connect($g_dbhost, $g_dbuser, $g_dbpass); 
   if (!$result)
      return false;
   if (!@mysql_select_db($g_dbname))
      return false;
   return $result;

}

function isValid($type,$var) { 
 $valid = false; 
 switch ($type) { 

  case "num": 
   if (ereg("^[0-9]+$",$var)) { 
    $valid = true; 
   } 
   break;
      
  case "captcha": 
   if (ereg("^([a-z0-9]{5})$",$var)) { 
    $valid = true; 
   } 
   break;
 } 
 return $valid; 
}

function is_included_in_smsadmins_system() {
    if(defined('SMSAdmins')) {
        return 1;
    } else {
        return 0;
    }
}

function security_num($numofletters = 4, $encode = "0") {
  $code="";
  for($i=0;$i<$numofletters;$i++) $code.=strtolower(chr(rand(65,90)));
  if($encode == "1") {
    return md5($code);
  } else {
      return $code;
  }
}

function is_user_logged_in() {
    if (!clean($_SESSION['sa_data'])) {
        return false;
    } else {
        return true;
    }
}

function show_servers() {
    global $g_ServerName;
    echo"\n        <select name=\"server_num\" style=\"width:310px; margin-left: 5px;\">\n";
    echo "        <option value=\"0\">Изберете сървър за управление</option>";
    for( $i = 0; $i < count($g_ServerName); $i++) {
        $ni=$i+1;
        echo "\n            <option value=\"$ni\">".$g_ServerName[$i+1]."</option>";
    }
    echo"\n        </select>";
}

function add_new_sms_field($num) {
    return " <tr>
  <td>SMS Код #$num:</td> <td><input type=\"text\" name=\"smscode[]\"></td>
 </tr>\n";
}

function show_sms_fields() {
    global $g_sms_amount;
    
    $how_much_sms = clean($g_sms_amount);
    if($how_much_sms < 100)  {
        for( $i = 0; $i < $how_much_sms; $i++) {
            echo add_new_sms_field($i+1);
        }
    } else {
        echo add_new_sms_field(1);
    }
}

function msg($type, $msg) {
    switch ($type) {
        case "error": echo "\n<b>ГРЕШКА:</b> $msg"; break;
        case "notice": echo "\n<b>Съобщение:</b> $msg"; break;
    }
        
}

function show_x3() {
    global $g_x3, $g_x3_Description, $g_x3_Flags, $g_flags, $g_status, $g_server;
    
    for ($i=0; $i <= count($g_x3)-1; $i++) {
            $g_x3[$i] = clean($g_x3[$i]);     $g_x3_Description[$i] = clean($g_x3_Description[$i]);     $g_x3_Flags[$i] = clean($g_x3_Flags[$i]);
            
            if(strstr($g_flags, $g_x3_Flags[$i]) || $g_status == "1" && $i==0) {
                $disable = " disabled";
            } else {
                $disable = "";
            }
            
            if($i == 0) { $star = " <font style=\"color:red\">*</font>"; } else { $star = ""; }
        
            $title = $g_x3[$i].$star;
            $description = $g_x3_Description[$i];
            $flag = $g_x3_Flags[$i];
            
            show_all_x3($title, $description, $flag, $disable);
            echo"\n";
    }
}

function mobio_checkcode($g_servID, $code, $debug=0) {

    $res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1");

    $ret = 0;
    if($res_lines) {

        if(strstr("PAYBG=OK", $res_lines[0])) {
            $ret = 1;
        }else{
            if($debug)
                echo $line."\n";
        }
    }else{
        if($debug)
            echo "Unable to connect to mobio.bg server.\n";
        $ret = 0;
    }

    return $ret;
}

function mobio_checkcode_f($g_servID, $code, $debug=0) {

    $ret = 0;

    $mobio_socket = fsockopen("www.mobio.bg", 80);

    if(!$mobio_socket) {
        if($debug)
            echo "Unable to connect to mobio.bg server\n";
        $ret = 0;
    }else{
        $request .= "GET http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1 HTTP/1.0\r\n\r\n";
        fwrite($mobio_socket, $request);
        $result = fread($mobio_socket, 255);
        if(strstr($result, "PAYBG=OK")) {
            $ret = 1;
        }else{
            $ret = 0;
            if($debug)
                echo strstr($result, "PAYBG");
        }
        fclose($mobio_socket);
    }

    return $ret;
}

function valid_sms_codes() {
    global $g_working_mode, $g_demo_codes, $g_wisdom_prefix, $g_servID;
    
      switch ($g_working_mode) {
          case "wisdom":
          for( $i = 0; $i < count($_POST['smscode']); $i++){ 
              if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
              $smscode=clean($_POST['smscode'][$i]);
              $tmp = file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&user_ip='.$_SERVER['REMOTE_ADDR']);
            $tmp = unserialize($tmp);

            if (preg_match('/^Invalid prefix/i', $tmp['error'])) {
                echo "Не сте въвели валиден префикс !"; sf(); die;
            }
            
            if ($tmp['result'] == TRUE) {
                file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&mark_as_used=1&user_ip='.$_SERVER['REMOTE_ADDR']);
                $smscodes[]=$smscode;
                  if($i+1 == count($_POST['smscode'])) { return 1; }
            } else {
                  echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
            }
          }
          break;
          
          case "mobio_fopen":
          for( $i = 0; $i < count($_POST['smscode']); $i++){ 
              if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
              $smscode=clean($_POST['smscode'][$i]);
              if(mobio_checkcode_f($g_servID, $smscode, 0) == 1) {
                  $smscodes[]=$smscode;
                  if($i+1 == count($_POST['smscode'])) { return 1; }
              } else {
                  echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
              }
          }
          break;
          
          case "mobio_fsockopen":
          for( $i = 0; $i < count($_POST['smscode']); $i++){ 
              if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
              $smscode=clean($_POST['smscode'][$i]);
              if(mobio_checkcode($g_servID, $smscode, 1) == 1) {
                  $smscodes[]=$smscode;
                  if($i+1 == count($_POST['smscode'])) { return 1; }
              } else {
                  echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
              }
          }
          break;
          
          case "demo":
          for( $i = 0; $i < count($_POST['smscode']); $i++){ 
              if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
              $smscode=clean($_POST['smscode'][$i]);
              if($smscode == $g_demo_codes[$i]) {        
                  $smscodes[]=$smscode;
                  if($i+1 == count($_POST['smscode'])) { return 1; }
              } else {
                  echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
              }
          }
          break;
      }
}

function refresh($sec = 1, $url = "index.php") {
    echo '<meta http-equiv="refresh" content="'.$sec.';url='.$url.'">';
}

function convert_date($expire_date) {
    $expire_date = clean($expire_date);
    $bg=array("ден","дни","седмица","седмици","месец","месеца","година","години");
    $en=array("day","days","week","weeks","month","months","year","years");
    $expire_date=str_replace($bg,$en, $expire_date);
    $expire_date=strtotime("+ $expire_date");
    
    return $expire_date;
}

function calculate_admin_expire($g_user_expire_date) {
    $now = $g_user_expire_date; 
    $then = strtotime ("now"); 
    $difference = $now - $then ; 
    $num = $difference/86400; 
    $days = intval($num); 
    $num2 = ($num - $days)*24; 
    $hours = intval($num2); 
    $num3 = ($num2 - $hours)*60; 
    $mins = intval($num3); 
    $num4 = ($num3 - $mins)*60; 
    $secs = intval($num4);
    
    return "$days дни, $hours часа, $mins минути и $secs секунди";
}

function show_date($date) {
    return date("d.m.Y - H:i:s", $date);
}

function admin_list_mark_functions() {
    global $g_user_level, $g_tbname;
    
    if($g_user_level == "1") {
        if(isset($_POST['deactivate'])) {
            for( $i = 0; $i < count($_POST['mark']); $i++){ 
                if($_POST['mark'][$i] != NULL){ 
                    $admin_id=$_POST['mark'][$i];
                    $delete=mysql_query("UPDATE `$g_tbname` set `expire_date`='0', `status` = '0' WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
                }
            }
            refresh(1, "?p=adminlist");
        } elseif(isset($_POST['delete'])) {
            for( $i = 0; $i < count($_POST['mark']); $i++){ 
                if($_POST['mark'][$i] != NULL){ 
                    $admin_id=$_POST['mark'][$i];
                    $delete=mysql_query("DELETE FROM `$g_tbname` WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
                }
            }
            refresh(1, "?p=adminlist");
        }
    }
}

function is_this_first_registration() {
    global $g_tbname;
    
    dbc();
    $checking = mysql_query("SELECT `id` FROM `$g_tbname`") or die(g_error);
    if(mysql_num_rows($checking)>0) {
        return 0;
    } else {
        return 1;
    }
}


if (!clean($_SESSION['sa_data'])) {
    $_SESSION['sa_data'] = 0;
} else {
    $g_userid = clean($_SESSION['sa_data'][0]);
    $g_nickname = clean($_SESSION['sa_data'][1]);
    $g_flags = clean($_SESSION['sa_data'][2]);
    $g_server = clean($_SESSION['sa_data'][3]);
    $g_user_expire_date = clean($_SESSION['sa_data'][4]);
    $g_status = clean($_SESSION['sa_data'][5]);
    $g_user_level = clean($_SESSION['sa_data'][6]);
}

sh();

if($g_system_is_on == 1) {
    $page = clean($_GET['p']);

    switch($page) {
        case "config":
            echo ($g_user_level == 1 && $smsadmins_view_config_remotely == "1") ? highlight_file("include/config.php") : msg("error","Не можете да видите конфигурацията поради настройките на системата !");
        break;
        
        case "adminlist":
            include("include/pages/adminlist.php");
        break;
        
        case "logout":
            session_destroy();
            msg("notice", "Вие успешно излязохте от вашия акаунт !");
            refresh();
            
        break;
    
        default:
            if(is_user_logged_in()) {
                dbc();
                
                if($g_user_level == 0) {
                    if(isValid("num", $g_userid)) {
                        $fetch_data = mysql_query("SELECT * FROM `$g_tbname` WHERE `id` = '$g_userid'") or die(g_error);
                        
                        if(mysql_num_rows($fetch_data) > 0) {
                            /*
                            while ($row = mysql_fetch_array($fetch_data)) {
                                extract($row);
                                
                                echo "Zdravei, ".$player;
                            }
                            */
                            
                            if(isset($_POST['update_rights']))
                            {
                                $new_flag = $_POST['flag'];
                                if($new_flag != null){                                
                                    
                                    //if ($new_flag != "@" && $g_status == "0") {
                                    if ($g_compulsory_flag == 1 && !strstr($new_flag, "@") && $g_status == "0") {
                                        msg("error", "Трябва първо да изберете \"".$g_x3[0]."\" за да можете да ъпдейтнете вашите права по-нататък !");
                                    } else {                            
                                        if (valid_sms_codes() == 1) {
                                            $convert_expire = convert_date($g_expire_date);
                                            
                                            if($g_status == "0") {
                                                $sql_convert_expire = ", `expire_date` = '$convert_expire'";
                                            } else {
                                                $sql_convert_expire = "";
                                            }
                                            //if($new_flag == "@") {
                                            if(strstr($new_flag, "@")) {
                                                //$new_flag = "";
                                                $new_flag = explode("@", $new_flag);
                                                $new_flag = $new_flag[1];
                                            }
                                            
                                            @include("include/pages/afterreg.php");
                                            
                                            $deadline = ($g_status == "0") ? "               $afterreg_text2" : "";
                                            
                                            $update_rights = mysql_query("UPDATE `$g_tbname` SET `flags` = '$g_flags$new_flag', `status` = '1' $sql_convert_expire WHERE `id` = '$g_userid'") or die(g_error);
                                            $_SESSION['sa_data'][5] = "1";
                                            $_SESSION['sa_data'][2] = "$g_flags$new_flag";
                                            
                                            if($update_rights) {
                                                echo $afterreg_text.$deadline;
                                                echo "<br><hr>
               <i>Тази система е разработена и поддържана от hateYou @ amxmodxbg.org</i>";
                                            }
                                            
                                        } else {
                                            msg("error", "Въвели сте невалидни SMS кодове !<br>Системата е писана от hateYou @ amxmodxbg.org");
                                        }
                                    }
                                } else {
                                    msg("error", "Не сте избрали никаква опция !");
                                }
                            } else {
                                include("include/pages/index.php");
                            }
                            
                        } else {
                            msg("error", "Въвели сте грешни данни за login !");
                            refresh();
                        }
                    } else {
                        msg("error", "Не валидна сесия ! <br>Моля излезте от акаунта и влезте отново !");
                    }
                } else {
                    echo "Здравейте <b>$g_nickname</b> ! <br>Това е вашият административен потребител. <br>С него единствено можете да управлявате вашите потребители !";
                }

            } else {
                if(isset($_POST['login'])) {
                    $username = clean($_POST['username']);
                    $password = clean($_POST['password']);
                    
                    $server = $_POST['server_num'];
                    
                    $generated_captcha = $_POST['captcha'];
                    $security_code = clean($_POST['security_code']);
                    
                    if ($security_code == $generated_captcha) {
                        dbc();
                        $check = mysql_query("SELECT `id`, `player`, `flags`, `server`, `expire_date`, `status`, `user_level` FROM `$g_tbname` WHERE `player` = '$username' AND `password` = '$password' AND `server` = '$server'") or die(g_error);
                        if(mysql_num_rows($check) > 0) {
                            $row = mysql_fetch_row($check);
                            
                            if($row[4] < time()) { $new_sql_query = ", `status` = '0'"; } else { $new_sql_query = ""; }
                            
                            $_SESSION['sa_data'] = $row;
                            if($row[4] < time()) { $_SESSION['sa_data'][5] = "0"; }
                        }

                        msg("notice", ".. пренасочване ..");
                        refresh();
                        
                    } else {
                        msg("error", "Въведения код за визуално потвърждение грешен !");
                        refresh(2);
                    }
                    
                } else if(isset($_POST['register'])) {
                    $username = clean($_POST['username']);
                    $password = clean($_POST['password']);
                    
                    $server = $_POST['server_num'];
                    
                    $generated_captcha = $_POST['captcha'];
                    $security_code = clean($_POST['security_code']);
                    $time = time();
                    
                    if(is_this_first_registration()) {
                        $_server_if_check_value = "1";
                        $_userlevel = "1";
                    } else {
                        $_server_if_check_value = "0";
                        $_userlevel = "0";
                    }
                    
                    if ($security_code == $generated_captcha && $server != "$_server_if_check_value") {
                        if(!in_array($username, $g_reserved_nicks)) {
                            if(strlen($username) > 3) {
                                dbc();
                                $now = time();
                                if(mysql_num_rows(mysql_query("SELECT `id` FROM `$g_tbname` WHERE `server` = '$server' AND `expire_date` > '$now'")) <= $g_max_admins_per_server) {
                                    $check_data = mysql_query("SELECT `player` FROM `$g_tbname` WHERE `player` = '$username' AND `server` = '$server'") or die(g_error);
                                    if(mysql_num_rows($check_data) == 0) {
                                        $insert_data = mysql_query("INSERT INTO `$g_tbname` (`player`, `password`, `flags`, `server`, `time_on_reg`, `expire_date`, `status`, `user_level`) VALUES('$username', '$password', '', '$server', '$time', '0', '0','$_userlevel');") or die(mysql_error());
                                        
                                        switch ($g_notify) {
                                            case "1": @mail($g_administrator_email, $g_email_subject, $g_email_message); break;
                                            case "2": @mail($g_administrator_gsm, $g_email_subject, $g_email_message); break;
                                            default:
                                        }
                                        
                                        msg("notice", "Благодарим Ви за регистрацията ! <br>
                                            Можете сега да си влезете в акаунта");
                                        refresh(2);
                                    } else {
                                        msg("error", "Този никнейм, вече е бил регистриран за в този сървър !");
                                        refresh(2);
                                    }
                                } else {
                                    msg("error", "За в момента не можем да приемеме повече регистрации за сървъра, който сте избрали !");
                                    refresh(2);
                                }
                            } else {
                                msg("error", "Вашият никнейм трябва да е по-дълъг от 3 символа !");
                            }
                        } else {
                            msg("error", "Потребителското име е запазено от администратора ! <br> Моля изберете друго.");
                            refresh(2);
                        }
                        
                    } else {
                        msg("error", "Въведения код за визуално потвърждение е грешен или не сте избрали сървър, за където да си регистрирате потребителското име !");
                        refresh(2);
                    }
                } else {
                    include("include/pages/register.php");
                }
            }
            
    }
} else {
    msg("notice", "За в момента не приемаме никакви регистрации.
      <br>Моля опитайте по-късно.");
}

sf();

  if(time() >= $warning_period && (time() <= $script_expire_on) || (time() >= $script_expire_on)) { echo $warning_for_expire; }
} else {
    if(time() >= $script_expire_on) {
        echo $warn_head.$warning_for_expire.$warn_footer;
    } else {
        echo"$warn_head \n<b>Грешка:</b> Hacking attempt <br><br><i>SMSAdmins v1.0 by: hateYou @ amxmodxbg.org</i> \n $warn_footer";
    }
}

// echo "<center>Сайта използва SMSAdmins v1.0 от hateYou @ <a href=\"http://darksteam.net\" title=\"DarksTeam - The Ultimate MMORPG Resource\">amxmodxbg.org</a></center>";

echo"\n\n\n\n<!--
 /*
 ****************************************************************
 *
 *            SMSAdmins System v1.0
 *
 * Автор: hateYou @ amxmodxbg.org
 * Информация: http://darksteam.net
 *
 ****************************************************************
 */
-->\n\n\n\n";

?>
 
А аз имам друг проблем. Когато се опитам да се логна и пише : пренасочване, а след като се логна ме пренасочва на страницата, където трябва да се логна.
 
Срокът за използване на SMSAdmins изтича в края на този месец.
Ако искате да продължите да ползвате системата, моля изтеглете я на ново от http://amxmodxbg.org/forum/viewtopic.php?t=14906.

За въпроси и контакти: hateyou @ amxmodxbg.org

Forbidden​

You don't have permission to access this resource.


Apache/2.4.25 (Debian) Server at amxmodxbg.org Port 443