Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

startup.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 5.44 KiB


001  <?php
002  /**
003  *
004  * This file is part of the phpBB Forum Software package.
005  *
006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
007  * @license GNU General Public License, version 2 (GPL-2.0)
008  *
009  * For full copyright and license information, please see
010  * the docs/CREDITS.txt file.
011  *
012  */
013   
014  /**
015  */
016  if (!defined('IN_PHPBB'))
017  {
018      exit;
019  }
020   
021  // Report all errors, except notices and deprecation messages
022  if (!defined('E_DEPRECATED'))
023  {
024      define('E_DEPRECATED', 8192);
025  }
026  $level = E_ALL & ~E_NOTICE & ~E_DEPRECATED;
027  error_reporting($level);
028   
029  /*
030  * Remove variables created by register_globals from the global scope
031  * Thanks to Matt Kavanagh
032  */
033  function deregister_globals()
034  {
035      $not_unset = array(
036          'GLOBALS'    => true,
037          '_GET'        => true,
038          '_POST'        => true,
039          '_COOKIE'    => true,
040          '_REQUEST'    => true,
041          '_SERVER'    => true,
042          '_SESSION'    => true,
043          '_ENV'        => true,
044          '_FILES'    => true,
045          'phpEx'        => true,
046          'phpbb_root_path'    => true
047      );
048   
049      // Not only will array_merge and array_keys give a warning if
050      // a parameter is not an array, array_merge will actually fail.
051      // So we check if _SESSION has been initialised.
052      if (!isset($_SESSION) || !is_array($_SESSION))
053      {
054          $_SESSION = array();
055      }
056   
057      // Merge all into one extremely huge array; unset this later
058      $input = array_merge(
059          array_keys($_GET),
060          array_keys($_POST),
061          array_keys($_COOKIE),
062          array_keys($_SERVER),
063          array_keys($_SESSION),
064          array_keys($_ENV),
065          array_keys($_FILES)
066      );
067   
068      foreach ($input as $varname)
069      {
070          if (isset($not_unset[$varname]))
071          {
072              // Hacking attempt. No point in continuing unless it's a COOKIE (so a cookie called GLOBALS doesn't lock users out completely)
073              if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) || isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) || isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) || isset($_FILES['GLOBALS']))
074              {
075                  exit;
076              }
077              else
078              {
079                  $cookie = &$_COOKIE;
080                  while (isset($cookie['GLOBALS']))
081                  {
082                      if (!is_array($cookie['GLOBALS']))
083                      {
084                          break;
085                      }
086   
087                      foreach ($cookie['GLOBALS'] as $registered_var => $value)
088                      {
089                          if (!isset($not_unset[$registered_var]))
090                          {
091                              unset($GLOBALS[$registered_var]);
092                          }
093                      }
094                      $cookie = &$cookie['GLOBALS'];
095                  }
096              }
097          }
098   
099          unset($GLOBALS[$varname]);
100      }
101   
102      unset($input);
103  }
104   
105  // Register globals and magic quotes have been dropped in PHP 5.4
106  if (version_compare(PHP_VERSION, '5.4.0-dev', '>='))
107  {
108      /**
109      * @ignore
110      */
111      define('STRIP', false);
112  }
113  else
114  {
115      @set_magic_quotes_runtime(0);
116   
117      // Be paranoid with passed vars
118      if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on' || !function_exists('ini_get'))
119      {
120          deregister_globals();
121      }
122   
123      define('STRIP', (get_magic_quotes_gpc()) ? true : false);
124  }
125   
126  // Prevent date/time functions from throwing E_WARNING on PHP 5.3 by setting a default timezone
127  if (function_exists('date_default_timezone_set') && function_exists('date_default_timezone_get'))
128  {
129      // For PHP 5.1.0 the date/time functions have been rewritten
130      // and setting a timezone is required prior to calling any date/time function.
131   
132      // Since PHP 5.2.0 calls to date/time functions without having a timezone set
133      // result in E_STRICT errors being thrown.
134      // Note: We already exclude E_STRICT errors
135      // (to be exact: they are not included in E_ALL in PHP 5.2)
136   
137      // In PHP 5.3.0 the error level has been raised to E_WARNING which causes problems
138      // because we show E_WARNING errors and do not set a default timezone.
139      // This is because we have our own timezone handling and work in UTC only anyway.
140   
141      // So what we basically want to do is set our timezone to UTC,
142      // but we don't know what other scripts (such as bridges) are involved,
143      // so we check whether a timezone is already set by calling date_default_timezone_get().
144   
145      // Unfortunately, date_default_timezone_get() itself might throw E_WARNING
146      // if no timezone has been set, so we have to keep it quiet with @.
147   
148      // date_default_timezone_get() tries to guess the correct timezone first
149      // and then falls back to UTC when everything fails.
150      // We just set the timezone to whatever date_default_timezone_get() returns.
151      date_default_timezone_set(@date_default_timezone_get());
152  }
153   
154  // Autoloading of dependencies.
155  // Three options are supported:
156  // 1. If dependencies are installed with Composer, Composer will create a
157  //    vendor/autoload.php. If this file exists it will be
158  //    automatically used by phpBB. This is the default mode that phpBB
159  //    will use when shipped.
160  // 2. To disable composer autoloading, PHPBB_NO_COMPOSER_AUTOLOAD can be specified.
161  //       Additionally specify PHPBB_AUTOLOAD=/path/to/autoload.php in the
162  //    environment. This is useful for running CLI scripts and tests.
163  //    /path/to/autoload.php should define and register class loaders
164  //    for all of phpBB's dependencies.
165  // 3. You can also set PHPBB_NO_COMPOSER_AUTOLOAD without setting PHPBB_AUTOLOAD.
166  //    In this case autoloading needs to be defined before running any phpBB
167  //    script. This might be useful in cases when phpBB is integrated into a
168  //    larger program.
169  if (getenv('PHPBB_NO_COMPOSER_AUTOLOAD'))
170  {
171      if (getenv('PHPBB_AUTOLOAD'))
172      {
173          require(getenv('PHPBB_AUTOLOAD'));
174      }
175  }
176  else
177  {
178      if (!file_exists($phpbb_root_path . 'vendor/autoload.php'))
179      {
180          trigger_error(
181              'Composer dependencies have not been set up yet, run ' .
182              "'php ../composer.phar install' from the phpBB directory to do so.",
183              E_USER_ERROR
184          );
185      }
186      require($phpbb_root_path . 'vendor/autoload.php');
187  }
188   
189  $starttime = explode(' ', microtime());
190  $starttime = $starttime[1] + $starttime[0];
191