Guest User

Untitled

a guest
Feb 21st, 2018
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.52 KB | None | 0 0
  1. <?php
  2.  
  3.     require_once('./includes/core.php');
  4.     $data = new register_sql;
  5.     $lang->addLocale("landing.register");
  6.    
  7.     if(session_is_registered(username))
  8.     {
  9.         header("Location: ".PATH."/");
  10.         exit;
  11.     }
  12.  
  13.     define('WEBBUILD', '63_1dc60c6d6ea6e089c6893ab4e0541ee0/631');
  14.    
  15.     $error = array();
  16.     $failure = false;
  17.     $error_box = '<div id="error-placeholder"></div>';
  18.    
  19.     function RewriteError()
  20.     {
  21.         global $error_box, $error;
  22.        
  23.         $error_box = '<div id="error-messages-container" class="cbb">
  24.            <div class="rounded" style="background-color: #cb2121;">
  25.               <div id="error-title" class="error">';
  26.        
  27.         foreach ($error as $value)
  28.         {
  29.             $error_box .= $value."<br/>\r\n";
  30.         }
  31.        
  32.         $error_box .= '</div>
  33.            </div>
  34.        </div>';
  35.     }
  36.    
  37.     $step = 'age_gate';
  38.     if (isset($_GET['step']))
  39.     {
  40.         $step = $_GET['step'];
  41.     }
  42.    
  43.     switch ($step)
  44.     {
  45.         case 'age_gate_submit':
  46.            
  47.             $day = $input->FilterText($_POST['bean_day']);
  48.             $month = $input->FilterText($_POST['bean_month']);
  49.             $year = $input->FilterText($_POST['bean_year']);
  50.            
  51.             $gender = $input->FilterText($_POST['bean_gender']);
  52.            
  53.             $_year = date('Y');
  54.             $_days = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
  55.             if ($day < 1 || $day > $_days || $month > 12 || $month < 1 || $year < ($_year -100) || $year > $_year)
  56.             {
  57.                 $error[] = 'Type alsjeblieft een geldige datum';
  58.                 $failure = true;
  59.             }
  60.            
  61.             if ($year > ($_year -8))
  62.             {
  63.                 header("Location: ".PATH."/register.php?step=age_limit");
  64.                 exit;
  65.             }
  66.            
  67.             if ($gender != 'male' && $gender != 'female')
  68.             {
  69.                 $error[] = 'Ben je shemale?!';
  70.                 $failure = true;
  71.             }
  72.  
  73.             if (!$failure)
  74.             {
  75.                 $_SESSION['register']['bean_day'] = $day;
  76.                 $_SESSION['register']['bean_month'] = $month;
  77.                 $_SESSION['register']['bean_year'] = $year;
  78.                 $_SESSION['register']['bean_gender'] = $gender;
  79.                
  80.                 header("Location: ".PATH."/register.php?step=email_password");
  81.                 exit;
  82.             }
  83.            
  84.             RewriteError();
  85.            
  86.             require './templates/register_age_gate.php';
  87.             break;
  88.            
  89.         case 'age_limit':
  90.             require './templates/register_age_limit.php';
  91.             break;
  92.            
  93.         case 'email_password':
  94.            
  95.             $class_u = '';
  96.             $class_e = '';
  97.             $class_p = '';
  98.             $class_p2 = '';
  99.             $class_tos = '';
  100.            
  101.             $field_username = (isset($_SESSION['register']['username'])) ? $_SESSION['register']['username'] : '';
  102.             $field_email = (isset($_SESSION['register']['email'])) ? $_SESSION['register']['email'] : '';
  103.             $field_password = (isset($_SESSION['register']['password'])) ? $_SESSION['register']['password'] : '';
  104.             $field_password_retyped = (isset($_SESSION['register']['password'])) ? $_SESSION['register']['password'] : '';
  105.             $field_tos = (isset($_SESSION['register']['tos'])) ? 'checked' : '';
  106.            
  107.             $gender = $_SESSION['register']['bean_gender'];
  108.            
  109.             require './templates/register_email_password.php';
  110.             break;
  111.            
  112.         case 'email_password_submit':
  113.            
  114.             $field_username = $username = $input->FilterText($_POST['bean_username']);
  115.             $field_email = $email = $input->FilterText($_POST['bean_email']);
  116.             $field_password = $password = $input->FilterText($_POST['bean_password']);
  117.             $field_password_retyped = $password_retyped = $input->FilterText($_POST['bean_retypedPassword']);
  118.             $accept_tos = filter_var($_POST['bean_termsOfServiceSelection'], FILTER_VALIDATE_BOOLEAN);
  119.             $field_tos = ($accept_tos) ? 'checked' : '';
  120.            
  121.             $newsletter = ($_POST['bean.marketing'] == 'true') ? '1' : '0';
  122.            
  123.             $filter = preg_replace("/[^a-z\d\-=\?!@:\.]/i", "", $username);
  124.             $email_check = preg_match("/^[a-z0-9_\.-]+@([a-z0-9]+([\-]+[a-z0-9]+)*\.)+[a-z]{2,7}$/i", $email);
  125.            
  126.             $class_u = '';
  127.             $class_e = '';
  128.             $class_p = '';
  129.             $class_p2 = '';
  130.             $class_tos = '';
  131.            
  132.             // Name validation
  133.             if($serverdb->num_rows($serverdb->query("SELECT id,name,email FROM ".PREFIX."users WHERE name = '".$username."' LIMIT 1")) > 0)
  134.             {
  135.                 $_SESSION['register']['username'] = $username;
  136.                 header('Location: '.PATH.'/register?step=dubplicateEmail');
  137.                 exit;
  138.             }
  139.             elseif($filter != $username)
  140.             {
  141.                 $class_u = 'error';
  142.                 $error[] = 'Deze Doxnaam is niet toegestaan.';
  143.                 $failure = true;
  144.             }
  145.             elseif(strlen($username) > 24)
  146.             {
  147.                 $class_u = 'error';
  148.                 $error[] = 'Deze Doxnaam is te lang';
  149.                 $failure = true;
  150.             }
  151.             elseif(strlen($username) < 1)
  152.             {
  153.                 $class_u = 'error';
  154.                 $error[] = 'Deze Doxnaam is te kort';
  155.                 $failure = true;
  156.             }
  157.            
  158.             // MOD- Names validation
  159.             $first = substr($username, 0, 4);
  160.             if (strnatcasecmp($first,"MOD-") == false) {
  161.                 $class_u = 'error';
  162.                 $error[] = 'Deze Doxnaam is niet toegestaan.';
  163.                 $failure = true;
  164.             }
  165.            
  166.             // Password validation
  167.             if($password !== $password_retyped)
  168.             {
  169.                 $class_p = 'error';
  170.                 $class_p2 = 'error';
  171.                 $error[] = 'Wachtwoord is niet hetzelfde. Probeer het nog eens.';
  172.                 $failure = true;
  173.             }
  174.             elseif(strlen($password) < 6)
  175.             {
  176.                 $class_p = 'error';
  177.                 $error[] = 'Het opgegeven wachtwoord is tekort';
  178.                 $failure = true;
  179.             }
  180.        
  181.             // E-Mail validation
  182.             if(strlen($email) < 6)
  183.             {
  184.                 $class_e = 'error';
  185.                 $error[] = 'Het opgegeven mailadres is tekort';
  186.                 $failure = true;
  187.             }
  188.             elseif($email_check !== 1)
  189.             {
  190.                 $class_e = 'error';
  191.                 $error[] = 'Vul alsjeblieft een geldig mailadres in. ';
  192.                 $failure = true;
  193.             }
  194.            
  195.             // Terms of Service validation
  196.             if(!$accept_tos)
  197.             {
  198.                 $class_tos = 'error';
  199.                 $error[] = 'De Algemene Voorwaarden moeten worden geaccepteerd om verder te kunnen.';
  200.                 $failure = true;
  201.             }
  202.            
  203.             if (!$failure)
  204.             {
  205.                 $_SESSION['register']['username'] = $username;
  206.                 $_SESSION['register']['email'] = $email;
  207.                 $_SESSION['register']['password'] = $password;
  208.                 $_SESSION['register']['newsletter'] = $newsletter;
  209.                 $_SESSION['register']['tos'] = $accept_tos;
  210.                
  211.                 header('Location: '.PATH.'/register?step=captcha');
  212.                 exit;
  213.             }
  214.            
  215.             RewriteError();
  216.            
  217.             $gender = $_SESSION['register']['bean_gender'];
  218.        
  219.             require './templates/register_email_password.php';
  220.             break;
  221.            
  222.         case 'dubplicateEmail':
  223.            
  224.             $username = $_SESSION['register']['username'];
  225.        
  226.             require './templates/register_dubplicateEmail.php';
  227.             break;
  228.            
  229.         case 'captcha':
  230.             require './templates/register_captcha.php';
  231.             break;
  232.            
  233.         case 'captcha_submit':
  234.             if(($_SESSION['register-captcha-bubble'] == strtolower($_POST['bean_captchaResponse']) && !empty($_SESSION['register-captcha-bubble'])) || $settings->find("site_capcha") == "0") {
  235.                 unset($_SESSION['register-captcha-bubble']);
  236.             } else {
  237.                 $error[] = 'De code die je in hebt getypt is ongeldig. Probeer het nog eens.';
  238.                 $failure = true;
  239.             }
  240.            
  241.             if (!$failure)
  242.             {
  243.                 $day = $_SESSION['register']['day'];
  244.                 $month = $_SESSION['register']['month'];
  245.                 $year = $_SESSION['register']['year'];
  246.                
  247.                 $name = $_SESSION['register']['username'];
  248.                 $password = $_SESSION['register']['password'];
  249.                 $email = $_SESSION['register']['email'];
  250.                 $newsletter = $_SESSION['register']['newsletter'];
  251.                
  252.                 $figure = 'hr-100-.hd-180-1.ch-210-66.lg-270-80.sh-300-91';
  253.                 $gender = $_SESSION['register']['gender'];
  254.                
  255.                 unset($_SESSION['register']);
  256.                
  257.                 $scredits = $settings->find("register_start_credits");
  258.        
  259.                 $dob = $day . "-" . $month . "-" . $year;
  260.        
  261.                 $password = $input->HoloHash($password, $name);
  262.                
  263.                 $data->insert1($name,$password,$dob,$figure,$gender,2500);
  264.                 $row = $serverdb->fetch_row($data->select3($name));
  265.                 $serverdb->query("INSERT INTO cms_users (id,name,lastvisit,online,newsletter,email_verified,show_home,email_friendrequest,email_minimail,email,show_online) VALUES ('".$row[0]."','".$row[1]."','".time()."','".time()."','".$newsletter."','0','1','1','1','".$email."','1')");
  266.                
  267.                 if($settings->find("email_verify_enabled") == "1"){
  268.                 $hash = "";
  269.                 $length = 8;
  270.                 $possible = "0123456789qwertyuiopasdfghjkzxcvbnm";
  271.                 $i = 0;
  272.                 while ($i < $length) {
  273.                 $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
  274.                 if (!strstr($hash, $char)) {
  275.                   $hash .= $char;
  276.                   $i++;
  277.                 }
  278.                 }
  279.                 $hash = sha1($hash);
  280.                 $num = $key;
  281.                 $db->query("INSERT INTO ".PREFIX."verify (id,email,key_hash) VALUES ('".$row[0]."','".$email."','".$hash."')");
  282.                 $lang->addLocale("email.confirmationemail");
  283.                 if($settings->find("email_verify_reward") != "0"){ $reward_text = $lang->loc['email.reward']." ".$settings->find("email_verify_reward")." ".$lang->loc['credits']; }else{ $reward_text = ""; }
  284.                 $subject = $lang->loc['email.subject']." ".SHORTNAME;
  285.                 $to = $email;
  286.                 $html =
  287.                 '<h1 style="font-size: 16px">'.$lang->loc['email.verify.1'].'</h1>
  288.        
  289.                 <p>
  290.                 '.$reward_text.'
  291.                 '.$lang->loc['email.verify.2'].' <a href="'.PATH.'/email?key='.$hash.'">'.$lang->loc['email.verify.2.b'].'</a>
  292.                 </p>
  293.        
  294.                 <p>
  295.                 '.$lang->loc['email.verify.3'].'
  296.                 </p>
  297.        
  298.                 <blockquote>
  299.                 <p>
  300.                 <b>'.$lang->loc['email.verify.4'].'</b> '.$name.'<br>
  301.                 <b>'.$lang->loc['email.verify.5'].'</b> '.$dob.'
  302.                 </p>
  303.                 </blockquote>
  304.        
  305.                 <p>
  306.                 '.$lang->loc['email.verify.6'].'
  307.                 </p>
  308.        
  309.                 <p>'.$lang->loc['email.verify.7'] .'<br><br>
  310.                 '.$lang->loc['email.verify.8'].'<p>
  311.                 '.PATH.'/</p>
  312.        
  313.                 <p>
  314.                 '.$lang->loc['email.verify.9'].' <a href="'.PATH.'/email?remove='.$hash.'">'.$lang->loc['email.verify.9.b'].'</a>.
  315.                 </p>
  316.        
  317.                 <p>
  318.                 '.$lang->loc['email.verify.11'].'<a href="'.PATH.'/help">'.$lang->loc['email.verify.12'].'</a>.
  319.                 </p>';
  320.                 $mailer = new HoloMail;
  321.                 $mailer->sendSimpleMessage($to,$subject,$html);
  322.                 }else{
  323.                     $serverdb->query("UPDATE ".PREFIX."users SET email_verified = '1' WHERE id = '".$row[0]."' LIMIT 1");
  324.                 }
  325.                
  326.                 // Referral
  327.                 if($refer == true){
  328.                     $data->update1($referrow[0],$settings->find("register_referral_rewards"));
  329.                     $db->query("INSERT INTO ".PREFIX."transactions (userid,time,amount,descr) VALUES ('".$referrow[0]."','".time()."','".$settings->find("register_referral_rewards")."','Referring a user.')");
  330.                     $data->insert2($row[0],$referrow[0]);
  331.                     $_SESSION['referral'] = $referrow[0];
  332.                 }
  333.        
  334.                 $user = new HoloUser($name,$password,true);
  335.                 $_SESSION['user'] = $user;
  336.        
  337.                 header("Location: ".PATH."/security_check?page=./me");
  338.        
  339.                 exit; // cut off the script
  340.        
  341.                 // And we're done!
  342.             }
  343.            
  344.             RewriteError();
  345.            
  346.             require './templates/register_captcha.php';
  347.             break;
  348.            
  349.         case 'age_gate':
  350.         default:
  351.             require './templates/register_age_gate.php';
  352.             break;
  353.     }
  354.  
  355. ?>
Add Comment
Please, Sign In to add comment