Newer
Older
Graham Cole
committed
<?php
/***********************************************************************
Graham Cole
committed
This file is part of PunBB.
PunBB is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
Graham Cole
committed
// Let's disable this script, cause we don't want any accidents
pun_exit();
Graham Cole
committed
// The PunBB version this script installs
Graham Cole
committed
define('PUN_ROOT', './');
if (file_exists(PUN_ROOT.'config.php'))
pun_exit('The file \'config.php\' already exists which would mean that PunBB is already installed. You should go <a href="index.php">here</a> instead.');
Graham Cole
committed
// Make sure we are running at least PHP 4.1.0
if (intval(str_replace('.', '', phpversion())) < 410)
pun_exit('You are running PHP version '.PHP_VERSION.'. PunBB requires at least PHP 4.1.0 to run properly. You must upgrade your PHP installation before you can continue.');
Graham Cole
committed
// Disable error reporting for uninitialized variables
error_reporting(E_ALL);
// Turn off PHP time limit
@set_time_limit(0);
if (!isset($_POST['form_sent']))
{
// Determine available database extensions
$dual_mysql = false;
$db_extensions = array();
if (function_exists('mysqli_connect'))
$db_extensions[] = array('mysqli', 'MySQL Improved');
if (function_exists('mysql_connect'))
{
$db_extensions[] = array('mysql', 'MySQL Standard');
if (count($db_extensions) > 1)
$dual_mysql = true;
}
if (function_exists('sqlite_open'))
$db_extensions[] = array('sqlite', 'SQLite');
if (function_exists('pg_connect'))
$db_extensions[] = array('pgsql', 'PostgreSQL');
if (empty($db_extensions))
pun_exit('This PHP environment does not have support for any of the databases that PunBB supports. PHP needs to have support for either MySQL, PostgreSQL or SQLite in order for PunBB to be installed.');
Graham Cole
committed
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PunBB Installation</title>
<link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
<script type="text/javascript">
<!--
function process_form(the_form)
{
var element_names = new Object()
element_names["req_db_type"] = "Database type"
element_names["req_db_host"] = "Database server hostname"
element_names["req_db_name"] = "Database name"
element_names["db_prefix"] = "Table prefix"
element_names["req_username"] = "Administrator username"
element_names["req_password1"] = "Administrator password 1"
element_names["req_password2"] = "Administrator password 2"
element_names["req_email"] = "Administrator's e-mail"
element_names["req_base_url"] = "Base URL"
if (document.all || document.getElementById)
{
for (i = 0; i < the_form.length; ++i)
{
var elem = the_form.elements[i]
if (elem.name && elem.name.substring(0, 4) == "req_")
{
if (elem.type && (elem.type=="text" || elem.type=="textarea" || elem.type=="password" || elem.type=="file") && elem.value=='')
{
alert("\"" + element_names[elem.name] + "\" is a required field in this form.")
elem.focus()
return false
}
}
}
}
return true
}
// -->
</script>
</head>
<body onload="document.getElementById('install').req_db_type.focus()">
<div id="puninstall" style="margin: auto 10% auto 10%">
<div class="pun">
<div class="block">
<h2><span>PunBB Installation</span></h2>
<div class="box">
<div class="inbox">
<p>Welcome to PunBB installation! You are about to install PunBB. In order to install PunBB you must complete the form set out below. If you encounter any difficulties with the installation, please refer to the documentation.</p>
</div>
</div>
</div>
<div class="blockform">
<h2><span>Install PunBB 1.2</span></h2>
<div class="box">
<form id="install" method="post" action="install.php" onsubmit="this.start.disabled=true;if(process_form(this)){return true;}else{this.start.disabled=false;return false;}">
<div><input type="hidden" name="form_sent" value="1" /></div>
<div class="inform">
<div class="forminfo">
<h3>Database setup</h3>
<p>Please enter the requested information in order to setup your database for PunBB. You must know all the information asked for before proceeding with the installation.</p>
</div>
<fieldset>
<legend>Select your database type</legend>
<div class="infldset">
<p>PunBB currently supports MySQL, PostgreSQL and SQLite. If your database of choice is missing from the drop-down menu below, it means this PHP environment does not have support for that particular database. More information regarding support for particular versions of each database can be found in the FAQ.</p>
<?php if ($dual_mysql): ?> <p>PunBB has detected that your PHP environment supports two different ways of communicating with MySQL. The two options are called standard and improved. If you are uncertain which one to use, start by trying improved and if that fails, try standard.</p>
<?php endif; ?> <label><strong>Database type</strong>
<br /><select name="req_db_type">
<?php
foreach ($db_extensions as $db_type)
echo "\t\t\t\t\t\t\t".'<option value="'.$db_type[0].'">'.$db_type[1].'</option>'."\n";
?>
</select>
<br /></label>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend>Enter your database server hostname</legend>
<div class="infldset">
<p>The address of the database server (example: localhost, db.myhost.com or 192.168.0.15). You can specify a custom port number if your database doesn't run on the default port (example: localhost:3580). For SQLite support, just enter anything or leave it at 'localhost'.</p>
<label><strong>Database server hostname</strong><br /><input type="text" name="req_db_host" value="localhost" size="50" maxlength="100" /><br /></label>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend>Enter then name of your database</legend>
<div class="infldset">
<p>The name of the database that PunBB will be installed into. The database must exist. For SQLite, this is the relative path to the database file. If the SQLite database file does not exist, PunBB will attempt to create it.</p>
<label for="req_db_name"><strong>Database name</strong><br /><input id="req_db_name" type="text" name="req_db_name" size="30" maxlength="50" /><br /></label>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend>Enter your database username and password</legend>
<div class="infldset">
<p>Enter the username and password with which you connect to the database. Ignore for SQLite.</p>
<label class="conl">Database username<br /><input type="text" name="db_username" size="30" maxlength="50" /><br /></label>
<label class="conl">Database password<br /><input type="text" name="db_password" size="30" maxlength="50" /><br /></label>
<div class="clearer"></div>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend>Enter database table prefix</legend>
<div class="infldset">
<p>If you like you can specify a table prefix. This way you can run multiple copies of PunBB in the same database (example: foo_).</p>
<label>Table prefix<br /><input id="db_prefix" type="text" name="db_prefix" size="20" maxlength="30" /><br /></label>
</div>
</fieldset>
</div>
<div class="inform">
<div class="forminfo">
<h3>Administration setup</h3>
<p>Please enter the requested information in order to setup an administrator for your PunBB installation</p>
</div>
Loading
Loading full blame...