Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2008, 17:31
Xematick
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 6 meses
Puntos: 1
Formulario recuperar pass. ¿que falla?

Buenas a todos. Tengo un pequeño formulario para recuperar un pass olvidado. Está hecho en php de forma que toma una variable(en este caso el correo del usuario) y la comprueba en una base de datos para más tarde enviar a un correo con el resto de datos. Es bastante sencilla, pero aun así no consigo ver el fallo. Pongo los códigos para ver quien es el erudito que descubre el fallo. Ahí van:

El formulario llamado recuperacion.php

Código HTML:
<html> 
<head> 
    <title>Recuperar contraseña</title> 
    <style type="text/css">  
    </style> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head> 
<body> 
<h1 class="Estilo8">Recuperar contrase&ntilde;a </h1>
<form action="recuperandopass.php" method="POST"> 
<table align="left" width="225" cellspacing="2" cellpadding="2" border="0"> 
<tr> 
    <td colspan="2" align="center"  
    <?if ($_GET["errorusuario"]=="si"){?> 
        bgcolor=red><p><span style="color:ffffff"><b>Datos incorrectos</b></span></p> 
      <p><span class="Estilo1">El dato es incorrecto .</span><?}else{?> 
      bgcolor=#cccccc>Introduce tu clave de acceso</p> 
      <p><span class="Estilo1"> Si no est&aacute; registado vaya a <span class="Estilo10">Registrarse</span></span></p> <?}?></td> 
</tr> 
<tr> 
    <td width="61" align="right"><div align="left"><span class="Estilo9">Mail:</span></div></td> 
    <td width="150"><div align="right">
      <input type="Text" name="mail" size="25" maxlength="50">
    </div></td> 
</tr> 
<tr> 
    <td colspan="2" align="center">
        <div align="center">
          <input type="Submit" value="COMPROBAR">
        </div></td></tr> 
<tr> 
  <td colspan="2" align="center"><div align="center"><span class="Estilo3"><a href="registro.php">Registrarse</a></span></div></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
el archivo que procesa la variable del formulario y hace la consulta es
recuperandopass.php

Código PHP:
<?php 
// Este fichero recibe y procesa los datos del formulario de recuperacion de contraseña 
// en el que se escriben usuario y email 
// recogemos las variables enviadas por el formulario  
$mail=$_POST['mail_usuario']; 
//conecto con la base de datos  
$conn mysql_connect("localhost","++++","++++");  
//selecciono la BBDD  
mysql_select_db("aerotechdb",$conn); 
// Consultamos si existe $nombre_usuario + $mail_usuario 
$res=mysql_query("SELECT mail_usuario FROM mi_db WHERE mail_usuario='$mail'"); 
if (
mysql_num_rows($res)==0) { 
// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion 
header("Location: recuperacion.php?errorusuario=si"); 

else { 
// Si existe, buscamos en la bd 
$res=mysql_query("SELECT mail_usuario FROM mi_db WHERE mail_usuario='$mail'"); 
$row=mysql_fetch_assoc($res); 
$contrasena=$row['clave_usuario'];
header ("Location: .../graciasrecuperacion.php");

// enviamos el email de recuperacion 
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"
mail($mail"Recuperación de password""Sus datos en +++ son Nombre: $usuario, Contraseña: $contrasena. Muchas gracias por la consulta."$headers); 

?>