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

« back to all changes in this revision

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

  • Committer: William Grant
  • Date: 2009-02-23 23:47:02 UTC
  • mfrom: (1099.1.211 new-dispatch)
  • Revision ID: grantw@unimelb.edu.au-20090223234702-db4b1llly46ignwo
Merge from lp:~ivle-dev/ivle/new-dispatch.

Pretty much everything changes. Reread the setup docs. Backup your databases.
Every file is now in a different installed location, the configuration system
is rewritten, the dispatch system is rewritten, URLs are different, the
database is different, worksheets and exercises are no longer on the
filesystem, we use a templating engine, jail service protocols are rewritten,
we don't repeat ourselves, we have authorization rewritten, phpBB is gone,
and probably lots of other things that I cannot remember.

This is certainly the biggest commit I have ever made, and hopefully
the largest I ever will.

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'