Файл: DARK WARS/dark_war/start.php
Строк: 117
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>Авторизация</title>
<link rel="shortcut icon" href="/style/shield.ico" />
<link rel="stylesheet" type="text/css" href="/dark_war/style/style.css" />
<link rel="stylesheet" type="text/css" href="/dark_war/style/originalstyle.css" />
<meta http-equiv="content-Type" content="application/xhtml+xml; charset=utf-8" />
</head>
<body>
<?php
list ( $msec, $sec ) = explode(chr(32), microtime()); // время запуска скрипта
define('TIME_START', $sec + $msec); // время запуска скрипта
// Домашняя страница
if (file_exists($_SERVER ['DOCUMENT_ROOT'].'/dark_war/class/ini.class.php')) {
define('H', $_SERVER ['DOCUMENT_ROOT']); // корневая директория сайта
} else {
/* Если $_SERVER ['DOCUMENT_ROOT'] не является корневой директорией сайта, то будем искать ее вручную */
$rel_path = '';
$searched_file = 'dark_war/class/ini.class.php';
for ($i = 0; $i < 10; $i++) {
if (file_exists($rel_path . $searched_file)) {
$abs_path = realpath($rel_path . $searched_file);
break;
}
$rel_path .= '../';
}
define('H', str_replace($searched_file, '', str_replace('\', '/', $abs_path))); // корневая директория сайта
unset($rel_path, $searched_file, $abs_path);
}
// Обычное время
define('TIME', time());
@session_name('SESS');
@session_start();
$sess=mysql_escape_string(session_id());
if (!eregi('[A-z0-9]{32}',$sess))$sess=md5(rand(09009,999999));
if (@function_exists('ini_set')) {
// время жизни сессии
ini_set('session.cache_expire', 600);
// игнорировать повторяющиеся ошибки
ini_set('ignore_repeated_errors', true);
// показываем только фатальные ошибки
ini_set('error_reporting', E_ERROR);
// непосредственно, включаем показ ошибок
ini_set('display_errors', true);
}
///////////////////// // автоматическая загрузка классов
function AutoloadClass($class_name) {
$path = H . '/dark_war/class/' . strtolower($class_name) . '.class.php';
if (file_exists($path)) {
include_once ($path);
}
}
spl_autoload_register('AutoloadClass');
///////////////////////////////////////////////////////// <<<<-----|
$setGame = ini::array_ini(H.'/dark_war/files_ini/settings.ini');
@mysql_connect('localhost', 'root', '12345') or die('Нет соединения с MySQL сервером');
@mysql_select_db('111') or die('Нет доступа к выбранной базе данных');
mysql_query('SET NAMES "utf8"');
// упрощенный вариант mysql_real_escape_string
function my_esc($str){
return mysql_real_escape_string($str);
}
// Все для авторизации пользователя, для DCMS 6.6.4
if (isset($_SESSION['id_user']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = $_SESSION[id_user] LIMIT 1"), 0)) {
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".$_SESSION['id_user']."' LIMIT 1"));
mysql_query("UPDATE `user` SET `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
$user['type_input']='session';
} elseif (isset($_COOKIE['id_user']) && isset($_COOKIE['pass']) && $_COOKIE['id_user']!=NULL && $_COOKIE['pass']!=NULL) {
include_once H.'/fnc.php';
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = ".intval($_COOKIE['id_user'])."
AND `pass` = '".shif(cookie_decrypt($_COOKIE['pass'],intval($_COOKIE['id_user'])))."'
LIMIT 1"), 0)==1) {
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".$_COOKIE['id_user']."' LIMIT 1"));
$_SESSION['id_user'] = $user['id'];
mysql_query("UPDATE `user` SET `data_aut` = ".time().", `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
}
} else {
setcookie('id_user');
setcookie('pass');
}
////////////////////////////////////////////// <<<<<<<--------|||
// Если пользователь не зашел на сам сайт, выкидываем из игры, тут только авторезированные
if (!$user) {
header("Location: /index.php");exit;
}
//////////////////////////// <<<<<<<--------||
// Если еть пользователь на сайте авторезируем в игре
$is_player = mysql_fetch_array(mysql_query ("SELECT id FROM `dark_war_users` WHERE `id_user` = '$user[id]' LIMIT 1"));
$player = new player($is_player['id']);
//////////////////////////////// <<<<<<<<<----------||
//Если нету игрока перекидуем на авторизацию в самой игре
if ($_SERVER['PHP_SELF']!='/dark_war/login.php') {
if (!$player->id) {
header("Location: /dark_war/login.php");exit;
}
}
///////////////////////////////////// <<<<<<<<--------||
// Забаниных перекидываем на страницу бана
// Иснимаем бан у кого закончился
mysql_query("DELETE FROM `dark_war_ban` WHERE `time_end` <= '".TIME."' LIMIT 1");
$banned = mysql_result(mysql_query("SELECT COUNT(*) FROM `dark_war_ban` WHERE `id_player` = '{$player->id}'"), 0);
if ($banned && $_SERVER['PHP_SELF']!='/dark_war/ban.php') {
header("Location: /dark_war/ban.php");
exit;
}
//////////////////////////////////// <<<<<<<<<<<-------------||
/////////////////// Удаляем кто не онлай
mysql_query("DELETE FROM `dark_war_online_us` WHERE `time_last` < '" . (TIME - 600) . "'");
/////////////////////// Поддержка онлайна
$q = mysql_query("SELECT * FROM `dark_war_online_us` WHERE `id_player` = '{$player->id}' LIMIT 1");
if (mysql_num_rows($q)) {
mysql_query("UPDATE `dark_war_online_us` SET `time_last` = '".TIME."' WHERE `id_player` = '{$player->id}' LIMIT 1");
}
if ($player->id && !mysql_num_rows($q)) {
mysql_query("INSERT INTO `dark_war_online_us` (`id_player`, `time_last`) VALUES ('{$player->id}', '".TIME."')");
}
//////////////////////////////////////// <<<<<<------||
// Чтобы знать когда заходил последний раз
mysql_query("UPDATE `dark_war_users` SET `time_last` = '".TIME."' WHERE `id` = '{$player->id}' LIMIT 1");
///////////////////////////////////////// <<<<<-----||
/////////////////////////////// Опыт игрока, если достиг обновляем левел и увеличиваем опыт до следующего левела
if ($player->present_level >= $player->next_level) {
$lvl = ((($player->next_level - ($player->next_level * 12 / 100) + $player->next_level) / 2) * 0.6) + ($player->next_level * 17 / 100) ;
mysql_query("UPDATE `dark_war_users` SET `journal_new_msg` = (`journal_new_msg` + '1'), `level` = `level`+'1', `next_level` = `next_level`+'$lvl',
`hp` = `hp` + '5', `hp_max` = `hp_max` + '5', `mp` = `mp` + '2', `mp_max` = `mp_max` + '2',
`gold` = `gold` + '100', `silver` = `silver` + '100'
WHERE `id` = '{$player->id}' LIMIT 1");
mysql_query("INSERT INTO `dark_war_journal` (`id_player`, `title`, `msg`, `read`, `time`)
VALUES ('{$player->id}','Повышение уровня', 'Поздравляем тебя с повышением уровня. 100 золотых монет и 100 серебрянных для поддержания тонуса. =) Удачи тебе.', '0', TIME())");
}
///////////////////////////////// <<<<<<<------||
$game = new game();
// Столовая открываеться и закрываеться каждый час
// Сделано только чтобы не запускать cron, так как не каждый умеет настроить cron
if ($setGame['open_canteen'] + 60*60 < TIME) {
$game->open_canteen = TIME;
if ($setGame['access_canteen']) {
$game->access_canteen = 0;
} else {
$game->access_canteen = 1;
}
$game->save_settings();
}
///////////////////////////// <<<<<<<<<<-----------||
if ($player->hp > $player->hp_max) {$player->hp = $player->hp_max;}
if ($player->mp > $player->mp_max) {$player->mp = $player->mp_max;}
if ($player->hp_max > 100) {$energy = 100;}
?>