Guest User

Untitled

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