Advertisement
Guest User

Untitled

a guest
Dec 14th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.84 KB | None | 0 0
  1. <?php
  2.  
  3. $this->Title = 'Wachtwoord vergeten';
  4.  
  5. $this->Define('Nav-3', 'active');
  6.  
  7. $Errors = "";
  8.  
  9. $this->AddJS('https://www.google.com/recaptcha/api.js');
  10.  
  11. if (!isset(CMS::$Router->Request->SubUrls[0]))
  12. {
  13. if (isset($_POST['email']))
  14. {
  15. $Mail = $_POST['email'];
  16.  
  17. if (!Site::ValidCaptcha())
  18. {
  19. $Errors = "<div id='toast-container'><div class='toast red'>De Captcha is onjuist!</div></div>";
  20. }
  21. else if (!Users::ValidMail($Mail))
  22. {
  23. $Errors = '<div id="toast-container"><div class="toast red">Deze email is niet geldig.</div></div>';
  24. }
  25. else if (Users::MailFree($Mail))
  26. {
  27. $Errors = "<div id='toast-container'><div class='toast red'>Deze email bestaat niet!</div></div>";
  28. }
  29. else
  30. {
  31.  
  32. $Data = CMS::$MySql->Query("SELECT id, username, rank FROM users WHERE mail = '".$Mail."'");
  33. $Info = $Data->fetch_assoc();
  34.  
  35. $Check = CMS::$MySql->Query("SELECT expire FROM wachtwoord_vergeten WHERE userid = '".$Info['id']."'");
  36. $CheckData = $Check->fetch_assoc();
  37.  
  38. if ($Info['rank'] > 2)
  39. {
  40. $Errors = "<div id='toast-container'><div class='toast red'>Er kunnen geen mails worden verzonden naar dit email!</div></div>";
  41. }
  42. else if ($CheckData['expire'] == true && $CheckData['expire'] > time())
  43. {
  44. $Errors = "<div id='toast-container'><div class='toast red'>Er is recentelijk al een bericht naar dit email gestuurd! <br> Probeer het over een uur nog eens!</div></div>";
  45. }
  46. else
  47. {
  48.  
  49. $Code = Site::RandomMD5(32);
  50.  
  51. require 'PHPMailer/PHPMailerAutoload.php';
  52.  
  53. $email = new PHPMailer;
  54.  
  55. $email->isSMTP();
  56. $email->Host = "".CMS::$Config['cms.smtphost']."";
  57. $email->SMTPAuth = true;
  58. $email->Username = "".CMS::$Config['cms.smtpusername']."";
  59. $email->Password = "".CMS::$Config['cms.smtppassword']."";
  60. $email->SMTPSecure = 'tls';
  61. $email->Port = 587;
  62.  
  63. $email->setFrom("".CMS::$Config['cms.afzender']."", "".CMS::$Config['cms.hotelname']." Hotel");
  64. $email->addAddress($Mail, $Info['username']);
  65. $email->isHTML(true);
  66.  
  67. $email->Subject = 'Aanvraag wachtwoord vergeten';
  68. $email->Body = "<table width='98%' border='0' cellspacing='0' cellpadding='0'>
  69. <tbody><tr><td align='center'><table border='0' cellpadding='0' cellspacing='0' width='595'>
  70. <tbody><tr><td align='left' style='border-bottom:1px solid #aaaaaa;' height='70' valign='middle'>
  71. <table border='0' cellpadding='0' cellspacing='0'><tbody><tr>
  72. <td><img src='".CMS::$Config['cms.url']."/Simple/Public/img/globaal/logo.gif'></td></tr></tbody></table></td>
  73. </tr><tr><td align='left' style='border-bottom:1px dashed #aaaaaa;' valign='middle'><table style='padding:0 0 10px 0;width:100%;' border='0' cellpadding='0' cellspacing='0'>
  74. <tbody><tr><td valign='top'><p style='font-family:Verdana,Arial,sans-serif;font-size:20px;padding-top:15px;'>
  75. Hey ".$Info['username']."!</p><p style='font-family:Verdana,Arial,sans-serif;font-size:12px;padding-bottom:5px;'>
  76. Klik <a href='".CMS::$Config['cms.url']."/wachtwoord/vergeten/".$Code."'>hier</a> om je wachtwoord aan te passen.<br><br>Heb je dit mailtje niet aangevraagd? Negeer dan dit bericht.</p></td></tr></tbody></table></td></tr><tr><td align='left' style='border-bottom:1px solid #aaaaaa;' height='100' valign='middle'>
  77. <table style='' border='0' cellpadding='0' cellspacing='0'><tbody><tr><td valign='middle'><table style='background-color:#51b708;height:50px;' height='50px;' cellpadding='0' cellspacing='0'>
  78. <tbody><tr><td style='height:100%;vertical-align:middle;border:solid 2px #000000;' valign='middle'>
  79. <p style='font-family:Verdana,Arial,sans-serif;font-weight:bold;font-size:18px;color:#ffffff;'>
  80. <a style='text-decoration:none;padding:15px 20px;color:#ffffff;' href='".CMS::$Config['cms.url']."/wachtwoord/vergeten/".$Code."'>Naar ".CMS::$Config['cms.hotelname']." Hotel</p></a></td></tr></tbody></table></td></tr></tbody></table></td></tr>";
  81.  
  82. if(!$email->send()) {
  83. $Errors = "<div id='toast-container'><div class='toast red'>Email kan niet worden verzonden wegens een fout!</div></div>";
  84. } else {
  85. $Tijd = time() + 3600; // 1 uur
  86. CMS::$MySql->Query("INSERT INTO wachtwoord_vergeten (userid, code, expire) VALUES(".$Info['id'].", '".$Code."', ".$Tijd.") ON DUPLICATE KEY UPDATE code='".$Code."', expire=".$Tijd."");
  87. $Errors = "<div id='toast-container'><div class='toast green'>Er is een email verzonden naar ".$Mail." !</div></div>";
  88. }
  89. }
  90. }
  91. }
  92.  
  93. $this->Write('<div class="col s12 m12 l6">');
  94. $this->LoadTpl('Wachtwoord-Vergeten');
  95. $this->Write('</div>');
  96.  
  97. $this->Write('<div class="col s12 m12 l6">');
  98. $this->LoadTpl('Naam-Vergeten');
  99. $this->Write('</div>');
  100.  
  101. }
  102. else
  103. {
  104. $Code = trim(CMS::$Router->Request->SubUrls[0], '/');
  105. $Codes = CMS::$MySql->Query("SELECT userid, code, expire, tries FROM wachtwoord_vergeten where code='".$Code."'");
  106. $Check = $Codes->fetch_assoc();
  107.  
  108. if ($Check == false)
  109. {
  110. Site::Stop('/wachtwoord/vergeten');
  111. }
  112. else if ($Check['expire'] < time())
  113. {
  114. $this->LoadTpl('Code-Verlopen');
  115. }
  116. else
  117. {
  118. $this->DefineArray('Data', $Check);
  119. if (isset($_POST['email']) && isset($_POST['newpass']) && isset($_POST['newpass2']))
  120. {
  121. $Mail = $_POST['email'];
  122. $Pass = $_POST['newpass'];
  123. $Pass2 = $_POST['newpass2'];
  124.  
  125. $Data = CMS::$MySql->Query("SELECT mail FROM users WHERE id='".$Check['userid']."'");
  126. $Info = $Data->fetch_assoc();
  127.  
  128. if ($Info['mail'] != $Mail)
  129. {
  130. if ($Check['tries'] > 1)
  131. {
  132. CMS::$MySql->Query("DELETE FROM wachtwoord_vergeten WHERE code='".$Code."'");
  133. $_SESSION['error'] = 'Je hebt je email tevaak fout ingevuld! <br> De link is verwijderd.';
  134. Site::Stop('/index');
  135. return;
  136. }
  137. $Errors = '<div id="toast-container"><div class="toast red">Email komt niet overeen met die van de speler!</div></div>';
  138. CMS::$MySql->Query("UPDATE wachtwoord_vergeten SET tries = tries+1 WHERE code='".$Code."'");
  139. }
  140. else if ($Pass !== false && $Pass != $Pass2)
  141. {
  142. $Errors = '<div id="toast-container"><div class="toast red">Je wachtwoord is niet hetzelfde</div></div>';
  143. }
  144. else if (!Users::ValidPass($Pass))
  145. {
  146. $Errors = '<div id="toast-container"><div class="toast red">Je wachtwoord moet tussen de 6 en 32 karakters zitten</div></div>';
  147. }
  148. else
  149. {
  150. $Hash = Site::Hash($Pass);
  151. CMS::$MySql->Query("UPDATE users SET password='".$Hash."' WHERE id='".$Check['userid']."'");
  152. CMS::$MySql->Query("DELETE FROM wachtwoord_vergeten WHERE code='".$Code."'");
  153. $_SESSION['melding'] = 'Je wachtwoord is succesvol aangepast!';
  154. Site::Stop('/index');
  155. }
  156. }
  157. $this->Write('<div class="col s12 m12 l7">');
  158. $this->LoadTpl('Wachtwoord-Aanpassen');
  159. $this->Write('</div>');
  160. }
  161. }
  162.  
  163. $this->Define('Errors', $Errors);
  164.  
  165. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement