~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/php/phpBB3/common.php

Replace most userservice req.throw_error()s with new exceptions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
*
 
4
* @package phpBB3
 
5
* @version $Id: common.php,v 1.214 2007/11/18 15:37:17 naderman Exp $
 
6
* @copyright (c) 2005 phpBB Group
 
7
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
 
8
*
 
9
* Minimum Requirement: PHP 4.3.3
 
10
*/
 
11
 
 
12
/**
 
13
*/
 
14
if (!defined('IN_PHPBB'))
 
15
{
 
16
        exit;
 
17
}
 
18
 
 
19
$starttime = explode(' ', microtime());
 
20
$starttime = $starttime[1] + $starttime[0];
 
21
 
 
22
// Report all errors, except notices
 
23
error_reporting(E_ALL ^ E_NOTICE);
 
24
 
 
25
/*
 
26
* Remove variables created by register_globals from the global scope
 
27
* Thanks to Matt Kavanagh
 
28
*/
 
29
function deregister_globals()
 
30
{
 
31
        $not_unset = array(
 
32
                'GLOBALS'       => true,
 
33
                '_GET'          => true,
 
34
                '_POST'         => true,
 
35
                '_COOKIE'       => true,
 
36
                '_REQUEST'      => true,
 
37
                '_SERVER'       => true,
 
38
                '_SESSION'      => true,
 
39
                '_ENV'          => true,
 
40
                '_FILES'        => true,
 
41
                'phpEx'         => true,
 
42
                'phpbb_root_path'       => true
 
43
        );
 
44
 
 
45
        // Not only will array_merge and array_keys give a warning if
 
46
        // a parameter is not an array, array_merge will actually fail.
 
47
        // So we check if _SESSION has been initialised.
 
48
        if (!isset($_SESSION) || !is_array($_SESSION))
 
49
        {
 
50
                $_SESSION = array();
 
51
        }
 
52
 
 
53
        // Merge all into one extremely huge array; unset this later
 
54
        $input = array_merge(
 
55
                array_keys($_GET),
 
56
                array_keys($_POST),
 
57
                array_keys($_COOKIE),
 
58
                array_keys($_SERVER),
 
59
                array_keys($_SESSION),
 
60
                array_keys($_ENV),
 
61
                array_keys($_FILES)
 
62
        );
 
63
 
 
64
        foreach ($input as $varname)
 
65
        {
 
66
                if (isset($not_unset[$varname]))
 
67
                {
 
68
                        // Hacking attempt. No point in continuing unless it's a COOKIE
 
69
                        if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) || isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) || isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) || isset($_FILES['GLOBALS']))
 
70
                        {
 
71
                                exit;
 
72
                        }
 
73
                        else
 
74
                        {
 
75
                                $cookie = &$_COOKIE;
 
76
                                while (isset($cookie['GLOBALS']))
 
77
                                {
 
78
                                        foreach ($cookie['GLOBALS'] as $registered_var => $value)
 
79
                                        {
 
80
                                                if (!isset($not_unset[$registered_var]))
 
81
                                                {
 
82
                                                        unset($GLOBALS[$registered_var]);
 
83
                                                }
 
84
                                        }
 
85
                                        $cookie = &$cookie['GLOBALS'];
 
86
                                }
 
87
                        }
 
88
                }
 
89
 
 
90
                unset($GLOBALS[$varname]);
 
91
        }
 
92
 
 
93
        unset($input);
 
94
}
 
95
 
 
96
// If we are on PHP >= 6.0.0 we do not need some code
 
97
if (version_compare(PHP_VERSION, '6.0.0-dev', '>='))
 
98
{
 
99
        /**
 
100
        * @ignore
 
101
        */
 
102
        define('STRIP', false);
 
103
}
 
104
else
 
105
{
 
106
        set_magic_quotes_runtime(0);
 
107
 
 
108
        // Be paranoid with passed vars
 
109
        if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on' || !function_exists('ini_get'))
 
110
        {
 
111
                deregister_globals();
 
112
        }
 
113
 
 
114
        define('STRIP', (get_magic_quotes_gpc()) ? true : false);
 
115
}
 
116
 
 
117
if (defined('IN_CRON'))
 
118
{
 
119
        $phpbb_root_path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
 
120
}
 
121
 
 
122
if (!file_exists($phpbb_root_path . 'config.' . $phpEx))
 
123
{
 
124
        die("<p>The config.$phpEx file could not be found.</p><p><a href=\"{$phpbb_root_path}install/index.$phpEx\">Click here to install phpBB</a></p>");
 
125
}
 
126
 
 
127
require($phpbb_root_path . 'config.' . $phpEx);
 
128
 
 
129
if (!defined('PHPBB_INSTALLED'))
 
130
{
 
131
        // Redirect the user to the installer
 
132
        // We have to generate a full HTTP/1.1 header here since we can't guarantee to have any of the information
 
133
        // available as used by the redirect function
 
134
        $server_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME');
 
135
        $server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
 
136
        $secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;
 
137
 
 
138
        $script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
 
139
        if (!$script_name)
 
140
        {
 
141
                $script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
 
142
        }
 
143
 
 
144
        // Replace any number of consecutive backslashes and/or slashes with a single slash
 
145
        // (could happen on some proxy setups and/or Windows servers)
 
146
        $script_path = trim(dirname($script_name)) . '/install/index.' . $phpEx;
 
147
        $script_path = preg_replace('#[\\\\/]{2,}#', '/', $script_path);
 
148
 
 
149
        $url = (($secure) ? 'https://' : 'http://') . $server_name;
 
150
 
 
151
        if ($server_port && (($secure && $server_port <> 443) || (!$secure && $server_port <> 80)))
 
152
        {
 
153
                $url .= ':' . $server_port;
 
154
        }
 
155
 
 
156
        $url .= $script_path;
 
157
        header('Location: ' . $url);
 
158
        exit;
 
159
}
 
160
 
 
161
if (defined('DEBUG_EXTRA'))
 
162
{
 
163
        $base_memory_usage = 0;
 
164
        if (function_exists('memory_get_usage'))
 
165
        {
 
166
                $base_memory_usage = memory_get_usage();
 
167
        }
 
168
}
 
169
 
 
170
// Load Extensions
 
171
if (!empty($load_extensions))
 
172
{
 
173
        $load_extensions = explode(',', $load_extensions);
 
174
 
 
175
        foreach ($load_extensions as $extension)
 
176
        {
 
177
                @dl(trim($extension));
 
178
        }
 
179
}
 
180
 
 
181
// Include files
 
182
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.' . $phpEx);
 
183
require($phpbb_root_path . 'includes/cache.' . $phpEx);
 
184
require($phpbb_root_path . 'includes/template.' . $phpEx);
 
185
require($phpbb_root_path . 'includes/session.' . $phpEx);
 
186
require($phpbb_root_path . 'includes/auth.' . $phpEx);
 
187
 
 
188
require($phpbb_root_path . 'includes/functions.' . $phpEx);
 
189
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
 
190
 
 
191
require($phpbb_root_path . 'includes/constants.' . $phpEx);
 
192
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
 
193
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
 
194
 
 
195
// Set PHP error handler to ours
 
196
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
 
197
 
 
198
// Instantiate some basic classes
 
199
$user           = new user();
 
200
$auth           = new auth();
 
201
$template       = new template();
 
202
$cache          = new cache();
 
203
$db                     = new $sql_db();
 
204
 
 
205
// Connect to DB
 
206
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
 
207
 
 
208
// We do not need this any longer, unset for safety purposes
 
209
unset($dbpasswd);
 
210
 
 
211
// Grab global variables, re-cache if necessary
 
212
$config = $cache->obtain_config();
 
213
 
 
214
// Add own hook handler
 
215
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
 
216
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
 
217
 
 
218
foreach ($cache->obtain_hooks() as $hook)
 
219
{
 
220
        @include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
 
221
}
 
222
 
 
223
?>
 
 
b'\\ No newline at end of file'