2 /***********************************************************************
4 Copyright (C) 2002-2008 PunBB
6 This file is part of PunBB.
8 PunBB is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 2 of the License,
11 or (at your option) any later version.
13 PunBB is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 ************************************************************************/
26 define('PUN_ROOT', './');
27 require PUN_ROOT
.'include/common.php';
30 // If we are logged in, we shouldn't be here
31 if (!$pun_user['is_guest'])
33 header('Location: index.php');
36 //This is part of the human test, it will ensure that the values submitted to register.php come from the form and are not part of a spambot submitting POST variables directly to register.php
38 $hum_id = session_id();
39 // Load the register.php language file
40 require PUN_ROOT
.'lang/'.$pun_user['language'].'/register.php';
42 // Load the register.php/profile.php language file
43 require PUN_ROOT
.'lang/'.$pun_user['language'].'/prof_reg.php';
45 if ($pun_config['o_regs_allow'] == '0')
46 message($lang_register['No new regs']);
49 // User pressed the cancel button
50 if (isset($_GET['cancel']))
51 redirect('index.php', $lang_register['Reg cancel redirect']);
54 else if ($pun_config['o_rules'] == '1' && !isset($_GET['agree']) && !isset($_POST['form_sent']))
56 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_register['Register'];
57 require PUN_ROOT
.'header.php';
60 <div
class="blockform">
61 <h2
><span
><?php
echo $lang_register['Forum rules'] ?
></span
></h2
>
63 <form method
="get" action
="register.php">
66 <legend
><?php
echo $lang_register['Rules legend'] ?
></legend
>
67 <div
class="infldset">
68 <p
><?php
echo $pun_config['o_rules_message'] ?
></p
>
72 <p
><input type
="submit" name
="agree" value
="<?php echo $lang_register['Agree'] ?>" /><input type
="submit" name
="cancel" value
="<?php echo $lang_register['Cancel'] ?>" /></p
>
78 require PUN_ROOT
.'footer.php';
82 else if (isset($_POST['form_sent']))
84 //Human validation, first check that the session ID is present in the session array.....
85 //This one should catch most "simple" bot programs because the form requires that step one is loaded. It prevents bots from submitting variables to register.php directly
86 if( $hum_id != $_SESSION['hum_sumtest'] ) {
87 message('Mhhh, maybe you should try and submit your values via the form and not submit them directly to register.php ..... byebye bot....');
88 } //if( $hum_id != $_SESSION['hum_sumtest'] )
89 //Now check that the correct human test answer was given, don't do anything if this fails
90 if( isset($_POST['human_test']) ) { $hum_answer = $_POST['human_test']; } else { $hum_answer = Null; }
91 if( !isset($_SESSION['hum_qna_i']) ) { //Ensure that the Question Index has been stored in the last step
92 message('Missing Question Index, please contact the administrator of the forum and report the issue, thank you.');
93 } //if( !isset($_SESSION['hum_qna_i']) )
94 $hum_q_index = $_SESSION['hum_qna_i']; //This is the question index, used to lookup the question
95 $hum_answ_correct = False; //Set to True if the answer given is correct
96 require_once 'QandA.php';
97 //Now test that the answer is correct, all tests are done in lower case
98 $hum_answ_cnt = count($hum_qna[$hum_q_index]); //First check how many possible answers there are
99 //Now loop through answers to check if the answer given is actually in the list of correct answers
100 for( $hum_x=1 ; $hum_x < $hum_answ_cnt ; $hum_x++
) {
101 $hum_qna_line = $hum_qna[$hum_q_index][$hum_x];
102 if( strcasecmp( $hum_answer, $hum_qna_line) == 0 ) {
103 $hum_answ_correct = True; //The answer is correct, cool
104 } //if( strcasecmp( $hum_answer, $hum_qna_line) == 0 )
105 }//for( $hum_x=1 ; $hum_x >= $hum_answ_cnt ; $hum_x++ )
106 //The loop is over, check if the correct answer was given and issue error if not
107 if( $hum_answ_correct == False ) {
108 message('You supplied and incorrect answer at the "Human Test" field, please try again');
109 } //if( $hum_answ_correct == False )
110 //This should be it, the user should be human and not a bot
111 // Check that someone from this IP didn't register a user within the last hour (DoS prevention)
112 $result = $db->query('SELECT 1 FROM '.$db->prefix
.'users WHERE registration_ip=\''.get_remote_address().'\' AND registered>'.(time() - 3600)) or error('Unable to fetch user info', __FILE__
, __LINE__
, $db->error());
114 if ($db->num_rows($result))
115 message('A new user was registered with the same IP address as you within the last hour. To prevent registration flooding, at least an hour has to pass between registrations from the same IP. Sorry for the inconvenience.');
118 $username = pun_trim($_POST['req_username']);
119 $email1 = strtolower(trim($_POST['req_email1']));
121 if ($pun_config['o_regs_verify'] == '1')
123 $email2 = strtolower(trim($_POST['req_email2']));
125 $password1 = random_pass(8);
126 $password2 = $password1;
130 $password1 = trim($_POST['req_password1']);
131 $password2 = trim($_POST['req_password2']);
134 // Convert multiple whitespace characters into one (to prevent people from registering with indistinguishable usernames)
135 $username = preg_replace('#\s+#s', ' ', $username);
137 // Validate username and passwords
138 if (strlen($username) < 2)
139 message($lang_prof_reg['Username too short']);
140 else if (pun_strlen($username) > 25) // This usually doesn't happen since the form element only accepts 25 characters
141 message($lang_common['Bad request']);
142 else if (strlen($password1) < 4)
143 message($lang_prof_reg['Pass too short']);
144 else if ($password1 != $password2)
145 message($lang_prof_reg['Pass not match']);
146 else if (!strcasecmp($username, 'Guest') ||
!strcasecmp($username, $lang_common['Guest']))
147 message($lang_prof_reg['Username guest']);
148 else if (preg_match('/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/', $username))
149 message($lang_prof_reg['Username IP']);
150 else if ((strpos($username, '[') !== false ||
strpos($username, ']') !== false) && strpos($username, '\'') !== false && strpos($username, '"') !== false)
151 message($lang_prof_reg['Username reserved chars']);
152 else if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[quote=|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
153 message($lang_prof_reg['Username BBCode']);
155 // Check username for any censored words
156 if ($pun_config['o_censoring'] == '1')
158 // If the censored username differs from the username
159 if (censor_words($username) != $username)
160 message($lang_register['Username censor']);
163 // Check that the username (or a too similar username) is not already registered
164 $result = $db->query('SELECT username FROM '.$db->prefix
.'users WHERE UPPER(username)=UPPER(\''.$db->escape($username).'\') OR UPPER(username)=UPPER(\''.$db->escape(preg_replace('/[^\w]/', '', $username)).'\')') or error('Unable to fetch user info', __FILE__
, __LINE__
, $db->error());
166 if ($db->num_rows($result))
168 $busy = $db->result($result);
169 message($lang_register['Username dupe 1'].' '.pun_htmlspecialchars($busy).'. '.$lang_register['Username dupe 2']);
174 require PUN_ROOT
.'include/email.php';
176 if (!is_valid_email($email1))
177 message($lang_common['Invalid e-mail']);
178 else if ($pun_config['o_regs_verify'] == '1' && $email1 != $email2)
179 message($lang_register['E-mail not match']);
181 // Check it it's a banned e-mail address
182 if (is_banned_email($email1))
184 if ($pun_config['p_allow_banned_email'] == '0')
185 message($lang_prof_reg['Banned e-mail']);
187 $banned_email = true; // Used later when we send an alert e-mail
190 $banned_email = false;
192 // Check if someone else already has registered with that e-mail address
193 $dupe_list = array();
195 $result = $db->query('SELECT username FROM '.$db->prefix
.'users WHERE email=\''.$email1.'\'') or error('Unable to fetch user info', __FILE__
, __LINE__
, $db->error());
196 if ($db->num_rows($result))
198 if ($pun_config['p_allow_dupe_email'] == '0')
199 message($lang_prof_reg['Dupe e-mail']);
201 while ($cur_dupe = $db->fetch_assoc($result))
202 $dupe_list[] = $cur_dupe['username'];
205 // Make sure we got a valid language string
206 if (isset($_POST['language']))
208 $language = preg_replace('#[\.\\\/]#', '', $_POST['language']);
209 if (!file_exists(PUN_ROOT
.'lang/'.$language.'/common.php'))
210 message($lang_common['Bad request']);
213 $language = $pun_config['o_default_lang'];
215 $timezone = round($_POST['timezone'], 1);
216 $save_pass = (!isset($_POST['save_pass']) ||
$_POST['save_pass'] != '1') ?
'0' : '1';
218 $email_setting = intval($_POST['email_setting']);
219 if ($email_setting < 0 ||
$email_setting > 2) $email_setting = 1;
221 // Insert the new user into the database. We do this now to get the last inserted id for later use.
224 $intial_group_id = ($pun_config['o_regs_verify'] == '0') ?
$pun_config['o_default_user_group'] : PUN_UNVERIFIED
;
225 $password_hash = pun_hash($password1);
228 $db->query('INSERT INTO '.$db->prefix
.'users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$email1.'\', '.$email_setting.', '.$save_pass.', '.$timezone.' , \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__
, __LINE__
, $db->error());
229 $new_uid = $db->insert_id();
232 // If we previously found out that the e-mail was banned
233 if ($banned_email && $pun_config['o_mailing_list'] != '')
235 $mail_subject = 'Alert - Banned e-mail detected';
236 $mail_message = 'User \''.$username.'\' registered with banned e-mail address: '.$email1."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
238 pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
241 // If we previously found out that the e-mail was a dupe
242 if (!empty($dupe_list) && $pun_config['o_mailing_list'] != '')
244 $mail_subject = 'Alert - Duplicate e-mail detected';
245 $mail_message = 'User \''.$username.'\' registered with an e-mail address that also belongs to: '.implode(', ', $dupe_list)."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
247 pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
250 // Should we alert people on the admin mailing list that a new user has registered?
251 if ($pun_config['o_regs_report'] == '1')
253 $mail_subject = 'Alert - New registration';
254 $mail_message = 'User \''.$username.'\' registered in the forums at '.$pun_config['o_base_url']."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
256 pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
259 // Must the user verify the registration or do we log him/her in right now?
260 if ($pun_config['o_regs_verify'] == '1')
262 // Load the "welcome" template
263 $mail_tpl = trim(file_get_contents(PUN_ROOT
.'lang/'.$pun_user['language'].'/mail_templates/welcome.tpl'));
265 // The first row contains the subject
266 $first_crlf = strpos($mail_tpl, "\n");
267 $mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
268 $mail_message = trim(substr($mail_tpl, $first_crlf));
270 $mail_subject = str_replace('<board_title>', $pun_config['o_board_title'], $mail_subject);
271 $mail_message = str_replace('<base_url>', $pun_config['o_base_url'].'/', $mail_message);
272 $mail_message = str_replace('<username>', $username, $mail_message);
273 $mail_message = str_replace('<password>', $password1, $mail_message);
274 $mail_message = str_replace('<login_url>', $pun_config['o_base_url'].'/login.php', $mail_message);
275 $mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message);
277 pun_mail($email1, $mail_subject, $mail_message);
279 message($lang_register['Reg e-mail'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.', true);
282 pun_setcookie($new_uid, $password_hash, ($save_pass != '0') ?
$now +
31536000 : 0);
284 redirect('index.php', $lang_register['Reg complete']);
288 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_register['Register'];
289 $required_fields = array('req_username' => $lang_common['Username'], 'req_password1' => $lang_common['Password'], 'req_password2' => $lang_prof_reg['Confirm pass'], 'req_email1' => $lang_common['E-mail'], 'req_email2' => $lang_common['E-mail'].' 2');
290 $focus_element = array('register', 'req_username');
291 require PUN_ROOT
.'header.php';
294 <div
class="blockform">
295 <h2
><span
><?php
echo $lang_register['Register'] ?
></span
></h2
>
297 <form id
="register" method
="post" action
="register.php?action=register">
299 <div
class="forminfo">
300 <h3
><?php
echo $lang_common['Important information'] ?
></h3
>
301 <p
><?php
echo $lang_register['Desc 1'] ?
></p
>
302 <p
><?php
echo $lang_register['Desc 2'] ?
></p
>
305 <legend
><?php
echo $lang_register['Username legend'] ?
></legend
>
306 <div
class="infldset">
307 <input type
="hidden" name
="form_sent" value
="1" />
308 <label
><strong
><?php
echo $lang_common['Username'] ?
></strong
><br
/><input type
="text" name
="req_username" size
="25" maxlength
="25" /><br
/></label
>
312 <?php
if ($pun_config['o_regs_verify'] == '0'): ?
> <div
class="inform">
314 <legend
><?php
echo $lang_register['Pass legend 1'] ?
></legend
>
315 <div
class="infldset">
316 <label
class="conl"><strong
><?php
echo $lang_common['Password'] ?
></strong
><br
/><input type
="password" name
="req_password1" size
="16" maxlength
="16" /><br
/></label
>
317 <label
class="conl"><strong
><?php
echo $lang_prof_reg['Confirm pass'] ?
></strong
><br
/><input type
="password" name
="req_password2" size
="16" maxlength
="16" /><br
/></label
>
318 <p
class="clearb"><?php
echo $lang_register['Pass info'] ?
></p
>
322 <?php
endif; ?
> <div
class="inform">
324 <legend
><?php
echo ($pun_config['o_regs_verify'] == '1') ?
$lang_prof_reg['E-mail legend 2'] : $lang_prof_reg['E-mail legend'] ?
></legend
>
325 <div
class="infldset">
326 <?php
if ($pun_config['o_regs_verify'] == '1'): ?
> <p
><?php
echo $lang_register['E-mail info'] ?
></p
>
327 <?php
endif; ?
> <label
><strong
><?php
echo $lang_common['E-mail'] ?
></strong
><br
/>
328 <input type
="text" name
="req_email1" size
="50" maxlength
="50" /><br
/></label
>
329 <?php
if ($pun_config['o_regs_verify'] == '1'): ?
> <label
><strong
><?php
echo $lang_register['Confirm e-mail'] ?
></strong
><br
/>
330 <input type
="text" name
="req_email2" size
="50" maxlength
="50" /><br
/></label
>
331 <?php
endif; ?
> </div
>
336 <legend
>Human Test
</legend
>
337 <div
class="infldset">
338 Please answer the question below to verify that you are not a computer program
, thank you
.<br
>
340 //If the form is not loaded but the values send via POST directly to register.php then
341 // $_Session['hum_sumtest'] will be empty at the next step.
342 $_SESSION['hum_sumtest'] = $hum_id; //Save generated value in session array
343 require_once 'QandA.php';
344 $hum_cnt = count($hum_qna) -1; //Find out how many questions there are, -1 since the count starts at zero
345 $hum_qna_i = rand(0, $hum_cnt); //Get random number within question range
346 $hum_question = $hum_qna[$hum_qna_i][0]; //Get the question and save it
347 $_SESSION['hum_qna_i'] = $hum_qna_i; //Store the index of the question
349 Question
: <strong
><?PHP
echo $hum_question; ?
></strong
><br
>
350 Answer
: <input type
="text" size
="30" maxlength
="100" name
="human_test" value
="" />
356 <legend
><?php
echo $lang_prof_reg['Localisation legend'] ?
></legend
>
357 <div
class="infldset">
358 <label
><?php
echo $lang_prof_reg['Timezone'] ?
>: <?php
echo $lang_prof_reg['Timezone info'] ?
>
359 <br
/><select id
="time_zone" name
="timezone">
360 <option value
="-12"<?php
if ($pun_config['o_server_timezone'] == -12 ) echo ' selected="selected"' ?
>>-12</option
>
361 <option value
="-11"<?php
if ($pun_config['o_server_timezone'] == -11) echo ' selected="selected"' ?
>>-11</option
>
362 <option value
="-10"<?php
if ($pun_config['o_server_timezone'] == -10) echo ' selected="selected"' ?
>>-10</option
>
363 <option value
="-9.5"<?php
if ($pun_config['o_server_timezone'] == -9.5) echo ' selected="selected"' ?
>>-9.5</option
>
364 <option value
="-9"<?php
if ($pun_config['o_server_timezone'] == -9 ) echo ' selected="selected"' ?
>>-09</option
>
365 <option value
="-8.5"<?php
if ($pun_config['o_server_timezone'] == -8.5) echo ' selected="selected"' ?
>>-8.5</option
>
366 <option value
="-8"<?php
if ($pun_config['o_server_timezone'] == -8 ) echo ' selected="selected"' ?
>>-08 PST
</option
>
367 <option value
="-7"<?php
if ($pun_config['o_server_timezone'] == -7 ) echo ' selected="selected"' ?
>>-07 MST
</option
>
368 <option value
="-6"<?php
if ($pun_config['o_server_timezone'] == -6 ) echo ' selected="selected"' ?
>>-06 CST
</option
>
369 <option value
="-5"<?php
if ($pun_config['o_server_timezone'] == -5 ) echo ' selected="selected"' ?
>>-05 EST
</option
>
370 <option value
="-4"<?php
if ($pun_config['o_server_timezone'] == -4 ) echo ' selected="selected"' ?
>>-04 AST
</option
>
371 <option value
="-3.5"<?php
if ($pun_config['o_server_timezone'] == -3.5) echo ' selected="selected"' ?
>>-3.5</option
>
372 <option value
="-3"<?php
if ($pun_config['o_server_timezone'] == -3 ) echo ' selected="selected"' ?
>>-03 ADT
</option
>
373 <option value
="-2"<?php
if ($pun_config['o_server_timezone'] == -2 ) echo ' selected="selected"' ?
>>-02</option
>
374 <option value
="-1"<?php
if ($pun_config['o_server_timezone'] == -1) echo ' selected="selected"' ?
>>-01</option
>
375 <option value
="0"<?php
if ($pun_config['o_server_timezone'] == 0) echo ' selected="selected"' ?
>>00 GMT
</option
>
376 <option value
="1"<?php
if ($pun_config['o_server_timezone'] == 1) echo ' selected="selected"' ?
>>+
01 CET
</option
>
377 <option value
="2"<?php
if ($pun_config['o_server_timezone'] == 2 ) echo ' selected="selected"' ?
>>+
02</option
>
378 <option value
="3"<?php
if ($pun_config['o_server_timezone'] == 3 ) echo ' selected="selected"' ?
>>+
03</option
>
379 <option value
="3.5"<?php
if ($pun_config['o_server_timezone'] == 3.5 ) echo ' selected="selected"' ?
>>+
03.5</option
>
380 <option value
="4"<?php
if ($pun_config['o_server_timezone'] == 4 ) echo ' selected="selected"' ?
>>+
04</option
>
381 <option value
="4.5"<?php
if ($pun_config['o_server_timezone'] == 4.5 ) echo ' selected="selected"' ?
>>+
04.5</option
>
382 <option value
="5"<?php
if ($pun_config['o_server_timezone'] == 5 ) echo ' selected="selected"' ?
>>+
05</option
>
383 <option value
="5.5"<?php
if ($pun_config['o_server_timezone'] == 5.5 ) echo ' selected="selected"' ?
>>+
05.5</option
>
384 <option value
="6"<?php
if ($pun_config['o_server_timezone'] == 6 ) echo ' selected="selected"' ?
>>+
06</option
>
385 <option value
="6.5"<?php
if ($pun_config['o_server_timezone'] == 6.5 ) echo ' selected="selected"' ?
>>+
06.5</option
>
386 <option value
="7"<?php
if ($pun_config['o_server_timezone'] == 7 ) echo ' selected="selected"' ?
>>+
07</option
>
387 <option value
="8"<?php
if ($pun_config['o_server_timezone'] == 8 ) echo ' selected="selected"' ?
>>+
08</option
>
388 <option value
="9"<?php
if ($pun_config['o_server_timezone'] == 9 ) echo ' selected="selected"' ?
>>+
09</option
>
389 <option value
="9.5"<?php
if ($pun_config['o_server_timezone'] == 9.5 ) echo ' selected="selected"' ?
>>+
09.5</option
>
390 <option value
="10"<?php
if ($pun_config['o_server_timezone'] == 10) echo ' selected="selected"' ?
>>+
10</option
>
391 <option value
="10.5"<?php
if ($pun_config['o_server_timezone'] == 10.5 ) echo ' selected="selected"' ?
>>+
10.5</option
>
392 <option value
="11"<?php
if ($pun_config['o_server_timezone'] == 11) echo ' selected="selected"' ?
>>+
11</option
>
393 <option value
="11.5"<?php
if ($pun_config['o_server_timezone'] == 11.5 ) echo ' selected="selected"' ?
>>+
11.5</option
>
394 <option value
="12"<?php
if ($pun_config['o_server_timezone'] == 12 ) echo ' selected="selected"' ?
>>+
12</option
>
395 <option value
="13"<?php
if ($pun_config['o_server_timezone'] == 13 ) echo ' selected="selected"' ?
>>+
13</option
>
396 <option value
="14"<?php
if ($pun_config['o_server_timezone'] == 14 ) echo ' selected="selected"' ?
>>+
14</option
>
401 $languages = array();
402 $d = dir(PUN_ROOT
.'lang');
403 while (($entry = $d->read()) !== false)
405 if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT
.'lang/'.$entry) && file_exists(PUN_ROOT
.'lang/'.$entry.'/common.php'))
406 $languages[] = $entry;
410 // Only display the language selection box if there's more than one language available
411 if (count($languages) > 1)
415 <label
><?php
echo $lang_prof_reg['Language'] ?
>: <?php
echo $lang_prof_reg['Language info'] ?
>
416 <br
/><select name
="language">
419 while (list(, $temp) = @each
($languages))
421 if ($pun_config['o_default_lang'] == $temp)
422 echo "\t\t\t\t\t\t\t\t".'<option value="'.$temp.'" selected="selected">'.$temp.'</option>'."\n";
424 echo "\t\t\t\t\t\t\t\t".'<option value="'.$temp.'">'.$temp.'</option>'."\n";
439 <legend
><?php
echo $lang_prof_reg['Privacy options legend'] ?
></legend
>
440 <div
class="infldset">
441 <p
><?php
echo $lang_prof_reg['E-mail setting info'] ?
></p
>
443 <label
><input type
="radio" name
="email_setting" value
="0" /><?php
echo $lang_prof_reg['E-mail setting 1'] ?
><br
/></label
>
444 <label
><input type
="radio" name
="email_setting" value
="1" checked
="checked" /><?php
echo $lang_prof_reg['E-mail setting 2'] ?
><br
/></label
>
445 <label
><input type
="radio" name
="email_setting" value
="2" /><?php
echo $lang_prof_reg['E-mail setting 3'] ?
><br
/></label
>
447 <p
><?php
echo $lang_prof_reg['Save user/pass info'] ?
></p
>
449 <label
><input type
="checkbox" name
="save_pass" value
="1" checked
="checked" /><?php
echo $lang_prof_reg['Save user/pass'] ?
><br
/></label
>
454 <p
><input type
="submit" name
="register" value
="<?php echo $lang_register['Register'] ?>" /></p
>
460 require PUN_ROOT
.'footer.php';