//
// ------------------------------------------------------------------------- //
// 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