SHadowCore Дата: Понеділок, 20.12.2010, 21:52 | Сообщение # 1
Скаут
Группа: Пользователи
Приготовил для вас пару [PHP] скриптов.
Начнем с легкого: 1) Следующие начисление АП: Code
<?php mysql_connect("localhost","username","password"); mysql_select_db("characters"); date_default_timezone_set("UTC"); //Указать свой часовой пояс $result = mysql_query("SELECT `value` FROM `worldstates` WHERE `entry` = 20001"); $data = mysql_fetch_array($result); echo "Время следующего начисления Arena Points: " .date("d-m-Y H:i:s", $data['value']); ?>
2)Регистрация + Каптча: Разделил регу и каптчу
Рега:
Code
<?php $tbc = 2; $realmd = mysql_connect("$host:$port", "$user", "$pass", True); mysql_selectdb("$dbr", $realmd); echo " <script type=\"text/javascript\"> function isAlphaNumeric(value) { if (value.match(/^[a-zA-Z0-9_]+$/)) return true; return false; } function checkform(f) { if (f.account.value == \"\") { alert(\"Введите логин\"); return false; } if (!isAlphaNumeric(f.account.value)) { alert(\"Запрещенные символы в логине\"); return false; } if (f.password.value==\"\") { alert(\"Введите пароль\"); return false; } if (!isAlphaNumeric(f.password.value)) { alert(\"Запрещенные символы в пароле\"); return false; } if (f.password2.value==\"\") { alert(\"Вы не ввели повтор пароля\"); return false; } if (f.password.value != f.password2.value) { alert(\"Пароли не совпадают\"); return false; } if (f.email.value==\"\") { alert(\"Вы не ввели e-mail\"); return false; } } </script>"; echo " <font color=#00CC00> </font><br><br> <center> <form method=post action=index.php?id=reg onsubmit=\"return checkform(this)\"> <table> <center> <tr> </tr><td><b><font color=white>*Логин:</font></b></td> <td><input type=text name=account maxlength=20></td> </tr> <center> <tr> <td><b><font color=white>*Пароль:</font></b></td> <td><input type=password name=password maxlength=20></td> </tr> <tr> <td><b><font color=white>*Повторите пароль:</font></b></td> <td><input type=password name=password2 maxlength=20></td> </tr> <center><tr> <td><b><font color=white>*E-mail:</font></b></td> <td><input type=text name=email maxlength=32></td> </tr> <tr> <td><b><font color=white>*Тип игры:</font></b></td> <td><select name=\"expansion\"> <option value=\"0\">ВоВ классик</option> <option value=\"1\">ВоВ БК</option> <option value=\"2\">ВоВ ЛК</option> </select></td> </tr> <tr> <td><img src=\"img.php\" alt=\"\"/></td> <td><input type=text name=\"code\" maxlength=32></td> </tr> <tr> <td colspan=2 style=\"text-align: center;\"><br><input type=submit value=Зарегистрироваться></td> </tr> </table> </form></center>"; if (isset($_POST['account'])) { if ($_COOKIE['reg_num'] != $_POST['code']) {echo "Не верный цифровой код!";exit;} if ($_POST['account'] && strlen($_POST['account'])<=20 && strlen($_POST['account'])>=3 && strlen($_POST['password'])>=3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2']) { if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account'])) die ("<p>Error: SQL-Injection</p>"); if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password'])) die ("<p>Error: SQL-Injection</p>"); $pass1 = ($_POST['password']); $username = ($_POST['account']); $result = mysql_query("SELECT * FROM account WHERE username='".$_POST['account']."' AND sha_pass_hash='$pass1'", $realmd); if (mysql_num_rows($result) != 0) { echo "<center><p><font color=#CC0000><b>Такой аккаунт уже есть!</b></font></p></center>"; } else { $tbc=(int)$_POST['expansion']; if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass1'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "<center><p><font color=#CC0000><b>Ошибка</b></font></p></center>";} else {echo "<center><p><font color=#00CC00><b>Аккаунт успешно зарегестрирован!</b></font></p></center>";} } } else { echo "<center><p><font color=#CC0000><b>Проверьте правильность ввода!</b></font></p></center>"; } } ?>
Каптча:
Code
<?php header("Content-type: image/png"); srand((double)microtime()*1000000); $num = rand('111111','999999'); setcookie('reg_num', $num); $img = imagecreate('50','15'); $back = imagecolorallocate($img, 74, 105 ,207); $black = imagecolorallocate($img, 255,255, 255); imageline($img, 0, 0, 49, 0, $black); imageline($img, 0, 0, 0, 14 , $black); imageline($img, 0, 14, 49, 14 , $black); imageline($img, 49, 0, 49, 14 , $black); imagestring($img,3,5,0,$num,$black); imagepng($img); ?>
ГМ Online:
Code
<html> <body> <table border = "1" align = "center"> <tr> <td>Ник</td> <td>Расса</td> <td>Класс</td> <td>Уровень доступа</td> </tr> <?php /** * @author [Desperado] * @copyright 2010 */ mysql_connect("$localhost", "$db_user", "$db_user_passw"); //соединяемся с базой MySQl mysql_query("SET character_set_database = '$charset'"); //устанавливаем кодировку mysql_query("SET NAMES '$charset'"); //устанавливаем кодировку $content = mysql_query ("select c.name, c.class, c.race, a.gmlevel from characters.characters c inner join realmd.account a on a.id=c.account where a.gmlevel != 0 and c.online = 1"); //достаём нужные данные $online = mysql_num_rows($content); /** * мутим обработку данных из массива */ $class = array(1=>"Воин",2=>"Паладин",3=>"Охотник",4=>"Разбойник",5=>"Жрец", 6=>"Рыцарь Смерти",7=>"Шаман",8=>"Маг",9=>"Чернокнижник",11=>"Друид"); $race = array(1=>"Человек",2=>"Орк",3=>"Дворф",4=>"Ночной Эльф",5=>"Нежить",6=>"Таурен",7=>"Гном",8=>"Тролль", 10=>"Эльф Крови",11=>"Дреней"); $gmlevel = array(1=>'Модератор',2=>'Хелпер',3=>'Гейм Мастер',4=>'Администратор'); /** * если гм нет, выводим неприличное сообщение */ if($online < 1) { echo "<tr><td colspan='4' align='center'>Нет гм, вошедших в игру</td></tr>"; } /** * если гм есть, выводим другое неприличное сообщение */ while ($row = mysql_fetch_array($content)) { $name = $row['name']; echo "<tr><td><b>{$name}</b></td>"; //выводим ник Гм echo "<td><b>{$race[$row['race']]}</b></td>"; //Выводим рассу echo "<td><b>{$class[$row['class']]}</b></td>"; //Выводим класс echo "<td><b>{$gmlevel[$row['gmlevel']]}</b></td></tr>"; //Выводим уровень доступа } ?> </table> </body> </html>
Как же без Статистики? Code
<b> О Сервере <font size = 3 color = red>Ваше название сервера</font></b><br> <? mysql_connect ("$dbip:$dbport","$dblogin","$dbpass"); ?> <? mysql_selectdb ("$cdb"); $online = mysql_query ("select count(*) from characters where online = 1"); $online = mysql_result ($online,0); $allianceonline = mysql_query ("select count(*) from characters where online = 1 and race in (1,3,4,7,11)"); $allianceonline = mysql_result ($allianceonline,0); $hordeonline = mysql_query ("select count(*) from characters where online = 1 and race in (2,5,6,8,10)"); $hordeonline = mysql_result ($hordeonline,0); mysql_selectdb ("$rdb"); $max = mysql_query ("select max(`maxplayers`) from uptime"); $max = mysql_result ($max,0); echo "Игроков Онлайн:<font size = 3 color = red><b> $online</b></font><br>"; echo "Альянса Онлайн:<font size = 3 color = red><b> $allianceonline</b></font><br>"; echo "Орды Онлайн:<font size = 3 color = red><b> $hordeonline</b></font><br>"; ?> <? mysql_select_db ("$rdb"); $uptime = mysql_query ("select max(`starttime`) from `uptime`"); $uptime = time()-mysql_result ($uptime,0); $sec = $uptime%60; $uptime = intval ($uptime/60); $min = $uptime%60; $uptime = intval ($uptime/60); $hours = $uptime%24; $uptime = intval($uptime/24); $days = $uptime; echo "<font size = 3 color = red>Время Работы</font>: $days д $hours ч $min м $sec с<br>"; ?> <? mysql_selectdb ("$rdb"); $max = mysql_query ("select max(`maxplayers`) from uptime"); $max = mysql_result ($max,0); echo "<b>Максимальный <font color=red> Онлайн:</b> <font size = 3 color = Yellow><b>$max</b></font><br><br><br>"; ?>
Самое главное - это конфиг!
Code
<? $ip ="127.0.0.1"; // IP сервера $dbip ="127.0.0.1"; // IP mysql $dbport ="3306"; // порт mysql $gameport ="8085"; // игровой порт $dblogin ="login"; // логин mysql $dbpass ="password"; // пароль mysql $mdb ="world"; // название базы world $rdb ="realmd"; // название базы realmd(auth) $cdb ="characters"; // название базы characters ?>
Смотрим время работы сервера:
Code
<? mysql_select_db ("$rdb"); $uptime = mysql_query ("select max(`starttime`) from `uptime`"); $uptime = time()-mysql_result ($uptime,0); $sec = $uptime%60; $uptime = intval ($uptime/60); $min = $uptime%60; $uptime = intval ($uptime/60); $hours = $uptime%24; $uptime = intval($uptime/24); $days = $uptime; echo "Время Работы: $days д $hours ч $min м $sec с<br>"; ?>
Чат(хз, чат писал не я, тестаните)
<?
/* Tagbox v0.2
Author: Erik Boeters <erik@westland.ath.cx> Website: http://westland.ath.cx/
SQL query:
CREATE TABLE `tagbox` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `message` TEXT NOT NULL, INDEX (`ID`), UNIQUE (`ID`) );
*/
// Database related settings. DEFINE("SERVER", "127.0.0.1"); DEFINE("DATABASE", "westland.ath.cx"); DEFINE("USERNAME", "westland.ath.cx"); DEFINE("DBPASSWORD", "");
// Tagbox related. DEFINE("SHOWTIME", false); // true or false DEFINE("SHOWMESSAGES", "20"); DEFINE("TAGBOXFONTSIZE", "8"); // in pixels DEFINE("TAGBOXWIDTH", "190"); // in pixels DEFINE("TAGBOXHEIGHT", "70"); // in pixels DEFINE("BORDERWIDTH", "1"); // in pixels DEFINE("BORDERCOLOR", "#CCCCCC"); // in HEX DEFINE("BGCOLOR", "#FBFBFB"); // in HEX
// Not neccesary to modify.
$db = mysql_connect(SERVER, USERNAME, DBPASSWORD); DEFINE("S", $PHP_SELF); $styleprops = array(TAGBOXFONTSIZE,TAGBOXFONTSIZE,TAGBOXWIDTH,TAGBOXHEIGHT,BORDERWIDTH,BORDERCOLOR,BGCOLOR);
function showMessages($m,$s,$style) { $queryGetMessages = "SELECT * FROM tagbox order by ID DESC LIMIT 0, $m"; $resultGetMessages = mysql_db_query(DATABASE, $queryGetMessages); $queryCountMessages = "SELECT * FROM tagbox"; $resultCountMessages = mysql_db_query(DATABASE, $queryCountMessages); $o .=" <form name=\"tagbox\" action=\"$s\" method=\"post\">\n"; $o .=" <input type=\"hidden\" name=\"tagboxa\" value=\"sm\" /> <textarea title=\"# of messages: ".mysql_num_rows($resultCountMessages)."\"\n"; $o .=" style=\"WIDTH: $style[2]px;background-color : $style[6];HEIGHT: $style[3];border: $style[4]px solid $style[5];font-size: $style[0]pt;\" name=\"messages\"\n"; $o .=" readonly=\"readonly\">\n"; for($i=0;$row=mysql_fetch_array($resultGetMessages);$i++) { $o .="$row[message]\n"; } $o .=" </textarea><br />\n"; $o .=" <input name=\"newmessage\"\n"; $o .=" style=\"WIDTH: $style[2]px;background-color : $style[6];border: $style[4]px solid $style[5];font-size: $style[0]pt;line-height: ".($style[0]+1)."pt;\" />\n"; $o .=" </form>\n"; $o .=" <script language=\"JavaScript\" type=\"text/javascript\">\n"; $o .=" document.tagbox.newmessage.focus()\n"; $o .=" </script>\n"; return $o; }
function sendMessage($m,$SERVER_NAME,$REQUEST_URI) { if (!$m) { return false; } if (SHOWTIME) { $m = date ("G:i").">$m"; } else { $m = ">$m"; } $m = htmlspecialchars($m); $querySendMessage = "INSERT INTO `tagbox` (`ID`, `message`) VALUES ('', '$m')"; $resultSendMessage = mysql_db_query(DATABASE, $querySendMessage); if (!$resultSendMessage) { return false; } else { header("Location: http://".$SERVER_NAME.$REQUEST_URI); } }
switch ($tagboxa) { case "sm": print sendMessage($newmessage,$SERVER_NAME,$REQUEST_URI); break; }
mysql_close($db);
?>
<html> <head> <title> Tagbox example </title> </head> <body> <?print showMessages(SHOWMESSAGES,S,$styleprops);?> </body> </html>
Многие скрипты написаны мной и некоторые взяты с разных сайтов. Спасибо за внимание.
P.s Прошу привязать тему, скрипты буду обновлятьДобавлено (20.12.2010, 21:52) --------------------------------------------- http://www.wow-info.net/forum/65-505-1
Посмотрел и понял, что приопаздал я....СОри, тему в топку тогда. Но у него тупо копипаст с вовжопе