diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2008-08-07 23:49:13 +0000 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2008-08-07 23:49:13 +0000 |
commit | 9969f54cea4d79af79ec1808d4c348b264939360 (patch) | |
tree | 52becc8973f467f566de546ee80bc7f6a04b7714 /central/trunk/install.php | |
parent | fa125bd7bb8dd8cacfd996c974810f57318323c9 (diff) | |
download | instadisc-9969f54cea4d79af79ec1808d4c348b264939360.tar.gz instadisc-9969f54cea4d79af79ec1808d4c348b264939360.tar.bz2 instadisc-9969f54cea4d79af79ec1808d4c348b264939360.zip |
Central: Added Email check to installation
Now, the installation script checks the SMTP details entered to ensure that they are valid so as to avoid errors like #23. Also modified return for instaDisc_activateAccount(). Refs #23
Diffstat (limited to 'central/trunk/install.php')
-rw-r--r-- | central/trunk/install.php | 160 |
1 files changed, 94 insertions, 66 deletions
diff --git a/central/trunk/install.php b/central/trunk/install.php index 846140a..5022faf 100644 --- a/central/trunk/install.php +++ b/central/trunk/install.php | |||
@@ -88,11 +88,6 @@ if (!isset($_GET['submit'])) | |||
88 | break; | 88 | break; |
89 | 89 | ||
90 | case 2: | 90 | case 2: |
91 | if ($_POST['mailDomain'] == '') | ||
92 | { | ||
93 | addError($numOfErrors, $errors, 'mailDomain', 'Mail Domain is a required field'); | ||
94 | } | ||
95 | |||
96 | if ($_POST['smtpHost'] == '') | 91 | if ($_POST['smtpHost'] == '') |
97 | { | 92 | { |
98 | addError($numOfErrors, $errors, 'smtpHost', 'SMTP Host is a required field'); | 93 | addError($numOfErrors, $errors, 'smtpHost', 'SMTP Host is a required field'); |
@@ -111,84 +106,117 @@ if (!isset($_GET['submit'])) | |||
111 | } | 106 | } |
112 | } | 107 | } |
113 | 108 | ||
114 | if ($_POST['siteName'] == '') | 109 | if ($numOfErrors > 0) |
115 | { | ||
116 | addError($numOfErrors, $errors, 'siteName', 'Site Name is a required field'); | ||
117 | } | ||
118 | |||
119 | if ($_POST['xmlrpcURL'] == '') | ||
120 | { | 110 | { |
121 | addError($numOfErrors, $errors, 'xmlrpcURL', 'XML-RPC URL is a required field'); | 111 | showHeader('2'); |
112 | showStepTwo($_POST['mailDomain'], $_POST['smtpHost'], ($_POST['smtpAuth'] == 'on' ? ' CHECKED' : ''), $_POST['smtpUser'], $_POST['smtpPass'], $_POST['siteName'], $_POST['xmlrpcURL'], $_POST['adminUser'], $_POST['adminPass'], $_POST['adminEmail'], $errors); | ||
122 | } else { | 113 | } else { |
123 | include_once('xmlrpc/xmlrpc.inc'); | 114 | $mail = new PHPMailer(); |
124 | 115 | $mail->IsSMTP(); | |
125 | $client = new xmlrpc_client($_POST['xmlrpcURL']); | 116 | $mail->From = 'instadisc@' . $_POST['mailDomain']; |
126 | $msg = new xmlrpcmsg('system.listMethods'); | 117 | $mail->FromName = 'InstaDisc'; |
127 | $r = $client->send($msg); | 118 | $mail->Host = $_POST['smtpHost']; |
128 | if (stripos($r->faultString(),'Connect error') !== FALSE) | 119 | if ($_POST['smtpAuth'] == 'on') |
120 | { | ||
121 | $mail->SMTPAuth = true; | ||
122 | $mail->Username = $_POST['smtpUser']; | ||
123 | $mail->Password = $_POST['smtpPass']; | ||
124 | } | ||
125 | $mail->Helo = $_SERVER['HTTP_HOST']; | ||
126 | $mail->ClearAddresses(); | ||
127 | $mail->AddAddress("test@fourisland.com"); | ||
128 | $mail->Subject = 'Test Email'; | ||
129 | $mail->Body = 'Please discard this email.'; | ||
130 | $mail->Send(); | ||
131 | if ($mail->IsError()) | ||
129 | { | 132 | { |
130 | addError($numOfErrors, $errors, 'xmlrpcURL', $r->faultString()); | 133 | addError($numOfErrors, $errors, '', $mail->ErrorInfo); |
131 | } | 134 | } |
132 | } | ||
133 | 135 | ||
134 | if ($_POST['adminUser'] == '') | 136 | if ($_POST['mailDomain'] == '') |
135 | { | 137 | { |
136 | addError($numOfErrors, $errors, 'adminUser', 'Admin Username is a required field'); | 138 | addError($numOfErrors, $errors, 'mailDomain', 'Mail Domain is a required field'); |
137 | } | 139 | } |
138 | |||
139 | if ($_POST['adminPass'] == '') | ||
140 | { | ||
141 | addError($numOfErrors, $errors, 'adminPass', 'Admin Password is a required field'); | ||
142 | } | ||
143 | 140 | ||
144 | if ($_POST['adminEmail'] == '') | 141 | if ($_POST['siteName'] == '') |
145 | { | 142 | { |
146 | addError($numOfErrors, $errors, 'adminEmail', 'Admin Email is a required field'); | 143 | addError($numOfErrors, $errors, 'siteName', 'Site Name is a required field'); |
147 | } | 144 | } |
148 | 145 | ||
149 | if ($numOfErrors > 0) | 146 | if ($_POST['xmlrpcURL'] == '') |
150 | { | ||
151 | showHeader('2'); | ||
152 | showStepTwo($_POST['mailDomain'], $_POST['smtpHost'], ($_POST['smtpAuth'] == 'on' ? ' CHECKED' : ''), $_POST['smtpUser'], $_POST['smtpPass'], $_POST['siteName'], $_POST['xmlrpcURL'], $_POST['adminUser'], $_POST['adminPass'], $_POST['adminEmail'], $errors); | ||
153 | } else { | ||
154 | include_once('config.php'); | ||
155 | |||
156 | mysql_connect($dbhost, $dbuser, $dbpass); | ||
157 | mysql_select_db($dbname); | ||
158 | |||
159 | $sql[0] = "INSERT INTO config (name,value) VALUES (\"mailDomain\",\"" . mysql_real_escape_string($_POST['mailDomain']) . "\")"; | ||
160 | $sql[1] = "INSERT INTO config (name,value) VALUES (\"smtpHost\",\"" . mysql_real_escape_string($_POST['smtpHost']) . "\")"; | ||
161 | $sql[2] = "INSERT INTO config (name,value) VALUES (\"smtpAuth\",\"" . mysql_real_escape_string(($_POST['smtpAuth'] == 'on' ? 'true' : 'false')) . "\")"; | ||
162 | $sql[3] = "INSERT INTO config (name,value) VALUES (\"smtpUser\",\"" . mysql_real_escape_string($_POST['smtpUser']) . "\")"; | ||
163 | $sql[4] = "INSERT INTO config (name,value) VALUES (\"smtpPass\",\"" . mysql_real_escape_string($_POST['smtpPass']) . "\")"; | ||
164 | $sql[5] = "INSERT INTO config (name,value) VALUES (\"siteName\",\"" . mysql_real_escape_string($_POST['siteName']) . "\")"; | ||
165 | $sql[6] = "INSERT INTO config (name,value) VALUES (\"xmlrpcURL\",\"" . mysql_real_escape_string($_POST['xmlrpcURL']) . "\")"; | ||
166 | $sql[7] = "INSERT INTO config (name,value) VALUES (\"owner\",\"" . mysql_real_escape_string($_POST['adminUser']) . "\")"; | ||
167 | $sql[8] = "INSERT INTO config (name,value) VALUES (\"verIDBufferSize\",\"100\")"; | ||
168 | $sql[9] = "INSERT INTO config (name,value) VALUES (\"softwareVersion\",\"" . $softwareVersion . "\")"; | ||
169 | $sql[10] = "INSERT INTO config (name,value) VALUES (\"databaseVersion\",\"1\")"; | ||
170 | $sql[11] = "INSERT INTO users (username, password, email, ip) VALUES (\"" . mysql_real_escape_string($_POST['adminUser']) . "\",\"" . mysql_real_escape_string(md5($_POST['adminPass'])) . "\",\"" . mysql_real_escape_string($_POST['adminEmail']) . "\",\"" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "\")"; | ||
171 | $sql[12] = "INSERT INTO centralServers (url, code, xmlrpc) VALUES (\"" . mysql_real_escape_string('central.fourisland.com') . "\",\"" . mysql_real_escape_string(md5('central.fourisland.com')) . "\",\"" . mysql_real_escape_string('http://central.fourisland.com/xmlrpc.php') . "\")"; | ||
172 | |||
173 | foreach ($sql as $name => $value) | ||
174 | { | 147 | { |
175 | if (!trim($value) == '') | 148 | addError($numOfErrors, $errors, 'xmlrpcURL', 'XML-RPC URL is a required field'); |
149 | } else { | ||
150 | include_once('xmlrpc/xmlrpc.inc'); | ||
151 | |||
152 | $client = new xmlrpc_client($_POST['xmlrpcURL']); | ||
153 | $msg = new xmlrpcmsg('system.listMethods'); | ||
154 | $r = $client->send($msg); | ||
155 | if (stripos($r->faultString(),'Connect error') !== FALSE) | ||
176 | { | 156 | { |
177 | $sql2 = @mysql_query($value); | 157 | addError($numOfErrors, $errors, 'xmlrpcURL', $r->faultString()); |
178 | if (!$sql2) | ||
179 | { | ||
180 | addError($numOfErrors, $errors, '', "MySQL error \"" . mysql_error() . "\" while filling database"); | ||
181 | } | ||
182 | } | 158 | } |
183 | } | 159 | } |
184 | 160 | ||
161 | if ($_POST['adminUser'] == '') | ||
162 | { | ||
163 | addError($numOfErrors, $errors, 'adminUser', 'Admin Username is a required field'); | ||
164 | } | ||
165 | |||
166 | if ($_POST['adminPass'] == '') | ||
167 | { | ||
168 | addError($numOfErrors, $errors, 'adminPass', 'Admin Password is a required field'); | ||
169 | } | ||
170 | |||
171 | if ($_POST['adminEmail'] == '') | ||
172 | { | ||
173 | addError($numOfErrors, $errors, 'adminEmail', 'Admin Email is a required field'); | ||
174 | } | ||
175 | |||
185 | if ($numOfErrors > 0) | 176 | if ($numOfErrors > 0) |
186 | { | 177 | { |
187 | showHeader('2'); | 178 | showHeader('2'); |
188 | showStepTwo($_POST['mailDomain'], $_POST['smtpHost'], ($_POST['smtpAuth'] == 'on' ? ' CHECKED' : ''), $_POST['smtpUser'], $_POST['smtpPass'], $_POST['siteName'], $_POST['xmlrpcURL'], $_POST['adminUser'], $_POST['adminPass'], $_POST['adminEmail'], $errors); | 179 | showStepTwo($_POST['mailDomain'], $_POST['smtpHost'], ($_POST['smtpAuth'] == 'on' ? ' CHECKED' : ''), $_POST['smtpUser'], $_POST['smtpPass'], $_POST['siteName'], $_POST['xmlrpcURL'], $_POST['adminUser'], $_POST['adminPass'], $_POST['adminEmail'], $errors); |
189 | } else { | 180 | } else { |
190 | showHeader('3'); | 181 | include_once('config.php'); |
191 | showStepThree(); | 182 | |
183 | mysql_connect($dbhost, $dbuser, $dbpass); | ||
184 | mysql_select_db($dbname); | ||
185 | |||
186 | $sql[0] = "INSERT INTO config (name,value) VALUES (\"mailDomain\",\"" . mysql_real_escape_string($_POST['mailDomain']) . "\")"; | ||
187 | $sql[1] = "INSERT INTO config (name,value) VALUES (\"smtpHost\",\"" . mysql_real_escape_string($_POST['smtpHost']) . "\")"; | ||
188 | $sql[2] = "INSERT INTO config (name,value) VALUES (\"smtpAuth\",\"" . mysql_real_escape_string(($_POST['smtpAuth'] == 'on' ? 'true' : 'false')) . "\")"; | ||
189 | $sql[3] = "INSERT INTO config (name,value) VALUES (\"smtpUser\",\"" . mysql_real_escape_string($_POST['smtpUser']) . "\")"; | ||
190 | $sql[4] = "INSERT INTO config (name,value) VALUES (\"smtpPass\",\"" . mysql_real_escape_string($_POST['smtpPass']) . "\")"; | ||
191 | $sql[5] = "INSERT INTO config (name,value) VALUES (\"siteName\",\"" . mysql_real_escape_string($_POST['siteName']) . "\")"; | ||
192 | $sql[6] = "INSERT INTO config (name,value) VALUES (\"xmlrpcURL\",\"" . mysql_real_escape_string($_POST['xmlrpcURL']) . "\")"; | ||
193 | $sql[7] = "INSERT INTO config (name,value) VALUES (\"owner\",\"" . mysql_real_escape_string($_POST['adminUser']) . "\")"; | ||
194 | $sql[8] = "INSERT INTO config (name,value) VALUES (\"verIDBufferSize\",\"100\")"; | ||
195 | $sql[9] = "INSERT INTO config (name,value) VALUES (\"softwareVersion\",\"" . $softwareVersion . "\")"; | ||
196 | $sql[10] = "INSERT INTO config (name,value) VALUES (\"databaseVersion\",\"1\")"; | ||
197 | $sql[11] = "INSERT INTO users (username, password, email, ip) VALUES (\"" . mysql_real_escape_string($_POST['adminUser']) . "\",\"" . mysql_real_escape_string(md5($_POST['adminPass'])) . "\",\"" . mysql_real_escape_string($_POST['adminEmail']) . "\",\"" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "\")"; | ||
198 | $sql[12] = "INSERT INTO centralServers (url, code, xmlrpc) VALUES (\"" . mysql_real_escape_string('central.fourisland.com') . "\",\"" . mysql_real_escape_string(md5('central.fourisland.com')) . "\",\"" . mysql_real_escape_string('http://central.fourisland.com/xmlrpc.php') . "\")"; | ||
199 | |||
200 | foreach ($sql as $name => $value) | ||
201 | { | ||
202 | if (!trim($value) == '') | ||
203 | { | ||
204 | $sql2 = @mysql_query($value); | ||
205 | if (!$sql2) | ||
206 | { | ||
207 | addError($numOfErrors, $errors, '', "MySQL error \"" . mysql_error() . "\" while filling database"); | ||
208 | } | ||
209 | } | ||
210 | } | ||
211 | |||
212 | if ($numOfErrors > 0) | ||
213 | { | ||
214 | showHeader('2'); | ||
215 | showStepTwo($_POST['mailDomain'], $_POST['smtpHost'], ($_POST['smtpAuth'] == 'on' ? ' CHECKED' : ''), $_POST['smtpUser'], $_POST['smtpPass'], $_POST['siteName'], $_POST['xmlrpcURL'], $_POST['adminUser'], $_POST['adminPass'], $_POST['adminEmail'], $errors); | ||
216 | } else { | ||
217 | showHeader('3'); | ||
218 | showStepThree(); | ||
219 | } | ||
192 | } | 220 | } |
193 | } | 221 | } |
194 | 222 | ||