| HISORI |
13-11-2010 09:18 AM |
Scripts PHP para criar seu Site de Dekaron
Bom, vou postar alguns scripts php para aqueles que pretendem criar sites para seus servidores de Dekaron.
# Script de Registro com Anti SQL Injection
Código PHP:
<?php
// fill in your mssql info here
$mssql = array(
'host' => "localhost",
'user' => "sa",
'pass' => "server"
);
function anti_injection($sql) {
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
echo "<center>";
if($_POST['activ'] == '1') {
$accname = anti_injection($_POST['accname']);
$accmail = anti_injection($_POST['accmail']);
$accpass1 = anti_injection($_POST['accpass1']);
$accpass2 = anti_injection($_POST['accpass2']);
$con = mssql_connect($mssql['host'],$mssql['user'],$mssql['pass']);
$result1 = mssql_query("SELECT * FROM account.dbo.USER_PROFILE WHERE user_id = '".$accname."'",$con);
$result2 = mssql_query("SELECT * FROM account.dbo.Tbl_user WHERE user_id = '".$accname."'",$con);
$result3 = mssql_query("SELECT * FROM account.dbo.Tbl_user WHERE user_mail = '".$accmail."'",$con);
$row1 = mssql_num_rows($result1);
$row2 = mssql_num_rows($result2);
$row3 = mssql_num_rows($result3);
$dk_time=strftime("%y%m%d%H%M%S");
list($usec1, $sec1) = explode(" ",microtime());
$dk_user_no=$dk_time.substr($usec1,2,2);
if(empty($accname) || empty($accpass1) || empty($accpass2)|| empty($accname) || empty($accmail)) {
echo "<br>You didnt fill in all fields<a href='javascript:history.back()'>Go Back</a>";
} elseif($row1 > '0' || $row2 > '0') {
echo "<br>This Account name already exists.<a href='javascript:history.back()'>Go Back</a>";
} elseif($row3 > '0') {
echo "<br>This E-Mail is already in use.<a href='javascript:history.back()'>Go Back</a>";
} elseif($accpass1 != $accpass2) {
echo "<br>The passwords did not match<a href='javascript:history.back()'>Go Back</a>";
} elseif($accpass1 == $accname) {
echo "<br>Account name and password are the same.<a href='javascript:history.back()'>Go Back</a>";
} elseif(!preg_match("/^[0-9a-zA-Z]{3,15}$/i", $accname)) {
echo "<br>Enter a account name only with 0-9 , a-z and A-Z.<a href='javascript:history.back()'>Go Back</a>";
} elseif(!preg_match("/^[0-9a-zA-Z]{3,15}$/i", $accpass1)) {
echo "<br>Enter a password only with 0-9 , a-z and A-Z.<a href='javascript:history.back()'>Go Back</a>";
} elseif(!preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i",$accmail)) {
echo "<br>Your e-Mail is not correct.<a href='javascript:history.back()'>Go Back</a>";
} elseif(strlen($accname) < 3 || strlen($accname) > 15) {
echo "<br>The Accountname must at least 3 indications long and may maximally 15 indications long.<a href='javascript:history.back()'>Go Back</a>";
} elseif(strlen($accpass1) < 3 || strlen($accpass1) > 15) {
echo "<br>The Password must at least 3 indications long and may maximally 15 indications long.<a href='javascript:history.back()'>Go Back</a>";
} else {
$accpass = md5($accpass1);
mssql_query("INSERT INTO account.dbo.USER_PROFILE (user_no,user_id,user_pwd,resident_no,user_type,login_flag,login_tag,ipt_time,login_time,logout_time,user_ip_addr,server_id) VALUES ('$dk_user_no','".$accname."','".$accpass."','801011000000','1','0','Y','".$date."',null,null,null,'000')",$con);
mssql_query("INSERT INTO account.dbo.Tbl_user (user_no,user_id,user_pwd,user_mail,user_answer,user_question) VALUES ('$dk_user_no','".$accname."','".$accpass1."','".$accmail."','0','0')",$con);
echo "<center><b><u>The account was successfully created. Have fun !</b></u></center><br><br>";
echo "<center>Here is your login info again:</center>";
echo "<center>Your account name is: <b>".$accname."</b></center>";
echo "<center>Your password is: <b>".$accpass1."</b></center>";
echo "DO NOT LOOSE THIS INFO, YOU MAY WRITE IS DOWN AND HIDE IT";
}
} else {
$con = mssql_connect($mssql['host'],$mssql['user'],$mssql['pass']);
$result1 = mssql_query("SELECT * FROM account.dbo.USER_PROFILE",$con);
$row1 = mssql_num_rows($result1);
echo "<center><b><u>This time we have ".$row1." Registed Accounts on our Server<br>Join us.</b></u></center><br>";
echo "<form action='".$_SEVER['PHP_SELF']."' method='POST'>";
echo "<center><table>";
echo "<tr><td colspan='2' align='center'><b><u>Your Account Info</u></b></td></tr>";
echo "<tr><td>Account Name</td><td><input type='text' name='accname' maxlength='12'></td></tr>";
echo "<tr><td>Password</td><td><input type='password' name='accpass1' maxlength='12'></td></tr>";
echo "<tr><td>Again pass.</td><td><input type='password' name='accpass2' maxlength='12'></td></tr>";
echo "<tr><td> </td><td> </td></tr>";
echo "<tr><td colspan='2' align='center'><b><u>Other account info</u></b></td></tr>";
echo "<tr><td>Email</td><td><input type='text' name='accmail' maxlength='50'></td></tr>";
echo "<tr><td> </td><td> </td></tr>";
echo "<tr><td colspan='2' align='center'>
<input type='hidden' name='activ' value='1'>
<input type='submit' value='Create Account'></td></tr>";
echo "</table></center>";
echo "</form>";
}
echo "</center>";
?>
# Script de Login com Anti SQL Injection
Código PHP:
<?php
// Edit your mssql info here
// BEGIN MSSQL INFO
$CONFIG['host'] = "localhost";
$CONFIG['user'] = "sa";
$CONFIG['pass'] = "server";
// END MSSQL INFO
//----------------------------- DO NOT EDIT ANYTHING BELOW HERE !!!!! ------------------------------------
$CONFIG['conn'] = mssql_connect( $CONFIG['host'], $CONFIG['user'], $CONFIG['pass']);
function anti_injection($sql) {
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
//----------------------------------------------------------------------------------------------------------
if(isset($_GET['action']) && ($_GET['action'] == "login")){
$user = anti_injection($_POST['user']);
$pass = anti_injection($_POST['pass']);
$crypt_pass = md5($pass);
$result1 = mssql_query("SELECT * FROM account.dbo.user_profile WHERE user_id = '".$user."'");
$count1 = mssql_num_rows($result1);
$result2 = mssql_query("SELECT user_pwd FROM account.dbo.user_profile WHERE user_id = '".$user."'");
$row2 = mssql_fetch_row($result2);
if($count1 == '0') {
echo '<br>This game account is not found in the database.';
}
elseif($row2[0] != $crypt_pass) {
echo '<br>Wrong password. Try again.';
}
elseif($_GET['login'] != 'login' && $count1 == '0') {
echo '<br>Login Error, Please login again.';
} else {
// Begin secure content
$_SESSION['user'] = $user;
echo "<h3>Welcome, ".$_SESSION['user']."</h3>";
echo "<br>";
echo "Your content here";
// Dont forget to and your session
// session_destroy();
// End secure content
}
} else {
echo '<h2>Login here</h2><br />
<form name="" action="'.$_SERVER['php_self'].'?action=login" method="post">
Name: <input type="text" name="user" maxlength="16"><br />
Password: <input type="password" name="pass" maxlength="16"> <br />
<input type="submit" value="Login!">
</form>';
}
?>
# Script Timer para DeadFront
Código PHP:
<?php
//
// War Script by mta'chrono
//
$hour_wars = array(03, 06, 12, 15, 18, 21, 00);
sort($hour_wars);
$hour_now = date('H');
$hour_next = 03;
foreach($hour_wars as $hour_war)
{
if($hour_war > $hour_now)
{
$hour_next = $hour_war;
break;
}
}
$wartime = (mktime($hour_next, 0, 0) - time());
?>
<script type="text/javascript">
countdown_x1500 = <?php print $wartime; ?>; //**********
function convert_to_time_x1500(secs_x1500)
{
secs_x1500 = parseInt(secs_x1500);
hh_x1500 = secs_x1500 / 3600;
hh_x1500 = parseInt(hh_x1500);
mmt_x1500 = secs_x1500 - (hh_x1500 * 3600);
mm_x1500 = mmt_x1500 / 60;
mm_x1500 = parseInt(mm_x1500);
ss_x1500 = mmt_x1500 - (mm_x1500 * 60);
if (hh_x1500 > 23)
{
dd_x1500 = hh_x1500 / 24;
dd_x1500 = parseInt(dd_x1500);
hh_x1500 = hh_x1500 - (dd_x1500 * 24);
}
else
{ dd_x1500 = 0; }
if (ss_x1500 < 10) { ss_x1500 = "0"+ss_x1500; }
if (mm_x1500 < 10) { mm_x1500 = "0"+mm_x1500; }
if (hh_x1500 < 10) { hh_x1500 = "0"+hh_x1500; }
if (dd_x1500 == 0)
{ return (hh_x1500+":"+mm_x1500+":"+ss_x1500); }
else
{
if (dd_x1500 > 1)
{ return (dd_x1500+" days "+hh_x1500+":"+mm_x1500+":"+ss_x1500); }
else
{ return (dd_x1500+" day "+hh_x1500+":"+mm_x1500+":"+ss_x1500); }
}
}
function do_cd_x1500()
{
if (countdown_x1500 < 0)
{
document.getElementById('nationwarx1500').innerHTM L = "<b><span style='color: red;'>Deadfront is NOW!!</span></b>";
}
else
{
document.getElementById('nationwarx1500').innerHTM L = convert_to_time_x1500(countdown_x1500) + " hours Next DeathFront CountDown";
setTimeout('do_cd_x1500()', 1000);
}
countdown_x1500 = countdown_x1500 - 1;
}
document.write("<span id='nationwarx1500'>valami</span>\n"); //**********
do_cd_x1500();
</script>
# Script para Listar Players Online
Código PHP:
<?php
/* -------------{The online characters listing page by Zombe}------------- */
$MSSQLserverIP = 'localhost'; // IP goes here
$MSSQLusername = 'sa'; // MSSQL username goes here
$MSSQLpassword = 'password'; // MSSQL password goes here
// Don't edit below if you don't know what you are doing.
$link = mssql_connect ("$MSSQLserverIP", "$MSSQLusername", "$MSSQLpassword");
if(!$link)
{
die('Something went wrong while connecting to MSSQL');
}
echo "
<center>
<b><font size = 5>Online characters list:</font><b><br><table border='1'><p> 
<tr>
<td align='center'><b>Char. Name</b></td>
<td align='center'><b>Account</b></td>
<td align='center'><b>Class</b></td>
<td align='center'><b>Level</b></td>
<td align='center'><b>Map</b></td>
</tr>
";
$result = mssql_query("SELECT * FROM character.dbo.user_character WHERE login_time > logout_time",$link);
while ($record = mssql_fetch_array($result))
{
if ($record[byPCClass] == 0) $class = 'Azure Knight';
if ($record[byPCClass] == 1) $class = 'Segita Hunter';
if ($record[byPCClass] == 2) $class = 'Incar Magician';
if ($record[byPCClass] == 3) $class = 'Vicious Summoner';
if ($record[byPCClass] == 4) $class = 'Segnale';
if ($record[byPCClass] == 5) $class = 'Bagi Warrior';
if ($record[byPCClass] == 6) $class = 'Aloken';
$user_no = $record[user_no];
$result3 = mssql_query("SELECT * FROM account.dbo.USER_PROFILE WHERE user_no = '$user_no'",$link);
$row3 = mssql_fetch_array($result3);
$account = "$row3[user_id]";
echo "
<tr>
<td align='center'>$record[character_name]</td>
<td align='center'>$account</td>
<td align='center'>$class</td>
<td align='center'>$record[wLevel]</td>
<td align='center'>$record[wMapIndex]</td>
</tr>
";
}
?>
# Status do Servidor (Online/Offline)
Código PHP:
<html>
<body>
Dekaron Server:
<?
Error_reporting(0);
$fp = @fsockopen('216.245.200.242', 7880, $errno, $errstr, 2);
if($fp){ echo '<font color=green>Online</font>'; }
else{ echo '<font color=red>Offline</font>'; }
fclose($fp);
?>
<br>
Login Server:
<?
Error_reporting(0);
$fp = @fsockopen('216.245.200.242', 50005, $errno, $errstr, 2);
if($fp){ echo '<font color=green>Online</font>'; }
else{ echo '<font color=red>Offline</font>'; }
fclose($fp);
?>
</body>
</html>
# Scripts para Rankings
Código PHP:
<link rel="stylesheet" href="style.css" type="text/css">
<center>
<?php
$msconnect = mssql_connect("localhost","sa","admin");
$msdb = mssql_select_db("character", $msconnect);
$plist = "SELECT guild_name,guild_level,guild_adv FROM [GUILD_INFO]";
$pplist = mssql_query($plist);
echo "<table width='400' height='1'><tr valign='top'>";
echo "<td width='5%'><b>Guild Name</b></td><td width='5%'><b>Guild Level</b></td><td width='5%'><b>Guild ADV</b></td></tr><tr valign='top'>";
while($list = mssql_fetch_array($pplist)){
echo "<td width='5%'>";
echo $list[guild_name];
echo "</td>";
echo "<td width='5%'>";
echo $list [guild_level];
echo "</td>";
echo "<td width='5%'>";
echo $list[guild_adv];
echo "</td></tr><tr>";
}
echo "</tr></table>";
?>
</center>
Players
Código PHP:
<link rel="stylesheet" href="style.css" type="text/css">
<center>
<?php
$msconnect = mssql_connect("localhost");
$msdb = mssql_select_db("character", $msconnect);
$plist = "SELECT * FROM user_character ORDER BY [character_name]";
$pplist = mssql_query($plist);
echo "<table width='400' height='1'><tr valign='top'>";
echo "<td width='5%'><b>Name</b></td><td width='5%'><b>Level</b></td></tr><tr valign='top'>";
while($list = mssql_fetch_array($pplist)){
echo "<td width='5%'>";
echo $list[character_name];
echo "</td>";
echo "<td width='5%'>";
echo $list[wLevel];
echo "</td></tr><tr>";
}
echo "</tr></table>";
?>
</center>
Top 100 PK
Código PHP:
<?php
$msconnect = mssql_connect("IP","user","password");
$msdb = mssql_select_db("character", $msconnect);
$plist = "SELECT TOP 100 character_name, wPKCount FROM [user_character] WHERE wPKCount > '0'order by wPKCount desc";
$pplist = mssql_query($plist);
echo "<table width='400' height='1'><tr valign='top'>";
echo "<td width='5%'><b></b></td><td width='5%'><b>Name</b></td><td width='5%'><b>Points</b></td></tr><tr valign='top'>";
while($list = mssql_fetch_array($pplist)){
if($list[''] == "0"){
$char = "t";
}
elseif($list[''] == "1"){
$char = "";
}
else
$char = "Archer";
echo "<td width='5%'>";
echo "</td>";
echo "<td width='5%'>";
echo $list['character_name'];
echo "</td>";
echo "<td width='5%'>";
echo $list['wPKCount'];
echo "</td></tr><tr>";
}
echo "</tr></table>";
?>
Top 100 PVP
Código PHP:
<center>Top 100 PVP Ranking </h1>
<?php
$msconnect = mssql_connect("IP","user","pass");
$msdb = mssql_select_db("character", $msconnect);
$plist = "SELECT TOP 100 character_name, dwPVPpoint FROM [user_character] WHERE dwPVPpoint > '0'order by dwPVPpoint desc";
$pplist = mssql_query($plist);
echo "<table width='400' height='1'><tr valign='top'>";
echo "<td width='5%'><b></b></td><td width='5%'><b>Name</b></td><td width='5%'><b>Points</b></td></tr><tr valign='top'>";
while($list = mssql_fetch_array($pplist)){
if($list[''] == "0"){
$char = "t";
}
elseif($list[''] == "1"){
$char = "";
}
else
$char = "Archer";
echo "<td width='5%'>";
echo "</td>";
echo "<td width='5%'>";
echo $list['character_name'];
echo "</td>";
echo "<td width='5%'>";
echo $list['dwPVPpoint'];
echo "</td></tr><tr>";
}
echo "</tr></table>";
?>
# Script de Estatísticas do Servidor
Código PHP:
<h1 class="style1"> Stats </h1>
<link rel="stylesheet" href="style.css" type="text/css">
<?
$msconnect = mssql_connect("localhost","sa","admin");
$msdb = mssql_select_db("character", $msconnect);
$q = "SELECT * FROM user_character";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Characters: $sad";
$q = "SELECT * FROM user_character_secede";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Deleted Characters: $sad";
$q2 = "SELECT * FROM GUILD_CHAR_INFO";
$r2 = mssql_query($q2);
$sad2 = mssql_num_rows($r2);
echo "<div align=left>Total Characters In Guild: $sad2";
$q2 = "SELECT * FROM guild_info";
$r2 = mssql_query($q2);
$sad2 = mssql_num_rows($r2);
echo "<div align=left>Total Guilds: $sad2";
$q = "SELECT * FROM CM_BCD_ITEM";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Dead Fronts: $sad";
$q = "SELECT * FROM user_suit";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Costumes: $sad";
$q = "SELECT * FROM USER_POSTBOX";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Unread Mails: $sad";
$q = "SELECT * FROM USER_POSTBOX_SECEDE";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Deleted Mails: $sad";
$q = "SELECT * FROM User_Quest_Doing";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Players Doing There Quest(s): $sad";
$q = "SELECT * FROM User_Quest_Done";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Players Finished There Quest(s): $sad";
$q = "SELECT * FROM user_skill";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Used Skills: $sad";
$q = "SELECT * FROM user_storage";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Storage Items: $sad";
$q = "SELECT * FROM USER_STORE";
$r = mssql_query($q);
$sad = mssql_num_rows($r);
echo "<div align=left>Total Items In Shop: $sad";
?>
?>
# Script para Listar Informações de uma conta
Código PHP:
<?php
/* -------------{The appointed characters listing page by Zombe}------------- */
$MSSQLserverIP = 'localhost'; // IP goes here
$MSSQLusername = 'sa'; // MSSQL username goes here
$MSSQLpassword = 'password'; // MSSQL password goes here
// Don't edit below if you don't know what you are doing.
$link = mssql_connect ("$MSSQLserverIP", "$MSSQLusername", "$MSSQLpassword");
if(!$link)
{
die('Something went wrong while connecting to MSSQL');
}
echo'<center>';
echo'<Form Name ="form0" Method ="POST">';
echo'Enter an account name:<p>';
echo'<input name="name" type="text"><p>';
echo'<input name="submit" type="submit" value="Get character list!"><p>';
echo'</form0>';
$name = $_POST['name'];
if ($name)
{
$result2 = mssql_query("SELECT * FROM account.dbo.Tbl_user WHERE user_id = '$name'",$link);
$row2 = mssql_fetch_array($result2);
$user_no = "$row2[user_no]";
$login = "$row2[login_time]";
$logout = "$row2[logout_time]";
if (($login) && ($logout) && ($login > $logout)) $status = 'Online';
else $status = 'Offline';
if ($user_no)
{
echo "
<p> <p> <p>
The account <b>$name</b> has the following characters:<br><table border='1'><p> 
<tr>
<td align='center'><b>Char. No</b></td>
<td align='center'><b>Char. Name</b></td>
<td align='center'><b>Level</b></td>
<td align='center'><b>Class</b></td>
<td align='center'><b>Map index</b></td>
<td align='center'><b>Status</b></td>
</tr>
";
}
else echo 'No such account';
$result = mssql_query("SELECT * FROM character.dbo.user_character WHERE user_no = '$user_no'",$link);
while ($record = mssql_fetch_array($result))
{
if ($record[byPCClass] == 0) $class = 'Azure Knight';
if ($record[byPCClass] == 1) $class = 'Segita Hunter';
if ($record[byPCClass] == 2) $class = 'Incar Magician';
if ($record[byPCClass] == 3) $class = 'Vicious Summoner';
if ($record[byPCClass] == 4) $class = 'Segnale';
if ($record[byPCClass] == 5) $class = 'Bagi Warrior';
if ($record[byPCClass] == 6) $class = 'Aloken';
if (($record[login_time]) && ($record[logout_time]) && ($record[login_time] > $record[logout_time])) $status = 'Online';
else $status = 'Offline';
echo "
<tr>
<td align='center'>$record[character_no]</td>
<td align='center'>$record[character_name]</td>
<td align='center'>$record[wLevel]</td>
<td align='center'>$class</td>
<td align='center'>$record[wMapIndex]</td>
<td align='center'>$status</td>
</tr>
";
}
}
?>
Pretendo atualizar esse tópico sempre que possível com novos scripts.
# Edit 1
Para evitar que esse tópico fique imenso e tbm fique confuso, na medida do possível vou reunindo todos os scripts em 1 arquivo
e sempre que for encontrando outros vou atualizando a versão desse arquivo e colocando a descrição dos scripts.
Download:
DK PHP SCRIPT PACK v1.0
Conteúdo:
Citação:
- Estatísticas do Servidor (Número de contas, número de personagens e afins...)
- Listar Informações de uma Conta (Informações de todos os personagens da conta, level, mapa se está on/off e afins...)
- Listar Players Online (preciso falar o que é?)
- Login com Anti SQL Injection (Script simples para login com proteção)
- Login com reCap.tcha e Anti SQL Injection (Outro script para login com sistema anti bot e anti sql injection)
- Mailbox para enviar Item e Dil (Para painel Administrativo)
- Mailbox Simples (Só envia mensagem)
- Rankings (PK,PVP,Level e afins...)
- Registro com Anti SQL Injection
- Registro com reCap.tcha (outro script de registro com sistema anti bot)
- Status do Servidor (Online/Offline só trocar o IP)
- Timer DeadFront (Mostra o tempo restantes para o evento DeadFront)
|
Créditos:
@ Janvier123, Zombe, Silkbotter e mta'chrono pelos scripts.
@ DaddyCool por organizar e disponibilizar.
|