www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > bbs/register.php
<?php $wind_in='rg'; require_once('global.php'); include_once(D_P."data/bbscache/dbreg.php"); include_once(D_P.'data/bbscache/customfield.php'); @include_once(D_P.'data/bbscache/inv_config.php'); list($rg_regminname,$rg_regmaxname) = explode("\t",$rg_namelen); list($rg_regminpwd,$rg_regmaxpwd) = explode("\t",$rg_pwdlen); if (GetGP('vip')=='activating') { InitGP(array('r_uid','pwd'),'G'); $r_uid = (int)$r_uid; $u_db = $db->get_one("SELECT yz FROM pw_members WHERE uid='$r_uid'"); if ($u_db) { if ($pwd==$u_db['yz']) {//利用时间戳验证 $db->update("UPDATE pw_members SET yz=1 WHERE uid='$r_uid'"); Showmsg('reg_jihuo_success'); } else { Showmsg('reg_jihuo_fail'); } } else { Showmsg('reg_jihuo_fail'); } } if ($db_pptifopen && $db_ppttype=='client') { Showmsg('passport_register'); } list($regq) = explode("\t",$db_qcheck); if (GetGP('action','P') == 'regnameck') { InitGP('username','P'); if (strlen($username) > $rg_regmaxname || strlen($username) < $rg_regminname) { echo"<script language=\"JavaScript1.2\">parent.retmsg('0');</script>"; exit; } $S_key = array("\\",'&',' ',"'",'"','/','*',',','<','>',"\r","\t","\n",'#','%','?'); foreach ($S_key as $value) { if (strpos($username,$value) !== false) { echo"<script language=\"JavaScript1.2\">parent.retmsg('1');</script>"; exit; } } if (!$rg_rglower) { for($asc=65;$asc<=90;$asc++) { if (strpos($username,chr($asc)) !== false) { echo"<script language=\"JavaScript1.2\">parent.retmsg('2');</script>"; exit; } } } $rg_banname=explode(',',$rg_banname); foreach ($rg_banname as $value) { if (strpos($username,$value)!==false) { echo"<script language=\"JavaScript1.2\">parent.retmsg('1');</script>"; exit; } } $rt = $db->get_one("SELECT uid FROM pw_members WHERE username='$username'"); if ($rt) { echo"<script language=\"JavaScript1.2\">parent.retmsg('3');</script>"; exit; } else { echo"<script language=\"JavaScript1.2\">parent.retmsg('4');</script>"; exit; } } if ($rg_allowregister==0) { Showmsg($rg_whyregclose); } if ($rg_allowsameip && file_exists(D_P.'data/bbscache/ip_cache.php')) { $ipdata = readover(D_P.'data/bbscache/ip_cache.php'); $pretime = (int)substr($ipdata,13,10); if ($timestamp-$pretime>$rg_allowsameip*3600) { P_unlink(D_P.'data/bbscache/ip_cache.php'); } elseif (strpos($ipdata,"<$onlineip>")!==false) { Showmsg('reg_limit'); } } $forward = $db_pptifopen ? GetGP('forward') : ''; $groupid!='guest' && Showmsg('reg_repeat'); InitGP(array('invcode')); if (!$_POST['step'] && !$rg_reg) { require_once(R_P.'require/header.php'); require_once(PrintEot('register'));footer(); } elseif ($_POST['step']==1 || $rg_reg=='1' && $_POST['step']!=2) { !$rg_timestart && $rg_timestart=1960; !$rg_timeend && $rg_timeend=2000; $img=@opendir("$imgdir/face"); while($imagearray=@readdir($img)) { if ($imagearray!="." && $imagearray!=".." && $imagearray!="" && $imagearray!="none.gif") { $imgselect.="<option value='$imagearray'>$imagearray</option>"; } } @closedir($img); require_once(R_P.'require/header.php'); $custominfo = unserialize($db_union[7]); require_once(PrintEot('register'));footer(); } elseif ($_POST['step']==2) { ($db_gdcheck & 1) && GdConfirm($_POST['gdcode']); $regq && Qcheck($_POST['qanswer'],$_POST['qkey']); InitGP(array('regreason','regname','regpwd','regicon','reghomepage','regfrom','regintroduce','regsign','regemail','regsex','regbirthyear','regbirthmonth','regbirthday','regoicq','customdata','regifemail'),'P',1); InitGP(array('question','customquest','answer'),'P'); $regsex = (int)$regsex; $regifemail = (int)$regifemail; $regemailtoall = (int)$regemailtoall; if ($inv_open=='1') { if (empty($invcode)) { Showmsg('invcode_empty'); } else { $inv_days*=86400; $inv=$db->get_one("SELECT id FROM pw_invitecode WHERE invcode='$invcode' AND ifused<'2' AND $timestamp-createtime<'$inv_days'"); !$inv && Showmsg('illegal_invcode'); } } if ($rg_ifcheck && !$regreason) { Showmsg('reg_reason'); } if (strlen($regname)>$rg_regmaxname || strlen($regname)<$rg_regminname) { Showmsg('reg_username_limit'); } if (strlen($regpwd)<$rg_regminpwd) { Showmsg('reg_password_minlimit'); } elseif ($rg_regmaxpwd && strlen($regpwd)>$rg_regmaxpwd) { Showmsg('reg_password_maxlimit'); } elseif ($rg_npdifferf && $regpwd==$regname) { Showmsg('reg_nameuptopwd'); } $S_key=array("\\",'&',' ',"'",'"','/','*',',','<','>',"\r","\t","\n",'#','%','?'); foreach ($S_key as $value) { if (strpos($regname,$value)!==false) { Showmsg('illegal_username'); } if ($regpwd!=$regname && strpos($regpwd,$value)!==false) { Showmsg('illegal_password'); } } $safecv=''; if ($db_ifsafecv) { require_once(R_P.'require/checkpass.php'); $safecv=questcode($question,$customquest,$answer); } if (!$rg_rglower) { for($asc=65;$asc<=90;$asc++) { if (strpos($regname,chr($asc))!==false) { Showmsg('username_limit'); } } } if (strpos($regicon,'..')!==false) { Showmsg('undefined_action'); } $regicon .= '|1'; $regpwd = md5($regpwd); if (strlen($regintroduce)>100) Showmsg('introduce_limit'); require_once(D_P.'data/bbscache/level.php'); @asort($lneed); $rg_memberid = key($lneed); if ($regsign != "") { if (file_exists(D_P."data/groupdb/group_$rg_memberid.php")) { require_once Pcv(D_P."data/groupdb/group_$rg_memberid.php"); } else { $gp_signnum = 50; } if (strlen($regsign)>$gp_signnum) { Showmsg('sign_limit'); } require_once(R_P.'require/bbscode.php'); $lxsign=convert($regsign,$db_windpic,2); if ($lxsign==$regsign) { $rg_ifconvert=1; } else { $rg_ifconvert=2; } } else { $rg_ifconvert=1; } if (@include_once(D_P."data/bbscache/wordsfb.php")) { $wordsfb = $wordsfb + $replace; foreach ($wordsfb as $key => $value) { $banword = (string) stripslashes($key); if (strpos($regsign,$banword)!==false || strpos($regintroduce,$banword)!==false) { Showmsg('sign_wordsfb'); } } } if (strpos($regpwd,"\r")!==false || strpos($regpwd,"\t")!==false || strpos($regpwd,"|")!==false || strpos($regpwd,"<")!==false || strpos($regpwd,">")!==false) { Showmsg('illegal_password'); } if (empty($regemail) || !ereg("^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,5}$",$regemail)) { Showmsg('illegal_email'); } else { if ($rg_email) { $e_check=0; $e_limit=explode(',',$rg_email); foreach ($e_limit as $key=>$val) { if (strpos($regemail,"@".$val)!==false) { $e_check=1; break; } } $e_check==0 && Showmsg('email_check'); } } if($regname!==Sql_cv($regname)){ Showmsg('illegal_username'); } $rs = $db->get_one("SELECT COUNT(*) AS count FROM pw_members WHERE username='$regname'"); if ($rs['count']>0) { Showmsg('username_same'); } $regname=='guest' && Showmsg('illegal_username'); $rg_banname=explode(',',$rg_banname); foreach ($rg_banname as $value) { if (strpos($regname,$value)!==false) { Showmsg('illegal_username'); } } $regsex=$regsex ? $regsex : "0"; $rg_birth = (!$regbirthyear || !$regbirthmonth || !$regbirthday) ? '0000-00-00' : $regbirthyear."-".$regbirthmonth."-".$regbirthday; if ($regoicq && !ereg("^[0-9]{5,}$",$regoicq)) { Showmsg('illegal_OICQ'); } if ($rg_ifcheck=='1') { $rg_groupid='7';//后台控制是否需要验证 } else { $rg_groupid='-1'; } $rg_yz=$rg_emailcheck==1 ? $timestamp : 1; $fieldadd=''; if ($customfield) { foreach ($customfield as $key=>$val) { $field="field_".(int)$val['id']; $$field=GetGP($field,'P'); if ($val['required'] && !$$field) { Showmsg('field_empty'); } if ($val['maxlen'] && strlen($$field) > $val['maxlen']) { Showmsg('field_lenlimit'); } $$field = Char_cv($$field); $fieldadd .= $fieldadd ? ",$field='{$$field}'" : "$field='{$$field}'"; } } $db->update("INSERT INTO pw_members (username,password,safecv,email,publicmail,groupid,memberid,icon,gender,regdate,signature,introduce,oicq,icq,site,location,bday,receivemail,yz,signchange) VALUES ('$regname','$regpwd','$safecv','$regemail','$regemailtoall','$rg_groupid','$rg_memberid','$regicon','$regsex','$timestamp','$regsign','$regintroduce','$regoicq','','$reghomepage','$regfrom','$rg_birth','$regifemail','$rg_yz','$rg_ifconvert')"); $winduid = $db->insert_id(); $regsql_1 = $regsql_2 = $regsql_3 = ''; foreach ($rg_regcredit as $key => $value) { if ($value < 1) continue; if (in_array($key,array('money','rvrc','credit','currency'))) { $key == 'rvrc' && $value *= 10; $regsql_1 .= ','.$key; $regsql_2 .= ",'$value'"; } elseif (is_numeric($key)) { $regsql_3 .= ($regsql_3 ? ',' : '')."('$winduid','$key','$value')"; } } $db->update("INSERT INTO pw_memberdata (uid,postnum{$regsql_1},lastvisit,thisvisit,onlineip) VALUES ('$winduid','0'{$regsql_2},'$timestamp','$timestamp','$onlineip')"); if ($regsql_3) { $db->update("INSERT INTO pw_membercredit(uid,cid,value) VALUES {$regsql_3}"); } if ($rg_ifcheck) { $db->update("INSERT INTO pw_memberinfo(uid,regreason) VALUES ('$winduid','$regreason')"); } $db_union=explode("\t",stripslashes($db_union)); $custominfo=unserialize($db_union[7]); if ($custominfo && $customdata) { foreach ($customdata as $key=>$val) { $key=Char_cv($key); $val=Char_cv($val); $customdata[stripslashes($key)]=stripslashes($val); } $customdata=addslashes(serialize($customdata)); $db->pw_update( "SELECT uid FROM pw_memberinfo WHERE uid='$winduid'", "UPDATE pw_memberinfo SET customdata='$customdata' WHERE uid='$winduid'", "INSERT INTO pw_memberinfo SET uid='$winduid',customdata='$customdata'" ); } $db->update("UPDATE pw_bbsinfo SET newmember='$regname',totalmember=totalmember+1 WHERE id='1'"); if ($fieldadd) { $db->pw_update( "SELECT uid FROM pw_memberinfo WHERE uid='$winduid'", "UPDATE pw_memberinfo SET $fieldadd WHERE uid='$winduid'", "INSERT INTO pw_memberinfo SET uid='$winduid',$fieldadd" ); } if ($inv_open=='1') { $db->update("UPDATE pw_invitecode SET receiver='$regname',usetime='$timestamp',ifused='2' WHERE id='$inv[id]'"); } $windid=$regname; $windpwd=$regpwd; //$iptime=$timestamp+86400; //Cookie("ifregip",$onlineip,$iptime); if ($rg_allowsameip) { if (file_exists(D_P.'data/bbscache/ip_cache.php')) { writeover(D_P.'data/bbscache/ip_cache.php',"<$onlineip>","ab"); } else { writeover(D_P.'data/bbscache/ip_cache.php',"<?php die;?><$timestamp>\n<$onlineip>"); } } //addonlinefile(); if (GetCookie('userads') && $db_ads=='2') { list($u,$a)=explode("\t",GetCookie('userads')); if (is_numeric($u) || ($a && strlen($a)<16)) { require_once(R_P.'require/userads.php'); } } if ($rg_yz == 1) { Cookie("winduser",StrCode($winduid."\t".PwdCode($windpwd)."\t".$safecv)); Cookie("ck_info",$db_ckpath."\t".$db_ckdomain); Cookie('lastvisit','',0);//将$lastvist清空以将刚注册的会员加入今日到访会员中 } //发送短消息 if ($rg_regsendmsg) { require_once(R_P.'require/msg.php'); $rg_welcomemsg = str_replace('$rg_name',$regname,$rg_welcomemsg); $messageinfo = array($windid,'0',"Welcome To[{$db_bbsname}]!",$timestamp,$rg_welcomemsg,'N'); writenewmsg($messageinfo,1); } //发送邮件 if ($rg_emailcheck) { require_once(R_P.'require/sendemail.php'); $sendinfo = sendemail($regemail,'email_check_subject','email_check_content','email_additional'); if ($sendinfo===true) { Showmsg('reg_email_success'); } else { Showmsg(is_string($sendinfo) ? $sendinfo : 'reg_email_fail'); } } elseif ($rg_regsendemail) { require_once(R_P.'require/sendemail.php'); sendemail($regemail,'email_welcome_subject','email_welcome_content','email_additional'); } //发送结束 //passport if ($db_pptifopen && $db_ppttype == 'server' && ($db_ppturls || $forward)) { $action='login'; $jumpurl=$forward ? $forward : $db_ppturls; require_once(R_P.'require/passport_server.php'); } //passport refreshto("./$db_bfn",'reg_success'); } else{ Showmsg('undefined_action'); } ?>