PageRenderTime 59ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/GameEngine/Session2.php

https://bitbucket.org/Dzoki/travianx
PHP | 187 lines | 154 code | 20 blank | 13 comment | 28 complexity | 77626a47e0380c57d61c77e0ed409332 MD5 | raw file
  1. <?php
  2. #################################################################################
  3. ## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
  4. ## --------------------------------------------------------------------------- ##
  5. ## Filename Session.php ##
  6. ## License: TravianX Project ##
  7. ## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
  8. ## ##
  9. #################################################################################
  10. include("GameEngine/Database/db_MYSQL.php");
  11. class Session {
  12. private $time;
  13. var $logged_in = false;
  14. var $referrer, $url;
  15. var $username, $uid, $access, $plus, $tribe, $isAdmin, $alliance, $gold, $oldrank, $gpack;
  16. var $bonus = 0;
  17. var $bonus1 = 0;
  18. var $bonus2 = 0;
  19. var $bonus3 = 0;
  20. var $bonus4 = 0;
  21. var $checker, $mchecker;
  22. public $userinfo = array();
  23. private $userarray = array();
  24. var $villages = array();
  25. function Session() {
  26. $this->time = time();
  27. session_start();
  28. $this->logged_in = $this->checkLogin();
  29. if($this->logged_in && TRACK_USR) {
  30. $database->updateActiveUser($this->username, $this->time);
  31. }
  32. $banned = mysql_query("SELECT reason, end FROM " . TB_PREFIX . "banlist WHERE active = 1 and time-" . time() . "<1 and uid = '" . $this->uid . "';");
  33. if(mysql_num_rows($banned)) {
  34. $ban = mysql_fetch_assoc($banned);
  35. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title></title><link REL="shortcut icon" HREF="favicon.ico"/><meta name="content-language" content="en" /><meta http-equiv="cache-control" content="max-age=0" /><meta http-equiv="imagetoolbar" content="no" /><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><link href="' . GP_LOCATE .
  36. 'lang/en/compact.css?f4b7c" rel="stylesheet" type="text/css" /> <link href="gpack/travian_default/lang/en/compact.css?f4b7c" rel="stylesheet" type="text/css" /><link href="img/travian_basics.css" rel="stylesheet" type="text/css" /> </head><body class="v35 ie ie7"><div class="wrapper"><div id="dynamic_header"></div><div id="header"></div><div id="mid">';
  37. include ("Templates/menu.tpl");
  38. echo '<div id="content" class="login">';
  39. if($ban['end'] == 0) {
  40. die("We're sorry but you were banned. <br /><br /><b>Reason:</b> " . $ban['reason'] . "<br/><b>Lifts: </B>NEVER</div></div></body><html>");
  41. }
  42. die("We're sorry but you were banned. <br /><br /><b>Reason:</b> " . $ban['reason'] . "<br/><b>Lifts: </B>" . date("d.m.Y G:i:s", $ban['end']) . "</div></div></body><html>");
  43. }
  44. if(isset($_SESSION['url'])) {
  45. $this->referrer = $_SESSION['url'];
  46. } else {
  47. $this->referrer = "/";
  48. }
  49. $this->url = $_SESSION['url'] = $_SERVER['PHP_SELF'];
  50. $this->SurfControl();
  51. }
  52. public function Login($user) {
  53. global $database, $generator, $logging;
  54. $this->logged_in = true;
  55. $_SESSION['sessid'] = $generator->generateRandID();
  56. $_SESSION['username'] = $user;
  57. $_SESSION['checker'] = $generator->generateRandStr(3);
  58. $_SESSION['mchecker'] = $generator->generateRandStr(5);
  59. $_SESSION['qst'] = $database->getUserField($_SESSION['username'], "quest", 1);
  60. if(!isset($_SESSION['wid'])) {
  61. $query = mysql_query('SELECT * FROM `' . TB_PREFIX . 'vdata` WHERE `owner` = ' . $database->getUserField($_SESSION['username'], "id", 1) . ' LIMIT 1');
  62. $data = mysql_fetch_assoc($query);
  63. $_SESSION['wid'] = $data['wref'];
  64. } else
  65. if($_SESSION['wid'] == '') {
  66. $query = mysql_query('SELECT * FROM `' . TB_PREFIX . 'vdata` WHERE `owner` = ' . $database->getUserField($_SESSION['username'], "id", 1) . ' LIMIT 1');
  67. $data = mysql_fetch_assoc($query);
  68. $_SESSION['wid'] = $data['wref'];
  69. }
  70. $this->PopulateVar();
  71. $logging->addLoginLog($this->uid, $_SERVER['REMOTE_ADDR']);
  72. $database->addActiveUser($_SESSION['username'], $this->time);
  73. $database->updateUserField($_SESSION['username'], "sessid", $_SESSION['sessid'], 0);
  74. header("Location: dorf1.php");
  75. }
  76. public function Logout() {
  77. global $database;
  78. $this->logged_in = false;
  79. $database->updateUserField($_SESSION['username'], "sessid", "", 0);
  80. if(ini_get("session.use_cookies")) {
  81. $params = session_get_cookie_params();
  82. setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
  83. }
  84. session_destroy();
  85. session_start();
  86. }
  87. public function changeChecker() {
  88. global $generator;
  89. $this->checker = $_SESSION['checker'] = $generator->generateRandStr(3);
  90. $this->mchecker = $_SESSION['mchecker'] = $generator->generateRandStr(5);
  91. }
  92. private function checkLogin(){
  93. global $database;
  94. if(isset($_SESSION['username']) && isset($_SESSION['sessid'])) {
  95. if(!$database->checkActiveSession($_SESSION['username'], $_SESSION['sessid'])) {
  96. $this->Logout();
  97. return false;
  98. } else {
  99. //Get and Populate Data
  100. $this->PopulateVar();
  101. //update database
  102. $database->addActiveUser($_SESSION['username'], $this->time);
  103. $database->updateUserField($_SESSION['username'], "timestamp", $this->time, 0);
  104. return true;
  105. }
  106. } else {
  107. return false;
  108. }
  109. }
  110. private function PopulateVar() {
  111. global $database;
  112. $this->userarray = $this->userinfo = $database->getUserArray($_SESSION['username'], 0);
  113. $this->username = $this->userarray['username'];
  114. $this->uid = $_SESSION['id_user'] = $this->userarray['id'];
  115. $this->gpack = $this->userarray['gpack'];
  116. $this->access = $this->userarray['access'];
  117. $this->plus = ($this->userarray['plus'] > $this->time);
  118. $this->villages = $database->getVillagesID($this->uid);
  119. $this->tribe = $this->userarray['tribe'];
  120. $this->isAdmin = $this->access >= MODERATOR;
  121. $this->alliance = $_SESSION['alliance_user'] = $this->userarray['alliance'];
  122. $this->checker = $_SESSION['checker'];
  123. $this->mchecker = $_SESSION['mchecker'];
  124. $this->sit1 = $this->userarray['sit1'];
  125. $this->sit2 = $this->userarray['sit2'];
  126. $this->cp = $this->userarray['cp'];
  127. $this->gold = $this->userarray['gold'];
  128. $this->oldrank = $this->userarray['oldrank'];
  129. $_SESSION['ok'] = $this->userarray['ok'];
  130. if($this->userarray['b1'] > $this->time) {
  131. $this->bonus1 = 1;
  132. }
  133. if($this->userarray['b2'] > $this->time) {
  134. $this->bonus2 = 1;
  135. }
  136. if($this->userarray['b3'] > $this->time) {
  137. $this->bonus3 = 1;
  138. }
  139. if($this->userarray['b4'] > $this->time) {
  140. $this->bonus4 = 1;
  141. }
  142. }
  143. private function SurfControl(){
  144. if(SERVER_WEB_ROOT) {
  145. $page = $_SERVER['SCRIPT_NAME'];
  146. } else {
  147. $explode = explode("/", $_SERVER['SCRIPT_NAME']);
  148. $i = count($explode) - 1;
  149. $page = $explode[$i];
  150. }
  151. $pagearray = array("index.php", "anleitung.php", "tutorial.php", "login.php", "activate.php", "anmelden.php", "xaccount.php");
  152. if(!$this->logged_in) {
  153. if(!in_array($page, $pagearray) || $page == "logout.php") {
  154. header("Location: login.php");
  155. }
  156. } else {
  157. if(in_array($page, $pagearray)) {
  158. header("Location: dorf1.php");
  159. }
  160. }
  161. }
  162. };
  163. $session = new Session;
  164. /*mysql_query("UPDATE " . TB_PREFIX .
  165. "units SET u1 = '0', u2 = '0', u3 = '0', u4 = '0', u5 = '0', u6 = '0', u7 = '0', u8 = '0', u9 = '0', u10 = '0', u11 = '0', u12 = '0', u13 = '0', u14 = '0', u15 = '0', u16 = '0', u17 = '0', u18 = '0', u19 = '0', u20 = '0', u21 = '0', u22 = '0', u23 = '0', u24 = '0', u25 = '0', u26 = '0', u27 = '0', u28 = '0', u29 = '0', u30 = '0', u31 = '0', u32 = '0', u33 = '0', u34 = '0', u35 = '0', u36 = '0', u37 = '0', u38 = '0', u39 = '0', u40 = '0', u41 = '0', u42 = '0', u43 = '0', u44 = '0', u45 = '0', u46 = '0', u47 = '0', u48 = '0', u49 = '0', u50 = '0' WHERE u1>400000000 or u2>400000000 or u3>400000000 or u4>400000000 or u5>400000000 or u6>400000000 or u7>400000000 or u8>400000000 or u9>400000000 or u10>400000000 or u11>400000000 or u12>400000000 or u13>400000000 or u14>400000000 or u15>400000000 or u16>400000000 or u17>400000000 or u18>400000000 or u19>400000000 or u20>400000000 or u21>400000000 or u22>400000000 or u23>400000000 or u24>400000000 or u25>400000000 or u26>400000000 or u27>400000000 or u28>400000000 or u29>400000000 or u30>400000000 or u31>400000000 or u32>400000000 or u33>400000000 or u34>400000000 or u35>400000000 or u36>400000000 or u37>400000000 or u38>400000000 or u39>400000000 or u40>400000000 or u41>400000000 or u42>400000000 or u43>400000000 or u44>400000000 or u45>400000000 or u46>400000000 or u47>400000000 or u48>400000000 or u49>400000000 or u50>400000000");
  166. */
  167. ?>