Script Ban Metin2

Despre programarea aplicațiilor web și nu numai, cu PHP, baze de date și altele.
Discutiile despre utilizarea si modificarea scripturilor se desfasoara in aria Webmaster.
Discuțiile despre proiectarea și optimizarea bazelor de date se desfășoară în aria Databases.
Avatar utilizator
Stefann11321
Nivel 2

Nivel 2
Mesaje: 248
Membru din: 02 Sep 2015, 21:22
Server: wow-metin2.ro
Regat: Chunjo
Aprecieri: 0
Mulţumiri: 1  
Medalii

Bună ziua!
M-am gândit să pun acest script pentru cei care nu au adăugată comanda de ban de pe server!

Cod: Selectaţi tot

<?php



	# Setari baza de date

	$db_host = "IP SERVER";					# Adresa IP (domeniu, daca este cazul) a bazei de date

	$db_port = "";								# Portul bazei de date (optional)

	$db_user = "USERNAME";							# Utilizatorul bazei de date

	$db_password = "PAROLA";		# Parola bazei de date (daca este cazul, lasati liber)

	$db_acc_database = "";						# Numele bazei de date a conturilor (optional)

	$db_player_database = "";					# Numele bazei de date a jucatorilor (optional)

	

	# Setari script

	$password = md5("PAROLA DORITA");				# Parola script-ului (a se scrie intre ghilimele)

	$script_name = "ban1.php";			# Numele script-ului (numele fisierului)

	

	# Nu umbla sub aceasta linie numai daca stii ce faci!

	if(!isset($_POST["password"])) {

		if(!isset($_COOKIE["password"])) {

			die("

			<h3>Nu esti conectat!</h3>

			<p>Introdu parola pentru a accesa acest script!</p>

			

			<form name=\"input\" action=\"".$script_name."\" method=\"post\">

				Parola: <input type=\"password\" name=\"password\">

				<input type=\"submit\" value=\"Trimite\">

			</form>

			

			");

		}

	} else {

		if(md5($_POST["password"]) == $password) {

			setcookie("password", $password, time()+3600);

			echo "Parola introdusa este corecta! Ai fost conectat la script!";

		} else {

			die("Parola introdusa este gresita!");

		}

	}

	

	if(empty($db_port)) {

		$db_port = "3306";

	}

	

	if(empty($db_acc_database)) {

		$db_acc_database = "account";

	}



	if(empty($db_player_database)) {

		$db_player_database = "player";

	}

	

	if(empty($db_host)) {

		die("<br /><br /><b><center><font color=\"red\">Nu a fost precizata adresa bazei de date!</font></center></b>");

	}

	

	if(empty($db_user)) {

		die("<br /><br /><b><center><font color=\"red\">Nu a fost precizat utilizatorul bazei de date!</font></center></b>");

	}

	

	error_reporting(0);

	$db_connect = mysql_connect($db_host.":".$db_port, $db_user, $db_password);

	if(!$db_connect) {

		die("<br /><br /><b><center><font color=\"red\">Nu m-am putut conecta la baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

	}

	

	$db_select = mysql_select_db($db_acc_database);

	if(!$db_select) {

		die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

	}

	error_reporting(-1);

	

	# Functii	

		function acc_id($login, $db) {

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$login = mysql_real_escape_string($login);

			$sql = mysql_query("SELECT id FROM account WHERE login = \"$login\"");

			if(mysql_num_rows($sql) == 0) {

				return false;

			} else {

				$sql_array = mysql_fetch_array($sql);

				return $sql_array[0];

			}

		}



		function acc_id_pn($name, $db) {

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$name = mysql_real_escape_string($name);

			$sql = mysql_query("SELECT account_id FROM player WHERE name = \"$name\"");

			if(mysql_num_rows($sql) == 0) {

				return false;

			} else {

				$sql_array = mysql_fetch_array($sql);

				return $sql_array[0];

			}

		}

		

		function acc_login($id, $db) {

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$sql = mysql_query("SELECT login FROM account WHERE id = $id");

			$sql_array = mysql_fetch_array($sql);

			return $sql_array[0];

		}

		

		function acc_status($id, $db) {

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$sql = mysql_query("SELECT status, availDt FROM account WHERE id = $id");

			$sql_array = mysql_fetch_array($sql);

			$status = $sql_array[0];

			$availDt = $sql_array[1];

			

			if($status == "BLOCK") {

				return array(

					"status" => 1,

					"type" => 0

				);

			}

			

			if(strtotime($availDt) > time()) {

				return array(

					"status" => 1,

					"type" => 1,

					"date" => strtotime($availDt)

				);			

			}

			

			return array(

				"status" => 0

			);

		}

		function block($id, $db){

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$sql = mysql_query("UPDATE account SET status=\"BLOCK\" WHERE id = $id");

			if(!$sql) {

				return 0;

			}

			if(mysql_affected_rows() == 0) {

				return 1;

			}

			return 2;

		}

		

		function unblock($id, $db){

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			$sql = mysql_query("UPDATE account SET status=\"OK\", availDt = '0000-00-00 00:00:00' WHERE id = $id");

			if(!$sql) {

				return 0;

			}

			if(mysql_affected_rows() == 0) {

				return 1;

			}

			return 2;

		}

		

		function check_date($date){

			if(preg_match("/(\d{2})\|\|(\d{2})\|\|(\d{4})\|\|(\d{2})\|\|(\d{2})\|\|(\d{2})/", $date)) {

				$explode = explode("||", $date);

				$day = $explode[0];

				$month = $explode[1];

				$year = $explode[2];

				$hour = $explode[3];

				$minute = $explode[4];

				$second = $explode[5];

				if(!(is_numeric($day) || is_numeric($month) || is_numeric($year) || is_numeric($hour) || is_numeric($minute) || is_numeric($second))){

					return false;

				}

				if(!checkdate($month, $day, $year)){

					return false;

				} else {

					if(!($hour >= 0 && $hour <= 23)) {

						return false;

					}

					if(!($minute >= 0 && $hour <= 59)) {

						return false;

					}

					if(!($second >= 0 && $hour <= 59)) {

						return false;

					}

					return true;

				}

			} else {

				return false;

			}

		}

		

		function tempblock($id, $date, $db){

			$db_select = mysql_select_db($db);

			if(!$db_select) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta baza de date!<br />Eroare: ".mysql_error()." </font></center></b>");

			}

			

			if(check_date($date)) {

				$explode = explode("||", $date);

				$day = $explode[0];

				$month = $explode[1];

				$year = $explode[2];

				$hour = $explode[3];

				$minute = $explode[4];

				$second = $explode[5];

				$date = $year."-".$month."-".$day." ".$hour.":".$minute.":".$second;

				$sql = mysql_query("UPDATE account SET availDt='$date' WHERE id = $id");

				if(!$sql) {

					return 1;

				}

				if(mysql_affected_rows() == 0) {

					return 2;

				}

				return 3;

			} else {

				return 0;

			}

		}

	# Functii

	

	if(!isset($_POST["id"])) {

		if(!(isset($_GET["login"]) || isset($_GET["name"]))) {

			echo "<h3>Alege un cont sau un nume de caracter pentru a vedea actiunile posibile:</h3>

					<form name=\"input\" action=\"".$script_name."\" method=\"get\">

						Nume cont: <input type=\"text\" name=\"login\">

						Nume caracter: <input type=\"text\" name=\"name\">

						<input type=\"submit\" value=\"Trimite\">

					</form>

					<font color=\"red\">Este obligatoriu doar unul dintre campuri!</font>";

		} else {

			if(empty($_GET["login"]) && empty($_GET["name"])){

				die("<br /><br /><b><center><font color=\"red\">Nu ai ales niciun caracter/cont!</font></center></b>");		

			}

			$id = 0;

			if(!empty($_GET["login"])) {

				$temp_id = acc_id($_GET["login"], $db_acc_database);

				if($temp_id == false) {

					print("<br /><br /><b><center><font color=\"red\">Nu exista acest cont: ".$_GET["login"]."!</font></center></b>");		

				} else {

					$id = $temp_id;

				}

			}

			if(!empty($_GET["name"])) {

				$temp_id = acc_id_pn($_GET["name"], $db_player_database);

				if($temp_id == false) {

					print("<br /><br /><b><center><font color=\"red\">Nu exista acest caracter: ".$_GET["name"]."!</font></center></b>");		

				} else {

					$id = $temp_id;

				}

			}

			if($id == 0) {

				die("<br /><br /><b><center><font color=\"red\">Nu am putut selecta niciun cont!</font></center></b>");

			} else {

				print("<h3>Cont selectat: <u>".acc_login($id, $db_acc_database)."</u> (ID: ".$id.")</h3>");

				

				$banned = false;

				echo "<b>Statut: ";

				$status = acc_status($id, $db_acc_database);

				if($status["status"] == 0) {

					echo "<font color=\"green\">neblocat</font>";

				} else {

					$banned = true;

					if($status["type"] == 0) {

						echo "<font color=\"red\">blocat permanent</font>";

					} else {

						echo "<font color=\"red\">blocat temporar pana la ".date('j.m.Y, H:i:s', $status["date"])."</font>";

					}

				}

				echo "</b>";

			}

			

			print("<h2>Actiuni</h2>");

								echo "<form name=\"input\" action=\"".$script_name."\" method=\"post\">

										  <input type=\"hidden\" name=\"id\" value=\"$id\">";

			if($banned == false) {	echo "<input type=\"submit\" name=\"block\" value=\"Blocare permanenta\">"; }

			if($banned == true) {	echo "<input type=\"submit\" name=\"unblock\" value=\"Deblocare\">"; }

								echo  "</form>";

			if($banned == false) {	echo "

			<form name=\"input\" action=\"".$script_name."\" method=\"post\">

				<input type=\"hidden\" name=\"id\" value=\"$id\">

				Blocare temporara pana la data (scrie data in urmatorul format: ZZ||LL||AAAA||OO||MM||SS)*: <input type=\"text\" name=\"date\">

				<input type=\"submit\" name=\"tempblock\" value=\"Blocare temporara\">

			</form>

			* De exemplu, daca se introduce 05||01||2013||15||30||00, atunci contul va fi banat pana la 5 Ianuarie 2013, ora 15:30:00.

			"; }

			

			print("<br /><br /><a href=\"$script_name\">Alege alt jucator</a>");

		}

	} else {

		$id = mysql_real_escape_string($_POST["id"]);

		if(isset($_POST["block"])) {

			$block = block($id, $db_acc_database);

			if ($block == 0) {

				print("<b><font color=\"red\">Eroare: Contul nu a fost blocat!</font></b>");

			}

			if ($block == 1) {

				print("<b><font color=\"orange\">Atentie: Contul este deja blocat permanent sau nu exista!</font></b>");

			}

			if ($block == 2) {

				print("<b><font color=\"green\">Contul a fost blocat permanent!</font></b>");

			}			

		} else {

			if(isset($_POST["unblock"])) {

				$unblock = unblock($id, $db_acc_database);

				if ($unblock == 0) {

					print("<b><font color=\"red\">Eroare: Contul nu a fost deblocat!</font></b>");

				}

				if ($unblock == 1) {

					print("<b><font color=\"orange\">Atentie: Contul este deja deblocat sau nu exista!</font></b>");

				}

				if ($unblock == 2) {

					print("<b><font color=\"green\">Contul a fost deblocat.</font></b>");

				}				

			} else {

				if(isset($_POST["tempblock"])) {

					if(isset($_POST["date"])){

						$date = mysql_real_escape_string($_POST["date"]);

						$tempblock = tempblock($id, $date, $db_acc_database);

						

						if ($tempblock == 0) {

							print("<b><font color=\"red\">Eroare: Data nu este valida!</font></b>");

						}						

						if ($tempblock == 1) {

							print("<b><font color=\"red\">Eroare: Contul nu a fost blocat!</font></b>");

						}

						if ($tempblock == 2) {

							print("<b><font color=\"orange\">Atentie: Contul este deja blocat sau nu exista!</font></b>");

						}

						if ($tempblock == 3) {

							print("<b><font color=\"green\">Contul a fost blocat.</font></b>");

						}

					} else {

						print("<b><font color=\"red\">Eroare: nu ati precizat data</font></b>");

					}

				} else {

					print("<b><font color=\"red\">Eroare: actiune invalida</font></b>");

				}

			}

		}

		echo "<br /><script>

				document.write('<a href=\"' + document.referrer + '\">Inapoi</a>');

			</script>";

	}

?>
Ultima oară modificat 29 Oct 2015, 14:38 de către Esse, modificat 1 dată în total.
Motiv: Mesaj corectat gramatical.
Imagine
Site Official: http://www.metin2king.ro
Forum: http://www.metin2king.ro/forum
--VA ASTEPTAM PE SERVERUL NOSTRU--
Afișează semnătura
Avatar utilizator
[GF]Klaus
Nou Venit

Nou Venit
Mesaje: 34
Membru din: 23 Oct 2015, 16:28
Server: Metin2King.ro
Regat: Jinno
Aprecieri: 0
Mulţumiri: 0
Medalii

Recomand ! Good job

[ Mesaj scris via Android ] Imagine
Răspunde
Răspunsuri
7
Vizualizări
2240
Răspunsuri
1
Vizualizări
950
Răspunsuri
2
Vizualizări
729
Răspunsuri
1
Vizualizări
294

Înapoi la “Tutoriale scripting”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator