Foros del Web » Programando para Internet » PHP »

Dudas con php

Estas en el tema de Dudas con php en el foro de PHP en Foros del Web. Bueno, pues sigo con mis dudas xD. La primera es si puedo enviar un email aun usuario, desde la web. Me refiero para recuperar la ...
  #1 (permalink)  
Antiguo 15/08/2010, 02:58
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Dudas con php

Bueno, pues sigo con mis dudas xD.


La primera es si puedo enviar un email aun usuario, desde la web.

Me refiero para recuperar la contraseña, meta el email con el que se registro, consulte a la base de datos, recoga el nombre de usuario y password y se la envie al email.



Otra duda es como puedo devolver la pass en md5 a pass normal


Espero ansioso sus respuestas
  #2 (permalink)  
Antiguo 15/08/2010, 04:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Dudas con php

Puedes enviar correos electronicos a traves de la funcion mail().
No puedes desencriptar una contraseña MD5, si lo que quieres es comparar la contraseña introducida (en el login por ejemplo) con la de la DB, lo que tienes que hacer es encriptar la introducida y entonces comparar las dos encriptadas en MD5.
  #3 (permalink)  
Antiguo 15/08/2010, 04:40
 
Fecha de Ingreso: diciembre-2009
Ubicación: España
Mensajes: 380
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Dudas con php

en el tema aportes y sistemas PHP está este:
Sistema para recuperar la contraseña de un usuario olvidadizo
  #4 (permalink)  
Antiguo 15/08/2010, 05:07
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

Cita:
Iniciado por albert_23 Ver Mensaje
Puedes enviar correos electronicos a traves de la funcion [URL="http://es.php.net/manual/en/function.mail.php"]mail()[/URL].
No puedes desencriptar una contraseña MD5, si lo que quieres es comparar la contraseña introducida (en el login por ejemplo) con la de la DB, lo que tienes que hacer es encriptar la introducida y entonces comparar las dos encriptadas en MD5.
lo k kiero es k al cogerla de la bd (como esta encriptada) pasarla a una variable descencriptandola para mandarla al email

Cita:
Iniciado por DavidBL Ver Mensaje
en el tema aportes y sistemas PHP está este:
[URL="http://www.forosdelweb.com/f18/aporte-sistema-para-recuperar-contrasena-usuario-olvidadizo-569102/"]Sistema para recuperar la contraseña de un usuario olvidadizo[/URL]
ya lo habia visto, pero no me convenze, por k kualkier usuario k sepa el emai lde otro, puede conseguir su cuenta.


pd; gracias por las respuestas
  #5 (permalink)  
Antiguo 15/08/2010, 06:07
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Dudas con php

Cita:
Iniciado por berto1989 Ver Mensaje
lo k kiero es k al cogerla de la bd (como esta encriptada) pasarla a una variable descencriptandola para mandarla al email
Bueno, "teóricamente" si encriptas con MD5 no deberías poder desencriptar, pero es pura lógica que si se puede hacer una cosa también su inversa.
¿Qué como? jajaja esa es otra historia. Mucha fuerza bruta a veces, y no siempre fiable.

Algo así:
Escribe en: http://www.md5decrypter.com/
Lo siguiente: 4d186321c1a7f0f354b297e8914ab240
Resultado: hola.

Yo veo soluciones sencillas en cuanto a enviar su contraseña por mail.
Guarda la misma contraseña en dos campos diferentes.

pass1-->Con md5 para validar su acceso.
pass2-->Con otro sistema de encriptación que puedas invertir más fácil. (o dejas la orginal)

Sí, es tán simple mi propuesta que es tonta, pero no hace falta liarse tanto. No hay encriptado imposible, sólo lento de resolver.

Cita:
Iniciado por berto1989 Ver Mensaje
ya lo habia visto, pero no me convenze, por k kualkier usuario k sepa el emai lde otro, puede conseguir su cuenta.
No entiendo esto último.
Si alguien sabe el correo y la contraseña del correo donde envías el email, eso no es un fallo de seguridad de la web, sino del usuario del mismo. ¿O és culpable un banco si vas dando a todos tus números de cuenta y contraseña?
Además, si dudas de la seguridad al enviar ese dato por correo ¿Entonces por qué quieres usar este método?

A lo mejor podrías exagerar la seguridad y...... enviar un correo con un link de autentificación que llevase de nuevo a la web y pidiera algún dato personal o contraseña para que pudiera obtenerla nuevamente jajajaja.

Me mareé.

Un saludo.
  #6 (permalink)  
Antiguo 15/08/2010, 06:16
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Dudas con php

Realmente las contraseñas en MD5 no se pueden recuperar. Fijaos en muchos sitios y scripts lo que hacen...
Cuando olvidas tu contraseña te pide tu nick y email de usuario para enviarte una nueva contraseña.
Es imposible que un sistema en MD5 te envie la constraseña tal cual la tenías...

¿Qué se puede descifrar un MD5?
Nose yo eh!. Imagina una contraseña de 15 caracteres los años que tardarías en poder descifrarla...

Por tanto, lo que recomiendo y haría yo, sería que cuando un usuario olvida su contraseña, pedirle su nick y email para enviarle automaticamente una contraseña aleatoria y luego recomendarle que la cambie cuando acceda a su panel de usuario.



Cita:
Iniciado por berto1989
ya lo habia visto, pero no me convenze, por k kualkier usuario k sepa el emai lde otro, puede conseguir su cuenta.
Claro, pero para eso tambien necesitaria saber la contraseña de ese email. Y si sabe la contraseña para acceder a ese email y ver sus correos eso ya no es problema ni fallo tuyo.
Como dijerón arriba, es problema del usuario.

Saludos,
  #7 (permalink)  
Antiguo 15/08/2010, 06:27
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Dudas con php

Segun tengo entendido estas paginas web que "desencriptan" md5 son simples bases de datos strings - md5 que se nutren de lo que introducen los mismos usuarios para encriptar o (no estoy seguro pero seria tambien lo mas logico) generan aleatoriamente mediante scripts. Con esto quiero decir que si pones 4d186321c1a7f0f354b297e8914ab240 en esa pagina y te devuelve "hola" no quiere decir que haya desencriptado ese hash, si no que simplemente por alguna razon tiene la relacion hola - 4d186321c1a7f0f354b297e8914ab240 en la base de datos y es lo que te devuelve.

Si generas tu mismo (sin servirte de esa pagina) un md5 de por ejemplo asf3raf33 y lo intentas desencriptar juraria que no es capaz de devolverte nada.

Ojo, estoy hablando solo de este tipo de paginas, no se hasta que punto el sistema es vulnerable mediante otros metodos.

En cuanto al tema, no creo que la solucion de la perdida de contraseña sea enviarla por correo electronico tal y como estaba en un principio, ni tampoco guardarla en md5 y en texto plano en la db. Quiza una pregunta y una respuesta secreta seria lo suyo, o simplemente enviar una nueva generada aleatoriamente al correo electronico.
  #8 (permalink)  
Antiguo 15/08/2010, 06:32
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Dudas con php

Cita:
Iniciado por albert_23 Ver Mensaje
Segun tengo entendido estas paginas web que "desencriptan" md5 son simples bases de datos strings - md5 que se nutren de lo que introducen los mismos usuarios para encriptar o (no estoy seguro pero seria tambien lo mas logico) generan aleatoriamente mediante scripts. Con esto quiero decir que si pones 4d186321c1a7f0f354b297e8914ab240 en esa pagina y te devuelve "hola" no quiere decir que haya desencriptado ese hash, si no que simplemente por alguna razon tiene la relacion hola - 4d186321c1a7f0f354b297e8914ab240 en la base de datos y es lo que te devuelve.

Correcto.
  #9 (permalink)  
Antiguo 15/08/2010, 07:23
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Dudas con php

Cita:
Segun tengo entendido estas paginas web que "desencriptan" md5 son simples bases de datos strings - md5 que se nutren de lo que introducen los mismos usuarios para encriptar o (no estoy seguro pero seria tambien lo mas logico) generan aleatoriamente mediante scripts. Con esto quiero decir que si pones 4d186321c1a7f0f354b297e8914ab240 en esa pagina y te devuelve "hola" no quiere decir que haya desencriptado ese hash, si no que simplemente por alguna razon tiene la relacion hola - 4d186321c1a7f0f354b297e8914ab240 en la base de datos y es lo que te devuelve.
Exáctamente, por eso si quieres encriptar desencriptar no uses md5. Aún con los conocimientos para desencriptar o la manera... llegarían a salir canas probando (o mejor dicho esperando).
Sólo dije que no por ello es imposible jejeje.
La web que puse era un comentario para explicarlo. Está claro que la web no va con Hash teniendo en cuenta la velocidad a la que devuelve el resultado
  #10 (permalink)  
Antiguo 15/08/2010, 09:48
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Dudas con php

Como ya te han dicho, no se puede "desencriptar", pero si puedes hacer uso del brute force que algunas aplicaciones usan para "desencriptar", que mas bien es estar horas y horas intentando todo tipo de combinaciones hasta dar con la cadena original. Lo que puedes hacer, es agregar un campo "pass_recover", donde introducirías una cadena cualquiera que serviría como password temporal hasta que el usuario la cambie.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #11 (permalink)  
Antiguo 15/08/2010, 16:45
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

bueno al final me decante por dejar una variable con la pass desencritpada y meterla en la bd, ahora el problema es el email k no me lo envia, tengo esto puesto


Código PHP:
@mysql_query("SELECT 'usuario', 'password2', 'email' FROM 'usuarios' WHERE email = '$email'");
$getEmail mysql_query($query);
$row mysql_fetch_assoc($getEmail);


//Componemos el mensaje

$email1$_POST['email'];

$server_name "nolopongo.com";

# Indicamos el nombre de la persona que va a recibir el  mensaje

$person_name $row['usuario'];
$person_pass $row['password2'];

# Indicamos la dirección de correo de esa persona
$person_email =$row['email'];

# Las tres líneas que vienen a continuación son necesarias
# para que la cabecera del mensaje esté en formato HTML

$header "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=iso-8859-1\n";
$header .="From: berto1989@$server_name\nX-Mailer: PHP/";

# Esto que viene es el mensaje. (Fíjate en los tags HTML)

$mensaje "<font face='verdana' size='2'>Hola    $person_name, has solicitado recuperar los datos de tu cuenta en http://berto1989.nolopongo.com, tus datos son los siguientes:<br><br>Usuario: $person_name<br><br> Password: $person_pass<br><br><br> Atentamente: Berto1989</font>";

# Función de envío del mensaje

mail("$person_email","Recuperacion datos Cuenta","$mensaje","$header");

# Para comprobar que el script ha funcionado, podemos    poner lo siguiente:

echo "Mensaje enviado."
k es lo k tengo mal para que no me lo envie?

Última edición por berto1989; 16/08/2010 a las 03:43
  #12 (permalink)  
Antiguo 16/08/2010, 03:21
 
Fecha de Ingreso: diciembre-2009
Ubicación: España
Mensajes: 380
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Dudas con php

falta la variable $email
  #13 (permalink)  
Antiguo 16/08/2010, 03:43
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

ya lo e puesto pero sigue sin ir
  #14 (permalink)  
Antiguo 16/08/2010, 14:58
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

A las variables debes quitarle las ""

mail($person_email,"Recuperacion datos Cuenta",$mensaje,$header);

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #15 (permalink)  
Antiguo 16/08/2010, 15:42
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

ya lo hice y no tira, no se k tendre mal para k no me lo envie
  #16 (permalink)  
Antiguo 16/08/2010, 15:52
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Y cual es el error? que error marca, podrías pegar el código como quedo finalmente después de los cambios?

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #17 (permalink)  
Antiguo 16/08/2010, 15:56
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

Código PHP:
@mysql_query("SELECT 'usuario', 'password2', 'email' FROM 'usuarios' WHERE email = '$email1'");
$getEmail mysql_query($query);
$row mysql_fetch_assoc($getEmail);
//Componemos el mensaje

$email1$_POST['email'];
$server_name "nolopongo.com";


$person_name $row['usuario'];
$person_pass $row['password2'];

$person_email =$row['email'];

$header "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=iso-8859-1\n";
$header .="From: berto1989@$server_name\nX-Mailer: PHP/";


$mensaje "hola";

mail($person_email,"Recuperacion datos Cuenta",$mensaje,$header);


echo 
"Mensaje enviado.";


}
}
?> 
  #18 (permalink)  
Antiguo 16/08/2010, 15:59
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Bueno para empezar amigo el query esta mal ejecutado;

Debería ser:

$query="SELECT 'usuario', 'password2', 'email' FROM 'usuarios' WHERE email = '$email1'";
$getEmail = mysql_query($query);
$row = mysql_fetch_assoc($getEmail);
//Componemos el mensaje

...
..


Saludos con eso debe funcionar
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #19 (permalink)  
Antiguo 16/08/2010, 16:00
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Y otra cosa, no deben ir las comillas y esto va alreves:

primero:


$email1= $_POST['email'];

despues:

$query="SELECT usuario, password2, email FROM usuarios WHERE email = '$email1'";
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #20 (permalink)  
Antiguo 16/08/2010, 16:10
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

Código PHP:

$email1
$_POST['email'];

$query="SELECT 'usuario', 'password2', 'email' FROM 'usuarios' WHERE email = '$email1'";
$getEmail mysql_query($query);
$row mysql_fetch_assoc($getEmail);

//Componemos el mensaje


$server_name "nolopongo.com";


$person_name $row['usuario'];
$person_pass $row['password2'];

$person_email =$row['email'];

$header "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=iso-8859-1\n";
$header .="From: berto1989@$server_name\nX-Mailer: PHP/";


$mensaje "Hola";

mail($person_email,"Recuperacion datos Cuenta",$mensaje,$header);


echo 
"Mensaje enviado.";


}
}
?> 

Aun no me tira
  #21 (permalink)  
Antiguo 16/08/2010, 16:18
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dudas con php

prueba con esto a ver si te marca error
Código PHP:
Ver original
  1. $email1= $_POST['email'];
  2. $query='SELECT usuario, password2, email FROM usuarios WHERE email = "'.$email1.'"';
  3. $getEmail = mysql_query($query) or die (mysql_error());
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #22 (permalink)  
Antiguo 16/08/2010, 16:22
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

me dice que el mail se a enviado
  #23 (permalink)  
Antiguo 16/08/2010, 16:30
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Te mencione anteriormente que debias quitar las comillas amigo

$query="SELECT usuario, password2, email FROM usuarios WHERE email = '$email1'";

Asi debe quedar el $query
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #24 (permalink)  
Antiguo 16/08/2010, 16:31
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Otra cosa mas, en donde esta la conexión a la base de datos?

Ya que generalmente funciona el query asi:


$getEmail = mysql_query($query,$conexion);
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #25 (permalink)  
Antiguo 16/08/2010, 16:34
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

Cita:
Iniciado por KrowMx Ver Mensaje
Te mencione anteriormente que debias quitar las comillas amigo

$query="SELECT usuario, password2, email FROM usuarios WHERE email = '$email1'";

Asi debe quedar el $query

e comprobado con (echo) las variables k tengo con la base de datos, y todas reciben los datos bien, con las comilas tambien fufa.


Cita:
Iniciado por KrowMx Ver Mensaje
Otra cosa mas, en donde esta la conexión a la base de datos?

Ya que generalmente funciona el query asi:


$getEmail = mysql_query($query,$conexion);

Tengo un archivo adicional con los datos de conexion y lo incluyo al principio de la pag
  #26 (permalink)  
Antiguo 16/08/2010, 16:41
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Dudas con php

Entonces al hacer

echo $person_email;

si te imprime el email?

De ser así lo que esta mal son los headers, solo para probar comenta los headers y ponle:

$headers .= "CC:[email protected]\r\n";

solo cambia tu correo lo demás dejalo igual, lo estas corriendo en un hosting verdad?, no desde tu local

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #27 (permalink)  
Antiguo 16/08/2010, 16:47
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dudas con php

Cita:
Iniciado por KrowMx Ver Mensaje
Otra cosa mas, en donde esta la conexión a la base de datos?
Ya que generalmente funciona el query asi:
$getEmail = mysql_query($query,$conexion);
en realidad el mysql_query no requiere de dos parametros obligatoriamente, si no se coloca el 2do. parametro toma la última conexion abierta, sin embargo, no esta de mas ponerlo.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #28 (permalink)  
Antiguo 16/08/2010, 16:53
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

Cita:
Iniciado por KrowMx Ver Mensaje
Entonces al hacer

echo $person_email;

si te imprime el email?

De ser así lo que esta mal son los headers, solo para probar comenta los headers y ponle:

$headers .= "CC:[email protected]\r\n";

solo cambia tu correo lo demás dejalo igual, lo estas corriendo en un hosting verdad?, no desde tu local

Saludos
si, se me imprime el email.

si, lo toy corriendo en un hosting



No me envia nada
  #29 (permalink)  
Antiguo 16/08/2010, 16:57
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dudas con php

es tuyo el mail donde se supone que lo envia???
tambien checa en la bandeja del spam.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #30 (permalink)  
Antiguo 16/08/2010, 17:03
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Dudas con php

si, es mi email.


Ya lo he mirado pero no hay absolutamente nada

Etiquetas: Ninguno
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 17:41.