Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Montar sistema para reestablecer contraseña

Estas en el tema de Montar sistema para reestablecer contraseña en el foro de PHP en Foros del Web. Buenas, os cuento. Tengo una app android, la idea es que si el usuario no recuerda la contraseña le envío un correo electrónico con un ...
  #1 (permalink)  
Antiguo 04/09/2017, 07:51
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 10 meses
Puntos: 1
Montar sistema para reestablecer contraseña

Buenas, os cuento. Tengo una app android, la idea es que si el usuario no recuerda la contraseña le envío un correo electrónico con un enlace a una página desde la que podrá reestablecer su contraseña. No se por donde empezar, como hago que esa página sea accesible solo para el usuario que recibe el correo (supongo que trabajando con algunos parámetros). Espero vuestra respuesta, gracias por ayudar.
  #2 (permalink)  
Antiguo 04/09/2017, 08:05
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: Montar sistema para reestablecer contraseña

Claro, mandando un codigo de restablecimiento unico que puede ser el mismo usuario encriptado con alguna letra o numero de mas.. ejemplo

Al momento que pida restablecer la contraseña, genera un codigo que se almacenará en la base de datos, tendras que crear un campo para esto, o una tabla nueva donde guardes el ID del usuario con el codigo de restablecimiento.. como gustes.

Código PHP:
Ver original
  1. $codigo = md5['usuario']; //esto lo guardas a la base de datos

mas o menos para generar el enlace enviado será asi:
Código PHP:
Ver original
  1. $codigo_generado = ""; //campo de la base de datos
  2. $enlace = "http://tuweb.com/reset.php?c=".$codigo_generado;

donde la variable C lleva el codigo, entonces ya tienes enviado el enlace con el codigo, cuando visite la web deberas hacer la comprobación en el inicio del documento para habilitar el acceso o no a la pagina.

Código PHP:
Ver original
  1. if(!isset($_GET['c']) && empty($_GET['c'])){
  2. echo "No existe variable, acceso denegado";
  3. exit();
  4. }
  5. //SI EXISTE ENTONCES:
  6. $codigo_guardado = ""; //traido desde la DB de nuevo
  7. if($_GET['c'] == $codigo_guardado){
  8. //muestras contenido
  9. }else{
  10. echo "No coinciden los elementos para reinicio de contraseña":
  11. exit();
  12. }

para este ejemplo ocupe el mismo usuario codificado en md5() si crees que es muy vulnerable puedes ocupar numeros, la fecha actual, etc... y haciendo nota que si ocupas md5() tu campo en la base de datos debe tener al menos 64 caracteres de espacio, ya que esto genera la funcion
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 04/09/2017, 08:09
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Montar sistema para reestablecer contraseña

Genial, gracias por la ayuda!

Etiquetas: contraseña, montar, sistema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.