Guest User

Untitled

a guest
Aug 28th, 2018
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. example.com/login-system/reset.php?email=ponercualquieremail%key=generarcódigoaleatorio
  2.  
  3. http://example.com/login-system/reset.php?email=example%40gmail.com&key=523db8c57a3d17d0860fa705c4c24ec62efc0c68f2f1443e39938361424099f1
  4.  
  5. http://example.com/login-system/verify.php?email=example%40gmail.com&key=523db8c57a3d17d0860fa705c4c24ec62efc0c68f2f1443e39938361424099f1
  6.  
  7. +----------+-----------+--------+----------+------------+--------+
  8. | id_user | username | email | password | email_code | active |
  9. +----------+-----------+--------------------------------+--------+
  10. | 1 | karla | karla@ | $2y$10...| 23db8c5... | 1 |
  11. +-------------+-------------+--------------+------------+---------
  12.  
  13. session_start();
  14. include "require.ini.php";
  15.  
  16. if (isset($_POST['formsubmitted'])) {
  17. $msg = array();
  18.  
  19. if (empty($_POST['username'])) {
  20. $msg[] = 'Por favor, ingrese un nombre de usuario';
  21. } else {
  22. $username = $_POST['username'];
  23. }
  24.  
  25. if (empty($_POST['email'])) {
  26. $msg[] = 'Por favor, ingrese su correo electrónico';
  27. } else {
  28. if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $_POST['email'])) {
  29. $email = $_POST['email'];
  30. } else {
  31. $msg[] = 'Tu dirección de correo electrónico no es válida';
  32. }
  33. }
  34.  
  35. if (strlen($_POST['password']) <6){
  36. $msg[] = 'Su contraseña debe tener al menos 6 caracteres';
  37. }
  38. if ($_POST['password'] !== $_POST['password_again']){
  39. $msg[] = 'Su contraseña no coincide';
  40. } else {
  41. $password = $_POST['password'];
  42. }
  43.  
  44. if (empty($_POST['firstname'])) {
  45. $msg[] = 'Por favor, ingrese su nombre';
  46. } else {
  47. $first_name = $_POST['firstname'];
  48. }
  49.  
  50. if (empty($msg)) {
  51. $stmt = $con->prepare("SELECT * FROM users WHERE email=? OR username=?");
  52. $stmt->bind_param("ss",$email,$username);
  53. $stmt->execute();
  54. $stmt->store_result();
  55.  
  56. if ($stmt->num_rows>0) {
  57. echo "¡El usuario con este correo electrónico ya existe!";
  58. } else {
  59.  
  60. $hash_password = password_hash($password, CRYPT_BLOWFISH);
  61. $key = bin2hex(openssl_random_pseudo_bytes(32));
  62. //$key_two = bin2hex(random_bytes(32)); // Disponible apartir de PHP V.7
  63. $active_default = 0;
  64. $stmtA = $con->prepare("INSERT INTO users (username, email, password, first_name, email_code, active) VALUES (?, ?, ?, ?, ?, ?)");
  65. $stmtA->bind_param("sssssi", $username,$email,$hash_password,$first_name,$key,$active_default);
  66.  
  67. if($stmtA->execute()){
  68. echo 'El enlace de confirmación ha sido enviado por correo electrónico. ¡Por favor, haga clic en el enlace del mensaje para activar su cuenta!';
  69.  
  70. $to = $email;
  71. $subject = "Por favor, verifique su cuenta.";
  72. $message_body = 'Hola '.$first_name.',
  73. ¡Gracias por registrarte!
  74.  
  75. Estas aún solo paso de ser parte de nuestra comunidad.
  76.  
  77. Por favor, haga clic en este enlace para activar su cuenta:
  78.  
  79. http://es.futbolworldcup.com/login-system/verify.php?email='.urlencode($email).'&key='.$key.'';
  80. mail($to, $subject, $message_body, 'From: example@example.com');
  81. //header("location: index.php");
  82. //exit;
  83. } else {
  84. echo "Ha ocurrido un error internamente, por favor, vuelva intertar enviar su solicitud más tarde";
  85. }
  86. }
  87. } else {
  88. foreach ($msg as $key => $values) {
  89. echo ' <div>'.$values.'</div>';
  90. }
  91. }
  92. }
  93.  
  94. <?php
  95. session_start();
  96. include "require.php";
  97.  
  98. if (isset($_GET['email']) && preg_match('/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/', $_GET['email'])) {
  99. $email = $_GET['email'];
  100. }
  101. if (isset($_GET['key']) && (strlen($_GET['key']) == 64)) {
  102. $key = $_GET['key'];
  103. }
  104.  
  105. if (isset($email) && isset($key)) {
  106. //$email = $con->escape_string($_GET['email']);
  107. //$key = $con->escape_string($_GET['key']);
  108. $active_defaul = 1;
  109.  
  110. $stmt = $con->prepare("SELECT * FROM users WHERE email=? AND email_code=? AND active=?");
  111. $stmt->bind_param("ssi",$email,$key,$active_defaul);
  112. $stmt->execute();
  113. $stmt->store_result();
  114. //if ($result->num_rows == 0 )
  115. if ($stmt->num_rows==0) {
  116. //if ($stmt->num_rows>0) {
  117. echo "¡Ingresó una URL inválida para restablecer la contraseña!";
  118. } else {
  119. echo '
  120. <!DOCTYPE html>
  121. <html>
  122. <head>
  123. <title></title>
  124. </head>
  125. <body>
  126. <form action="reset_password.php" method="post">
  127. <label>New Password</label>
  128. <input type="password" name="password" autocomplete="off"/>
  129. <label>Confirm New Password</label>
  130. <input type="password" name="password_again" autocomplete="off"/>
  131. <input type="hidden" name="email" value="'.$email.'">
  132. <input type="submit" name="form_reset" value="Guardar contraseña" />
  133. </form>
  134. </body>
  135. </html>';
  136. }
  137.  
  138. } else {
  139. echo "¡Acceso denegado!";
  140. }
  141. ?>
  142.  
  143. session_start();
  144. include "require.php";
  145.  
  146. if (isset($_POST['form_reset'])) {
  147. $email = $_POST['email'];
  148. $password = $_POST['password'];
  149.  
  150. $hash_password = password_hash($password, CRYPT_BLOWFISH);
  151.  
  152. $stmt = $con->prepare("UPDATE users SET password= ? WHERE email=? OR username=?");
  153. $stmt->bind_param("sss", $hash_password,$email,$email);
  154. if($stmt->execute()){
  155. header("location: correcto.php");
  156. } else {
  157. header("location: error.php");
  158. }
  159. }
Add Comment
Please, Sign In to add comment