📄 register.php
字号:
{
$this->show_reg_form( "err_invalid_email" );
}
else
{
$in_email = $std->clean_email( $in_email );
if ( !$in_email )
{
$this->show_reg_form( "err_invalid_email" );
}
else
{
$DB->query( "SELECT id FROM ibf_members WHERE LOWER(name)='".strtolower( $in_username )."'" );
$name_check = $DB->fetch_row( );
if ( $name_check['id'] )
{
$this->show_reg_form( "err_user_exists" );
}
else
{
if ( strtolower( $in_username ) == "guest" )
{
$this->show_reg_form( "err_user_exists" );
}
else
{
if ( !$ibforums->vars['allow_dup_email'] )
{
$DB->query( "SELECT id FROM ibf_members WHERE email='".$in_email."'" );
$email_check = $DB->fetch_row( );
if ( $email_check['id'] )
{
$this->show_reg_form( "err_email_exists" );
return;
}
}
if ( $ibforums->vars['ban_names'] )
{
$names = explode( "|", $ibforums->vars['ban_names'] );
foreach ( $names as $n )
{
if ( preg_match( "/{$n}/i", $in_username ) )
{
$this->show_reg_form( "err_user_exists" );
return;
}
}
}
if ( $ibforums->vars['ban_ip'] )
{
$ips = explode( "|", $ibforums->vars['ban_ip'] );
foreach ( $ips as $ip )
{
$ip = preg_replace( "/\\*/", ".*", $ip );
if ( preg_match( "/{$ip}/", $ibforums->input['IP_ADDRESS'] ) )
{
$std->error( array( 1, "you_are_banned" ) );
}
}
}
if ( $ibforums->vars['ban_email'] )
{
$ips = explode( "|", $ibforums->vars['ban_email'] );
foreach ( $ips as $ip )
{
$ip = preg_replace( "/\\*/", ".*", $ip );
if ( preg_match( "/{$ip}/", $in_email ) )
{
$std->error( array( 1, "you_are_banned" ) );
}
}
}
if ( $ibforums->vars['reg_antispam'] )
{
if ( $ibforums->input['regid'] == "" )
{
$this->show_reg_form( "err_reg_code" );
}
else
{
$DB->query( "SELECT * FROM ibf_reg_antispam WHERE regid='".trim( addslashes( $ibforums->input['regid'] ) )."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$this->show_reg_form( "err_reg_code" );
}
else if ( trim( intval( $ibforums->input['reg_code'] ) ) != $row['regcode'] )
{
$this->show_reg_form( "err_reg_code" );
return;
}
}
}
$mem_group = $ibforums->vars['member_group'];
if ( $ibforums->vars['reg_auth_type'] )
{
$mem_group = $ibforums->vars['auth_group'];
}
else if ( $coppa == 1 )
{
$mem_group = $ibforums->vars['auth_group'];
}
$DB->query( "SELECT MAX(id) as new_id FROM ibf_members" );
$r = $DB->fetch_row( );
$member_id = $r['new_id'] + 1;
$member = array(
"id" => $member_id,
"name" => $in_username,
"password" => $in_password,
"email" => $in_email,
"mgroup" => $mem_group,
"posts" => 0,
"avatar" => "noavatar",
"joined" => time( ),
"ip_address" => $ibforums->input['IP_ADDRESS'],
"time_offset" => $ibforums->vars['time_offset'],
"view_sigs" => 1,
"email_pm" => 1,
"view_img" => 1,
"view_avs" => 1,
"allow_post" => 1,
"view_pop" => 1,
"vdirs" => "in:短信收件箱|sent:短信发件箱",
"msg_total" => 0,
"new_msg" => 0,
"coppa_user" => $coppa,
"language" => $ibforums->vars['default_language'],
"rpgname" => "",
"rpgclass" => "0",
"rpgtype" => "0",
"rpgrace" => "0",
"alignment" => "0",
"rpggender" => "0",
"hp" => "200",
"maxhp" => "200",
"ma" => "50",
"maxma" => "50",
"pp" => "0",
"maxpp" => "0",
"ap" => "0",
"element" => "0",
"inbattle" => "0",
"money" => "200",
"level" => "0"
);
$member['password'] = md5( $member['password'] );
$db_string = $std->compile_db_string( $member );
$DB->query( "INSERT INTO ibf_members (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")" );
$rpg_1 = array(
"userid" => $member_id,
"bankval" => 0,
"btime" => 0,
"item1" => "No Item",
"points1" => 0,
"description1" => "No Description Available",
"item2" => "No Item",
"points2" => 0,
"description2" => "No Description Available",
"item3" => "No Item",
"points3" => 0,
"description3" => "No Description Available"
);
$db_string_2 = $std->compile_db_string( $rpg_1 );
$DB->query( "INSERT INTO ibf_items_user (".$db_string_2['FIELD_NAMES'].") VALUES (".$db_string_2['FIELD_VALUES'].")" );
$rpg_2 = array(
"userid" => $member_id,
"battles" => 0,
"wins" => 0,
"losses" => 0,
"draws" => 0,
"retreats" => 0
);
$db_string_3 = $std->compile_db_string( $rpg_2 );
$DB->query( "INSERT INTO ibf_battle_stats (".$db_string_3['FIELD_NAMES'].") VALUES (".$db_string_3['FIELD_VALUES'].")" );
unset( $db_string );
$DB->query( "DELETE FROM ibf_pfields_content WHERE member_id=".$member['id'] );
$custom_fields['member_id'] = $member['id'];
$db_string = $DB->compile_db_insert_string( $custom_fields );
$DB->query( "INSERT INTO ibf_pfields_content (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")" );
unset( $db_string );
$validate_key = $std->make_password( );
$time = time( );
if ( $coppa != 1 )
{
if ( $ibforums->vars['reg_auth_type'] == "user" || $ibforums->vars['reg_auth_type'] == "admin" )
{
$DB->query( "UPDATE ibf_members SET validate_key='{$validate_key}', prev_group='".$ibforums->vars['member_group']."' "."WHERE id='{$member_id}'" );
if ( $ibforums->vars['reg_auth_type'] == "user" )
{
$this->email->get_template( "reg_validate" );
$this->email->build_message( array(
"THE_LINK" => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode( $member_id )."&aid=".urlencode( $validate_key ),
"NAME" => $member['name'],
"PASSWORD" => $in_password,
"MAN_LINK" => $this->base_url_nosess."?act=Reg&CODE=05",
"EMAIL" => $member['email'],
"ID" => $member_id,
"CODE" => $validate_key
) );
$this->email->subject = "Registration at ".$ibforums->vars['board_name'];
$this->email->to = $member['email'];
$this->email->send_mail( );
$this->output = $this->html->show_authorise( $member );
}
else if ( $ibforums->vars['reg_auth_type'] == "admin" )
{
$this->output = $this->html->show_preview( $member );
}
if ( $ibforums->vars['new_reg_notify'] )
{
$date = $std->get_date( time( ), "LONG" );
$this->email->get_template( "admin_newuser" );
$this->email->build_message( array(
"DATE" => $date,
"MEMBER_NAME" => $member['name']
) );
$this->email->subject = "New Registration at ".$ibforums->vars['board_name'];
$this->email->to = $ibforums->vars['email_in'];
$this->email->send_mail( );
}
$this->page_title = $ibforums->lang['reg_success'];
$this->nav = array(
$ibforums->lang['nav_reg']
);
}
else
{
$DB->query( "UPDATE ibf_stats SET MEM_COUNT=MEM_COUNT+1, LAST_MEM_NAME='".$member['name']."', "."LAST_MEM_ID='".$member['id']."'" );
if ( $ibforums->vars['new_reg_notify'] )
{
$date = $std->get_date( time( ), "LONG" );
$this->email->get_template( "admin_newuser" );
$this->email->build_message( array(
"DATE" => $date,
"MEMBER_NAME" => $member['name']
) );
$this->email->subject = "New Registration at ".$ibforums->vars['board_name'];
$this->email->to = $ibforums->vars['email_in'];
$this->email->send_mail( );
}
$std->my_setcookie( "member_id", $member['id'], 1 );
$std->my_setcookie( "pass_hash", $member['password'], 1 );
$std->boink_it( $ibforums->base_url."&act=Login&CODE=autologin&fromreg=1" );
}
}
else
{
$print->redirect_screen( $ibforums->lang['cp_success'], "act=Reg&CODE=12" );
}
}
}
}
}
}
}
function validate_user( )
{
global $ibforums;
global $std;
global $DB;
global $print;
$in_user_id = trim( urldecode( $ibforums->input['uid'] ) );
$in_validate_key = trim( urldecode( $ibforums->input['aid'] ) );
$in_type = trim( $ibforums->input['type'] );
if ( $in_type == "" )
{
$in_type = "reg";
}
if ( !preg_match( "/^(?:[\\d\\w]){6,14}\$/", $in_validate_key ) )
{
$std->error( array( "LEVEL" => 1, "MSG" => "data_incorrect" ) );
}
if ( !preg_match( "/^(?:\\d){1,}\$/", $in_user_id ) )
{
$std->error( array( "LEVEL" => 1, "MSG" => "data_incorrect" ) );
}
$DB->query( "SELECT id, name, validate_key, prev_group, mgroup, password, email, new_pass FROM ibf_members WHERE id='{$in_user_id}'" );
if ( !$DB->get_num_rows( ) )
{
$std->error( array( "LEVEL" => 1, "MSG" => "auth_no_mem" ) );
}
$member = $DB->fetch_row( );
if ( $member['id'] == "" )
{
$std->error( array( "LEVEL" => 1, "MSG" => "auth_no_mem" ) );
}
if ( $member['validate_key'] == "" )
{
$std->error( array( "LEVEL" => 1, "MSG" => "auth_no_key" ) );
}
else
{
if ( $member['validate_key'] != $in_validate_key )
{
$std->error( array( "LEVEL" => 1, "MSG" => "auth_key_wrong" ) );
}
else
{
if ( $in_type == "reg" )
{
if ( empty( $member['prev_group'] ) )
{
$member['prev_group'] = $ibforums->vars['member_group'];
}
$DB->query( "UPDATE ibf_members SET mgroup='".$member['prev_group']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'" );
$DB->query( "UPDATE ibf_stats SET MEM_COUNT=MEM_COUNT+1, LAST_MEM_NAME='".$member['name']."', "."LAST_MEM_ID='".$member['id']."'" );
$std->my_setcookie( "member_id", $member['id'], 1 );
$std->my_setcookie( "pass_hash", $member['password'], 1 );
$std->boink_it( $ibforums->base_url."&act=Login&CODE=autologin&fromreg=1" );
}
else if ( $in_type == "lostpass" )
{
if ( $member['new_pass'] == "" )
{
$std->error( array( "LEVEL" => 1, "MSG" => "lp_no_pass" ) );
}
$DB->query( "UPDATE ibf_members SET password='".$member['new_pass']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'" );
}
else if ( $in_type == "newemail" )
{
if ( empty( $member['prev_group'] ) )
{
$member['prev_group'] = $ibforums->vars['member_group'];
}
$DB->query( "UPDATE ibf_members SET mgroup='".$member['prev_group']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'" );
}
$text = $ibforums->lang['done_reg_2'];
$url = "act=Login&CODE=00";
$print->redirect_screen( $text, $url );
}
}
}
function show_board_rules( )
{
global $ibforums;
global $DB;
$DB->query( "SELECT RULES_TEXT from ib_forum_rules WHERE ID='00'" );
$rules = $DB->fetch_row( );
$this->output = $this->html->show_rules( $rules );
$this->page_title = $ibforums->lang['board_rules'];
$this->nav = array(
$ibforums->lang['board_rules']
);
}
function show_manual_form( $type = "reg" )
{
global $ibforums;
$this->output = $this->html->show_dumb_form( $type );
$this->page_title = $ibforums->lang['activation_form'];
$this->nav = array(
$ibforums->lang['activation_form']
);
}
function show_image( )
{
global $ibforums;
global $DB;
$numbers = array( 0 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKsOnmqSPjtT1ZdnnjCUqBQAOw==", 1 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUjAEWyMqoXIprRkjxtZJWrz3iCBQAOw==", 2 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKubnpPzRQvoVbvyrDHiWAAAOw==", 3 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKbaHgRyUZtmlPtlfnnMiGUFADs=", 4 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjAN5mLDtjFJMRjpj1Rv6v1SHN0IFADs=", 5 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhA+Bpxn/DITL1SRjnps63l1M9RQAOw==", 6 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjIEYyWwH3lNyrQTbnVh2Tl3N5wQFADs=", 7 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhI9pwbztAAwP1napnFnzbYEYWAAAOw==", 8 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKubHgSPWXoxVUxC33FZZCkFADs=", 9 => "R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDA6hyJabnnISnsnybXdS73hcZlUFADs=" );
if ( $ibforums->input['p'] == "" )
{
return false;
}
if ( $ibforums->input['rc'] == "" )
{
return false;
}
$DB->query( "SELECT * FROM ibf_reg_antispam WHERE regid='".trim( addslashes( $ibforums->input['rc'] ) )."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
return false;
}
$p = intval( $ibforums->input['p'] ) - 1;
$this_number = substr( $row['regcode'], $p, 1 );
flush( );
header( "Content-type: image/gif" );
echo base64_decode( $numbers[$this_number] );
exit( );
}
}
$idx = new register( );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -