Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

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

common.php

Zuletzt modifiziert: 09.10.2024, 12:50 - Dateigröße: 5.19 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  * Minimum Requirement: PHP 5.3.9
016  */
017   
018  if (!defined('IN_PHPBB'))
019  {
020      exit;
021  }
022   
023  require($phpbb_root_path . 'includes/startup.' . $phpEx);
024  require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
025   
026  $phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
027  $phpbb_class_loader->register();
028   
029  $phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx);
030  extract($phpbb_config_php_file->get_all());
031   
032  if (!defined('PHPBB_ENVIRONMENT'))
033  {
034      @define('PHPBB_ENVIRONMENT', 'production');
035  }
036   
037  if (!defined('PHPBB_INSTALLED'))
038  {
039      // Redirect the user to the installer
040      require($phpbb_root_path . 'includes/functions.' . $phpEx);
041   
042      // We have to generate a full HTTP/1.1 header here since we can't guarantee to have any of the information
043      // available as used by the redirect function
044      $server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));
045      $server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
046      $secure = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 1 : 0;
047   
048      if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
049      {
050          $secure = 1;
051          $server_port = 443;
052      }
053   
054      $script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
055      if (!$script_name)
056      {
057          $script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
058      }
059   
060      // $phpbb_root_path accounts for redirects from e.g. /adm
061      $script_path = trim(dirname($script_name)) . '/' . $phpbb_root_path . 'install/app.' . $phpEx;
062      // Replace any number of consecutive backslashes and/or slashes with a single slash
063      // (could happen on some proxy setups and/or Windows servers)
064      $script_path = preg_replace('#[\\\\/]{2,}#', '/', $script_path);
065   
066      // Eliminate . and .. from the path
067      require($phpbb_root_path . 'phpbb/filesystem.' . $phpEx);
068      $phpbb_filesystem = new phpbb\filesystem\filesystem();
069      $script_path = $phpbb_filesystem->clean_path($script_path);
070   
071      $url = (($secure) ? 'https://' : 'http://') . $server_name;
072   
073      if ($server_port && (($secure && $server_port <> 443) || (!$secure && $server_port <> 80)))
074      {
075          // HTTP HOST can carry a port number...
076          if (strpos($server_name, ':') === false)
077          {
078              $url .= ':' . $server_port;
079          }
080      }
081   
082      $url .= $script_path;
083      header('Location: ' . $url);
084      exit;
085  }
086   
087  // In case $phpbb_adm_relative_path is not set (in case of an update), use the default.
088  $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relative_path : 'adm/';
089  $phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
090   
091  // Include files
092  require($phpbb_root_path . 'includes/functions.' . $phpEx);
093  require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
094  include($phpbb_root_path . 'includes/functions_compatibility.' . $phpEx);
095   
096  require($phpbb_root_path . 'includes/constants.' . $phpEx);
097  require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
098   
099  if (PHPBB_ENVIRONMENT === 'development')
100  {
101      \phpbb\debug\debug::enable();
102  }
103  else
104  {
105      set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
106  }
107   
108  $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
109  $phpbb_class_loader_ext->register();
110   
111  // Set up container
112  try
113  {
114      $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
115      $phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();
116  }
117  catch (InvalidArgumentException $e)
118  {
119      if (PHPBB_ENVIRONMENT !== 'development')
120      {
121          trigger_error(
122              'The requested environment ' . PHPBB_ENVIRONMENT . ' is not available.',
123              E_USER_ERROR
124          );
125      }
126      else
127      {
128          throw $e;
129      }
130  }
131   
132  $phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
133  $phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
134   
135  require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
136   
137  register_compatibility_globals();
138   
139  // Add own hook handler
140  require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
141  $phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
142   
143  /* @var $phpbb_hook_finder \phpbb\hook\finder */
144  $phpbb_hook_finder = $phpbb_container->get('hook_finder');
145   
146  foreach ($phpbb_hook_finder->find() as $hook)
147  {
148      @include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
149  }
150   
151  /**
152  * Main event which is triggered on every page
153  *
154  * You can use this event to load function files and initiate objects
155  *
156  * NOTE:    At this point the global session ($user) and permissions ($auth)
157  *        do NOT exist yet. If you need to use the user object
158  *        (f.e. to include language files) or need to check permissions,
159  *        please use the core.user_setup event instead!
160  *
161  * @event core.common
162  * @since 3.1.0-a1
163  */
164  $phpbb_dispatcher->dispatch('core.common');
165