Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $user = new Users;
- if ($config->isPOST()){
- $req = & $_POST;
- } else {
- $req = & $_GET;
- }
- $campaignHash = isset($req['campaignHash']) ? $req['campaignHash'] : null;
- $data = array(
- 'screenname' => trim($req['screenname']),
- 'email' => trim($req['email']),
- 'password' => $req['password']
- );
- $lang = isset($_GET['lang']) ? $_GET['lang'] : null;
- if (empty($data['screenname'])) {
- Ajax::outputError(Lang::getText('fill_in_your_name', $lang));
- } else if (!valid_screenname($data['screenname'])){
- Ajax::outputError(Lang::getText('name_invalid_caracters', $lang));
- } else if (!Valid::email($data['email'])){
- Ajax::outputError(Lang::getText('invalid_email_address', $lang));
- } else if (Users::emailExistsForType($data['email'], Users::TYPE_SNACKTOOLS)){
- Ajax::outputError(Lang::getText('email_exists', $lang));
- } else if (strlen($data['password']) < 4){
- Ajax::outputError(Lang::getText('password_to_short', $lang));
- }
- $username = null;
- if (isset($req['username'])) {
- $username = realEscapeString(trim($req['username']));
- if (strlen($username) < UserProfile::MIN_USERNAME_LENGTH) {
- Ajax::outputError(str_replace('$chars$', UserProfile::MIN_USERNAME_LENGTH, Lang::getText('name_char_length', $lang)));
- }
- if (!UserProfile::valid($username)) {
- Ajax::outputError(Lang::getText('name_invalid_caracters', $lang));
- }
- if (!UserProfile::accepted($username)) {
- Ajax::outputError(Lang::getText('username_not_accepted', $lang));
- }
- if (!UserProfile::unique($username)) {
- Ajax::outputError(Lang::getText('username_not_unique', $lang));
- }
- }
- //check for social account with this email
- if ($type = Users::haveActiveOldSocialAccounts($data['email'])){
- $err = sprintf(Lang::getText('email_associated_with_other_account_type'), $type, $data['email']);
- Ajax::outputError($err);
- }
- //temp
- $temailSplit = explode('@', $data['email']);
- if (count($temailSplit) == 2 && strtolower($temailSplit[1]) == 'hotmail.com'){
- $hLettersCount = 0;
- $tename = $temailSplit[0];
- $tenameCount = strlen($tename);
- for ($i = 0; $i < $tenameCount; $i++){
- if (ctype_upper($tename[$i])){
- $hLettersCount++;
- }
- }
- if ($hLettersCount >= 2){
- $hDigitCount = 0;
- $tscname = $data['screenname'];
- $tscnameeCount = strlen($tscname);
- for ($i = 0; $i < $tscnameeCount; $i++){
- if (ctype_digit($tscname[$i])){
- $hDigitCount++;
- }
- }
- if ($hDigitCount > 0){
- Ajax::outputError(Lang::getText('signup_hotmail_error'));
- }
- }
- }
- //end temp
- //check bannedDomains
- if (UserBannedEmailDomain::bannedForEmail($data['email'])){
- Ajax::outputError(Lang::getText('signup_hotmail_error'));
- }
- //temp 2
- //disable screenname: Joan Hx Michael, Edward Hz Michael ...
- $tscname = explode(" ", $data['screenname']);
- if (count($tscname) === 3 &&
- strtoupper($tscname[0][0]) === $tscname[0][0] &&
- strtoupper($tscname[1][0]) === $tscname[1][0] &&
- strtoupper($tscname[2][0]) === $tscname[2][0] &&
- strlen($tscname[1]) == 2 &&
- !UserBannedEmailDomain::emailDomainIsInWildCardList($data['email'])
- ){
- Ajax::outputError(Lang::getText('signup_hotmail_error'));
- }
- //end temp 2
- $ip = isset($_GET['ip']) ? $_GET['ip'] : null;
- $requireCaptcha = UsersHistory::requireCaptcha($ip);
- $lterminal = isset($_REQUEST['loginTerminal']) ? $_REQUEST['loginTerminal'] : null;
- if (!$lterminal){
- $lterminal = $terminal;
- }
- if($lterminal=='snacktools'){
- $captchaSrc = $config->STApi->urlHttps;
- } else {
- $captchaSrc = $config->absolute_url;
- }
- if ($requireCaptcha && !CaptchaGenerator::checkCaptcha($req['captchaId'], $req['captcha'])){
- $newCaptchaId = CaptchaGenerator::getNewDBId();
- $out = array(
- 'error' => Lang::getText('invalid_captcha_code'),
- 'id' => $newCaptchaId,
- 'src' => $captchaSrc . '/captcha.php?id=' . $newCaptchaId . '&t=' . $lterminal
- );
- Ajax::outputError($out, 4);
- }
- $smarty = UserApi::getSmarty();
- $user->setRecord($data);
- $user->active = 1;
- $user->confirmed = 0;
- $user->password = md5($data['password']);
- if (isset($req['banneradv']) && $req['banneradv']){
- $user->addFlag(Users::FLAG_ADVERTISING_FROM_BLOG_NEWSLETTER);
- }
- $user->insert($lterminal, $campaignHash, isset($req['ip']) ? $req['ip'] : null);
- if (!isset($req['newsletter']) || !$req['newsletter']){
- $udetails = $user->getDetails();
- if ($udetails->id){
- $udetails->newsletter = 0;
- $udetails->save();
- }
- }
- if ($username) {
- $userProfile = new UserProfile();
- $userProfile->user_id = $user->id;
- $userProfile->user_name = $username;
- $userProfile->insert();
- }
- $activation = $user->createActivationRecord($lterminal);
- $user->sendActivationMail($activation);
- $user->STApiForceLoginCurrentUser($lterminal, isset($req['ip']) ? $req['ip'] : null);
- CaptchaGenerator::deleteCaptcha($req['captchaId']);
- TrackLogs::trackMember();
- TrackObjLogs::trackMember();
- UserApi::addOutputData('PHPSESSID', session_id());
- $textsIndexes = array(
- 'account_created_verify_email',
- 'account_created_important',
- 'account_created_time_left',
- 'continue_button',
- 'access_to_all_apps',
- 'thank_you_for_registering',
- 'account_created_verify_email_flipsnack'
- );
- $bsTextsIndexes = array(
- 'almost_there',
- 'best_experience',
- 'what_describes',
- 'business_owner',
- 'marketer',
- 'designer',
- 'developer',
- 'none_of_the_above',
- 'account_created_email_sent',
- 'bs_account_created_please_confirm'
- );
- $textsIndexes = array_merge($textsIndexes, $bsTextsIndexes);
- $texts = Lang::getTexts($textsIndexes, $lang);
- $smarty->assign('texts', $texts);
- $smarty->assign('terminal', $terminal);
- $options = isset($_GET['options']) && is_array($_GET['options']) ? $_GET['options'] : array();
- if ($lterminal != 'bannersnack') {
- UserApi::htmlContent($smarty->fetch('account-created.tpl'));
- } else {
- UserApi::htmlContent($smarty->fetch('bannersnack/account-created.tpl'));
- }
- UserApi::addOutputData('user', $user);
- UserApi::addOutputData('pageTitle', $texts['thank_you_for_registering']);
- UserApi::addOutputData('header', UserApi::getHeaderHtml($terminal, $options));
- UserApi::addOutputData('rememberme', true);
- UserApi::addOutputData('email', $user->email);
- UserApi::addOutputData('pass', $user->password);
Add Comment
Please, Sign In to add comment