global.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:6k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: global.php,v $
  15. // | $Date: 2004/02/12 21:16:57 $
  16. // | $Revision: 1.62 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Initialization and authentication (administration interface)
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. ############################### INCLUDE FILES ###############################
  23. define('ADMINZONE', 1);
  24. define('LOC_JAVASCRIPT', './../includes/javascript/');
  25. define('LOC_IMAGES', './../images/');
  26. define('LOC_CSS', './../includes/css/');
  27. define('INCLUDE_PATH', './../includes/');
  28. require_once(INCLUDE_PATH . 'init.php');
  29. require_once(INCLUDE_PATH . 'config.php');
  30. ############################### SECURITY CHECK ###############################
  31. if (!developer_check(1)) {
  32. if (file_exists('./../install/index.php')) {
  33. echo "<html><body><p>Security alert! index.php was found in the /install/ folder. This file (or the install directory) must be deleted or renamed via FTP, SSH, or telnet
  34. before the administration interface will run.</p></body></html>";
  35. exit();
  36. }
  37. }
  38. ############################### SESSIONS / USER DATA ###############################
  39. // log out
  40. if ($_REQUEST['do'] == 'logout') {
  41. // it needs to be a valid session before we can log out of it otherwise we are just adding
  42. // entries to tech_log that we shouldn't be
  43. $session = validate_session(NULL, NULL, 1);
  44. logout_tech_session($_COOKIE['dp_admin_sessionid'], $session['techid']);
  45. global_login('You have been logged out.', 1);
  46. }
  47. // If we are *NOT* showing the login page or running a cron job, perform authentication checks
  48. if (!defined('LOGIN') and !(defined('CRONZONE'))) { 
  49. $session = validate_session(NULL, NULL, 1);
  50. if ($_REQUEST['original_uri']) {
  51. $req = $_REQUEST['original_uri'];
  52. } else {
  53. $req = $_SERVER['REQUEST_URI'];
  54. }
  55. // we have a session so get tech details
  56. if (is_array($session)) {
  57. if ($session['techid']) {
  58. $user = $db->query_return("SELECT * FROM tech WHERE id = '$session[techid]'");
  59. }
  60. // bad session, check userid/password if they are being remembered
  61. } elseif ($_COOKIE['dp_admin_userid'] AND $_COOKIE['dp_admin_password']) {
  62. $user = $db->query_return("
  63. SELECT * FROM tech 
  64. WHERE id = '" . mysql_escape_string($_COOKIE['dp_admin_userid']) . "' 
  65. AND password_cookie = '" . mysql_escape_string($_COOKIE['dp_admin_password']) . "'
  66. ");
  67. // If the cookie is bogus but he's logging in anyway, keep going.
  68. if (!is_array($user) AND !(($_REQUEST['login_form'] == 'login') OR strtolower($_REQUEST['submit'] == 'login'))) {
  69. delete_cookies();
  70. sleep(1);
  71. global_login('The cookie your browser provided is invalid.');
  72. }
  73. // if we are here then the username/password match so we make a new session based on that
  74. $session = make_session($user[id]);
  75. dp_setcookie('dp_admin_sessionid', $session[sessionid]);
  76. }
  77. // is tech/admin trying to login
  78. if ($_REQUEST['login_form'] == 'login' OR strtolower($_REQUEST['submit']) == 'login') { 
  79. $user = $db->query_return("
  80. SELECT * FROM tech 
  81. WHERE username = '". mysql_escape_string($_POST[username]) . "'
  82. ");
  83. // check username exists
  84. if (!$db->num_rows()) {
  85. delete_cookies();
  86. sleep(1);
  87. global_login('The username you specified is not registered.');
  88. }
  89. // check username and password are coorect
  90. if (($user['id']) AND ($_REQUEST['username'] != '') AND ($_REQUEST['password'] == $user['password'])) {
  91. // make session from logged in user
  92. $session = make_session($user[id]);
  93. // set cookie based on session
  94. dp_setcookie('dp_admin_sessionid', $session[sessionid], $ever);
  95. // if we are staying logged in, we remember the userid/password at this point
  96. if ($_REQUEST[cookie]) {
  97. dp_setcookie('dp_admin_userid', $user[id], 'ever');
  98. dp_setcookie('dp_admin_password', $user[password_cookie], 'ever');
  99. }
  100. // Rebuild GET, POST and FILE data
  101. $_getvars = unserialize($_POST['_getvars']);
  102. $_GET = array_merge($_GET, $_getvars);
  103. $_postvars = unserialize($_POST['_postvars']);
  104. $_POST = array_merge($_POST, $_postvars);
  105. $_filevars = unserialize($_POST['_filevars']);
  106. $_FILES = array_merge($_FILES, $_filevars);
  107. if ($_REQUEST['_request']) {
  108. $_REQUEST = unserialize($_REQUEST['_request']);
  109. } else {
  110. $_REQUEST = array_merge($_GET,$_POST,$_COOKIE);
  111. }
  112. } else { 
  113. // username is correct, but password is wrong
  114. delete_cookies();
  115. sleep(1);
  116. global_login('The password you specified was invalid.');
  117. }
  118. }
  119. // no session at this point? need to login
  120. if (!is_array($session)) {
  121. global_login('Please login');
  122. }
  123. // is tech disabled?
  124. if (is_array($user)) {
  125. if ($user[disabled]) {
  126. sleep(1);
  127. global_login($user['disabled_reason']);
  128. }
  129. }
  130. // Don't let non-admins in, either.
  131. if (!$user[is_admin]) {
  132. global_login('You are not an administrator.');
  133. }
  134. }
  135. $settings['timezone'] -= ($settings['timezone'] - $settings['timezone_offset']);
  136. if ($user['timezone'] != NULL) {
  137.     $settings['timezone'] -= ($settings['timezone'] - $user['timezone']);
  138. }   
  139. if ($user['timezone_dst']) {
  140.     $settings['timezone']++;
  141. }   
  142. /*
  143. FROM HERE THE USER HAS BEEN AUTHENTICATED (or in cron mode / logging in in login.php)
  144. */
  145. ?>