* @version $Id: register.php 8066 2011-11-06 05:09:33Z beckmi $ */ include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mainfile.php'; $xoopsPreload =& XoopsPreload::getInstance(); $xoopsPreload->triggerEvent('core.register.start'); xoops_loadLanguage('user'); xoops_load('XoopsUserUtility'); $myts =& MyTextSanitizer::getInstance(); $config_handler =& xoops_gethandler('config'); $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); if (empty($xoopsConfigUser['allow_register'])) { redirect_header('index.php', 6, _US_NOREGISTER); exit(); } function userCheck($uname, $email, $pass, $vpass) { $GLOBALS['xoopsLogger']->addDeprecated("Function " . __FUNCTION__ . " is deprecated, use XoopsUserUtility::validate() instead"); return XoopsUserUtility::validate($uname, $email, $pass, $vpass); } $op = isset($_POST['op']) ? $_POST['op'] : (isset($_GET["op"]) ? $_GET["op"] : 'register'); $uname = isset($_POST['uname']) ? $myts->stripSlashesGPC($_POST['uname']) : ''; $email = isset($_POST['email']) ? trim($myts->stripSlashesGPC($_POST['email'])) : ''; $url = isset($_POST['url']) ? trim($myts->stripSlashesGPC($_POST['url'])) : ''; $pass = isset($_POST['pass']) ? $myts->stripSlashesGPC($_POST['pass']) : ''; $vpass = isset($_POST['vpass']) ? $myts->stripSlashesGPC($_POST['vpass']) : ''; $timezone_offset = isset($_POST['timezone_offset']) ? (float) $_POST['timezone_offset'] : $xoopsConfig['default_TZ']; $user_viewemail = (isset($_POST['user_viewemail']) && intval($_POST['user_viewemail'])) ? 1 : 0; $user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0; $agree_disc = (isset($_POST['agree_disc']) && intval($_POST['agree_disc'])) ? 1 : 0; switch ($op) { case 'newuser': $xoopsOption['xoops_pagetitle'] = _US_USERREG; include $GLOBALS['xoops']->path('header.php'); $stop = ''; if (!$GLOBALS['xoopsSecurity']->check()) { $stop .= implode('
', $GLOBALS['xoopsSecurity']->getErrors()) . "
"; } if ($xoopsConfigUser['reg_dispdsclmr'] != 0 && $xoopsConfigUser['reg_disclaimer'] != '') { if (empty($agree_disc)) { $stop .= _US_UNEEDAGREE . '
'; } } $stop .= XoopsUserUtility::validate($uname, $email, $pass, $vpass); if (empty($stop)) { echo _US_USERNAME . ": " . $myts->htmlSpecialChars($uname) . "
"; echo _US_EMAIL . ": " . $myts->htmlSpecialChars($email) . "
"; if ($url != '') { $url = formatURL($url); echo _US_WEBSITE . ': ' . $myts->htmlSpecialChars($url) . '
'; } $f_timezone = ($timezone_offset < 0) ? 'GMT ' . $timezone_offset : 'GMT +' . $timezone_offset; echo _US_TIMEZONE . ": $f_timezone
"; echo "
"; xoops_load('XoopsFormCaptcha'); $cpatcha = new XoopsFormCaptcha(); echo "
" . $cpatcha->getCaption() . ": " . $cpatcha->render(); echo "

" . $GLOBALS['xoopsSecurity']->getTokenHTML() . "
"; } else { echo "$stop"; include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); } include $GLOBALS['xoops']->path('footer.php'); break; case 'finish': include $GLOBALS['xoops']->path('header.php'); $stop = XoopsUserUtility::validate($uname, $email, $pass, $vpass); if (!$GLOBALS['xoopsSecurity']->check()) { $stop .= implode('
', $GLOBALS['xoopsSecurity']->getErrors()) . "
"; } xoops_load('XoopsCaptcha'); $xoopsCaptcha = XoopsCaptcha::getInstance(); if (!$xoopsCaptcha->verify()) { $stop .= $xoopsCaptcha->getMessage() . "
"; } if (empty($stop)) { $member_handler =& xoops_gethandler('member'); $newuser =& $member_handler->createUser(); $newuser->setVar('user_viewemail', $user_viewemail, true); $newuser->setVar('uname', $uname, true); $newuser->setVar('email', $email, true); if ($url != '') { $newuser->setVar('url', formatURL($url), true); } $newuser->setVar('user_avatar', 'avatars/blank.gif', true); $actkey = substr(md5(uniqid(mt_rand(), 1)), 0, 8); $newuser->setVar('actkey', $actkey, true); $newuser->setVar('pass', md5($pass), true); $newuser->setVar('timezone_offset', $timezone_offset, true); $newuser->setVar('user_regdate', time(), true); $newuser->setVar('uorder', $GLOBALS['xoopsConfig']['com_order'], true); $newuser->setVar('umode', $GLOBALS['xoopsConfig']['com_mode'], true); $newuser->setVar('theme', $GLOBALS['xoopsConfig']['theme_set'], true); $newuser->setVar('user_mailok', $user_mailok, true); if ($xoopsConfigUser['activation_type'] == 1) { $newuser->setVar('level', 1, true); } else { $newuser->setVar('level', 0, true); } if (!$member_handler->insertUser($newuser)) { echo _US_REGISTERNG; include $GLOBALS['xoops']->path('footer.php'); exit(); } $newid = $newuser->getVar('uid'); if (!$member_handler->addUserToGroup(XOOPS_GROUP_USERS, $newid)) { echo _US_REGISTERNG; include $GLOBALS['xoops']->path('footer.php'); exit(); } if ($xoopsConfigUser['activation_type'] == 1) { XoopsUserUtility::sendWelcome($newuser); redirect_header('index.php', 4, _US_ACTLOGIN); exit(); } // Sending notification email to user for self activation if ($xoopsConfigUser['activation_type'] == 0) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('register.tpl'); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $xoopsMailer->setToUsers(new XoopsUser($newid)); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname)); if (! $xoopsMailer->send()) { echo _US_YOURREGMAILNG; } else { echo _US_YOURREGISTERED; } // Sending notification email to administrator for activation } elseif ($xoopsConfigUser['activation_type'] == 2) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('adminactivate.tpl'); $xoopsMailer->assign('USERNAME', $uname); $xoopsMailer->assign('USEREMAIL', $email); $xoopsMailer->assign('USERACTLINK', XOOPS_URL . '/register.php?op=actv&id=' . $newid . '&actkey=' . $actkey); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $member_handler =& xoops_gethandler('member'); $xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['activation_group'])); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname)); if (! $xoopsMailer->send()) { echo _US_YOURREGMAILNG; } else { echo _US_YOURREGISTERED2; } } if ($xoopsConfigUser['new_user_notify'] == 1 && !empty($xoopsConfigUser['new_user_notify_group'])) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->reset(); $xoopsMailer->useMail(); $member_handler =& xoops_gethandler('member'); $xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['new_user_notify_group'])); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_NEWUSERREGAT, $xoopsConfig['sitename'])); $xoopsMailer->setBody(sprintf(_US_HASJUSTREG, $uname)); $xoopsMailer->send(); } } else { echo "{$stop}"; include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); } include $GLOBALS['xoops']->path('footer.php'); break; case 'actv': case 'activate': $id = intval($_GET['id']); $actkey = trim($_GET['actkey']); if (empty($id)) { redirect_header('index.php', 1, ''); exit(); } $member_handler =& xoops_gethandler('member'); $thisuser =& $member_handler->getUser($id); if (!is_object($thisuser)) { exit(); } if ($thisuser->getVar('actkey') != $actkey) { redirect_header('index.php', 5, _US_ACTKEYNOT); } else { if ($thisuser->getVar('level') > 0) { redirect_header('user.php', 5, _US_ACONTACT, false); } else { if (false != $member_handler->activateUser($thisuser)) { $config_handler =& xoops_gethandler('config'); $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); if ($xoopsConfigUser['activation_type'] == 2) { $myts =& MyTextSanitizer::getInstance(); $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('activated.tpl'); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $xoopsMailer->setToUsers($thisuser); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_YOURACCOUNT, $xoopsConfig['sitename'])); include $GLOBALS['xoops']->path('header.php'); if (!$xoopsMailer->send()) { printf(_US_ACTVMAILNG, $thisuser->getVar('uname')); } else { printf(_US_ACTVMAILOK, $thisuser->getVar('uname')); } include $GLOBALS['xoops']->path('footer.php'); } else { redirect_header('user.php', 5, _US_ACTLOGIN, false); } } else { redirect_header('index.php', 5, _US_ACTFAILD); } } } break; case 'register': default: $xoopsOption['xoops_pagetitle'] = _US_USERREG; include $GLOBALS['xoops']->path('header.php'); $xoTheme->addMeta('meta', 'keywords', _US_USERREG . ", " . _US_NICKNAME); // FIXME! $xoTheme->addMeta('meta', 'description', strip_tags($xoopsConfigUser['reg_disclaimer'])); include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); include $GLOBALS['xoops']->path('footer.php'); break; } ?>