// // ------------------------------------------------------------------------- // // Original Author: The Xoops Project // Author Website : http://www.xoops.org // License Type : GPL: See /manual/LICENSES/GPL.txt // ------------------------------------------------------------------------- // $xoopsOption['pagetype'] = 'user'; $xoopsOption['page_style'] = 8; $xoopsOption['nocache'] = 1; include_once("./mainfile.php"); if ( empty($bcoosConfig['allow_register']) ) { redirect_header('index.php', 1, _US_NOREG); exit(); } //---------------------------------------------------------------------------------------// /** * Description * * @param type $var description * @return type description */ function userCheck($uname, $email, $pass, $vpass, $verify_text, $verify_crc) { global $bcoosConfig, $db, $myts, $xoopsBadEmails, $xoopsBadUnames; $stop = ""; if ( !checkEmail($email) ) { $stop .= _US_INVALIDMAIL."
"; } if ( strrpos($uname,' ') > 0 ) { $stop .= _US_EMAILNOSPACES."
"; } $uname = $myts->oopsStripSlashesGPC($uname); $strict = "^a-zA-Z0-9_"; $medium = $strict."<>,.$%#@!\'\""; $loose = $medium."?{}\[\]\(\)\^&*`~;:\\+="; switch ( $bcoosConfig['uname_test_level'] ) { case 0: $restriction = $strict; break; case 1: $restriction = $medium; break; case 2: $restriction = $loose; break; } if ( empty($uname) || preg_match('#['.$restriction.'-]#', $uname) ) { $stop .= _US_INVALIDNICKNAME."
"; } if ( strlen($uname) > 25 ) { $stop .= _US_NICKNAMETOOLONG."
"; } /* if ( !empty($xoopsBadUnames) && hasMatch($xoopsBadUnames, $uname) ) { $stop .= _US_NAMERESERVED."
"; break; } */ if ( strrpos($uname, ' ') > 0 ) { $stop .= _US_NICKNAMENOSPACES."
"; } $sql = "SELECT COUNT(*) FROM ".$db->prefix("users")." WHERE uname='".addslashes($uname)."'"; $result = $db->query($sql); list($count) = $db->fetchRow($result); if ($count > 0) { $stop .= _US_NICKNAMETAKEN."
"; } $count = 0; if ($email) { /* if ( !empty($xoopsBadEmails) && hasMatch($xoopsBadEmails, $email) ) { $stop .= _US_EMAILRESERVED."
"; break; } */ $sql = "SELECT COUNT(*) FROM ".$db->prefix("users")." WHERE email='".$myts->makeTboxData4Save($email)."'"; $result = $db->query($sql); list($count) = $db->fetchRow($result); if ( $count > 0 ) { $stop .= _US_EMAILTAKEN."
"; } } if ( empty($pass) || empty($vpass) ) { $stop .= _US_ENTERPWD."
"; } if ( (isset($pass)) && ($pass != $vpass) ) { $stop .= _US_PASSNOTSAME."
"; } elseif ( ($pass != "") && (strlen($pass) < $bcoosConfig['minpass']) ) { $stop .= sprintf(_US_PWDTOOSHORT, $bcoosConfig['minpass'])."
"; } if ($bcoosConfig['img_verify'] == 1 && function_exists('imagecreate')) { include_once(XOOPS_ROOT_PATH."/class/rc4.crypt.php"); $rc4 = new rc4_crypt(); $rc4->key(strtoupper($verify_text)); $verify_crc = base64_decode($verify_crc); $rc4->decrypt($verify_crc); if ( empty($verify_text) || $verify_crc != "verified" ) { $stop .= _US_BADVERIF."
"; } } return $stop; } //---------------------------------------------------------------------------------------// if ( empty($bcoosConfig['agree_register']) ) { $op = "register"; } else { $op = "agree";} foreach ($_POST as $k => $v) { $$k = $v; } switch ($op) { case "agree": include_once("header.php"); OpenTable(); include_once("include/agreeform.php"); $reg_form->display(); CloseTable(); include_once("footer.php"); break; case "register": $agreeok = 0; if ($bcoosConfig['agree_register']) { if ( $agree_yesno) { $agreeok = 1; } else { redirect_header('index.php', 1, _AGREE_REQUIRED); exit(); } } include_once("header.php"); OpenTable(); include_once("include/registerform.php"); $reg_form->display(); CloseTable(); include_once("footer.php"); break; case "newuser": include_once("header.php"); $uname = trim($uname); $email = trim($email); $pass = trim($pass); $vpass = trim($vpass); $verify_text = trim($verify_text); $verify_crc = trim($verify_crc); $stop = userCheck($uname, $email, $pass, $vpass, $verify_text, $verify_crc); if ( empty($stop) ) { OpenTable(); echo ""._US_USERNAME.": ".$myts->makeTboxData4Preview($uname)."
"; echo ""._EMAIL.": ".$myts->makeTboxData4Preview($email)."
"; if ( $user_avatar != "" ) { echo ""._US_AVATAR.":
"; } if ( isset($url) && $url != "" ) { $url = formatURL($myts->makeTboxData4Preview($url)); echo ""._US_WEBSITE.": $url
"; } $f_timezone = ($timezone_offset < 0) ? "GMT ".$timezone_offset : "GMT +".$timezone_offset; echo _US_TIMEZONE.": $f_timezone


"; CloseTable(); } else { echo "$stop"; include_once("include/registerform.php"); $reg_form->display(); } include_once("footer.php"); break; case "finish": include_once("header.php"); $uname = trim($uname); $email = trim($email); $pass = trim($pass); $vpass = trim($vpass); $verify_text = trim($verify_text); $verify_crc = trim($verify_crc); $stop = userCheck($uname, $email, $pass, $vpass, $verify_text, $verify_crc); if ( empty($stop) ) { $newuser = new XoopsUser(); if ( isset($user_viewemail) ) { $newuser->setVar("user_viewemail", $user_viewemail); } if ( isset($attachsig) ) { $newuser->setVar("attachsig",$attachsig); } $newuser->setVar("name" , $name); $newuser->setVar("uname", $uname); $newuser->setVar("email", $email); if ( !empty($url) ) { $newuser->setVar("url", formatURL($url)); } $newuser->setVar("user_avatar", $user_avatar); $newuser->setVar("actkey", substr(md5(makepass()), 0, 8)); $newuser->setVar("pass", md5($pass)); $newuser->setVar("timezone_offset", $timezone_offset); $newuser->setVar("user_regdate", time()); $newuser->setVar("uorder", $bcoosConfig['com_order']); $newuser->setVar("umode", $bcoosConfig['com_mode']); $newuser->setVar("user_mailok", $user_mailok); $newid = $newuser->store(); if ( !$newid ) { OpenTable(); echo _US_REGISTERNG; foreach($newuser->errors as $value) { echo "
-->".$value; } CloseTable(); include_once("footer.php"); exit(); } if (!empty($bcoosConfig['auto_register'])) { $newuser->setVar("uid", $newid); if ($newuser->activate()) { OpenTable(); printf(_US_AUTOREGISTERED, $uname); CloseTable(); include_once("footer.php"); exit(); } } $xoopsMailer =& getMailer(); $xoopsMailer->useMail(); if ($bcoosConfig['coppa']) { $xoopsMailer->setTemplate("coppa.tpl"); $xoopsMailer->assign("UEMAIL" , $email); $xoopsMailer->assign("UWEBSITE", $url); $xoopsMailer->assign("UNAME" , $uname); $xoopsMailer->assign("UPASS" , $pass); } else { $xoopsMailer->setTemplate("register.tpl"); } $xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname)); $xoopsMailer->assign("SITENAME", $bcoosConfig['title']); $xoopsMailer->assign("ADMINMAIL", $bcoosConfig['adminmail']); $xoopsMailer->assign("SITEURL", XOOPS_URL."/"); $xoopsMailer->setToUsers($newid); $xoopsMailer->setFromEmail($bcoosConfig['adminmail']); $xoopsMailer->setFromName($bcoosConfig['title']); $xoopsMailer->setPriority(2); OpenTable(); if ( !$xoopsMailer->send() ) { echo _US_YOURREGMAILNG; foreach($xoopsMailer->errors as $value) { echo "
-->".$value; } } else { echo _US_YOURREGISTERED; } CloseTable(); if ( $bcoosConfig['new_user_notify'] == 1 && !empty($bcoosConfig['new_user_notify_group']) ) { $xoopsMailer =& getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setToGroups($bcoosConfig['new_user_notify_group']); $xoopsMailer->setFromEmail($bcoosConfig['adminmail']); $xoopsMailer->setFromName($bcoosConfig['title']); $xoopsMailer->setSubject(sprintf(_US_NEWUSERREGAT, $bcoosConfig['title'])); $xoopsMailer->setBody(sprintf(_US_HASJUSTREG, $uname)); $xoopsMailer->send(); } } else { echo "$stop"; include_once("include/registerform.php"); $reg_form->display(); } include_once("footer.php"); break; } ?>