Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2009, 18:43
disweb
 
Fecha de Ingreso: octubre-2008
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 12
Script de "Forgot Password" me da un error

Hola amigos, tengo un script para enviar la contraseña de un usuario por mail, la lee de MySQL y luego la envía.

Ejecuté el script en localhost y me funcionó, me envía el dato que necesito. El problema es que al querer adaptarlo a mi sitio web ya no me funciona. No sé que estaré haciendo mal.

Ojalá puedan ayudarme, por favor, les agradezco su atención y valiosa ayuda.

Los scripts originales son:

Formulario:

<div align="center">Si ha olvidado su contrase&ntilde;a:</div>
<table width="80%" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td width="50%" align="right" valign="top"><strong>Ingrese su email : </strong></td>
<td width="50%" align="left" valign="top"><form name="form1" method="post" action="enviar_pass.php">
<input name="email_to" type="text" id="mail_to" size="25">
<input type="submit" name="Submit" value="Enviar">
</form>
</td>
</tr>
</table>

Archivo enviar_pass.php

<?

// Receiving variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$email = addslashes($_POST['email_to']);

include("conn.php");

// table name
$tbl_name=members;

// retrieve password from table where e-mail = $email_to([email protected])
$sql="SELECT password FROM $tbl_name WHERE email='$email'";
$result=mysql_query($sql);

// if found this e-mail address, row must be 1 row
// keep value in variable name "$count"
$count=mysql_num_rows($result);

// compare if $count =1 row
if($count==1){

$rows=mysql_fetch_array($result);

// keep password in $your_password
$your_password=$rows['password'];

// ---------------- SEND MAIL FORM ----------------

//Sending auto respond Email to visitor
$pfw_header = "From: [email protected]\n"
. "Reply-To: [email protected]\n";
$pfw_subject = "Su contraseña";
$pfw_email_to = "$email";
$pfw_message = "Su contraseña es \n $your_password";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

echo("<br /><br /><p align='center'><font face='Verdana' size='4' color='#008000'>Se ha enviado su password a <br /> $email</font></p>");

}

// else if $count not equal 1
else {
echo "No fue encontrada su direccion de E-mail en nuestra Base de Datos<br />
<a href='javascript:history.back()'> Regresar</a>";
}
?>

Ahora bien este es el script que trato de colocar en mi sitio, con los valores necesarios para mi base de datos:

El formulario.html es igual al anterior

<!--Inicia Formulario para contraseña olvidada-->
<div align="center">Si has olvidado tu contrase&ntilde;a:<br /><br />

</div>
<table width="80%" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td width="50%" align="right" valign="top"><strong>Ingres&aacute; tu email : </strong></td>
<td width="50%" align="left" valign="top"><form name="form1" method="post" action="enviar_pass.php">
<input name="email_to" type="text" id="mail_to" size="25">
<input type="submit" name="Submit" value="Enviar">
</form>
</td>
</tr>
</table>
<!--Termina Formulario para contraseña olvidada-->



Este es el archivo enviar_pass.php

<!--Inicia Enviar contraseña olvidada-->
<?

// Receiving variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$email = addslashes($_POST['email_to']);

require_once('Connections/conn1.php');

// Recuperando la contraseña
$sql="SELECT contrase FROM amigos WHERE email='$email'";
$result=mysql_query($sql);

// if found this e-mail address, row must be 1 row
// keep value in variable name "$count"
$count = mysql_num_rows($result);

// compare if $count =1 row
if($count==1){

$rows=mysql_fetch_array($result);

// keep password in $your_password
$your_password=$rows['contrase'];

// ---------------- SEND MAIL FORM ----------------

//Sending auto respond Email to visitor
$pfw_header = "From: [email protected]\n"
. "Reply-To: [email protected]\n";
$pfw_subject = "Su contraseña";
$pfw_email_to = "$email";
$pfw_message = "Su contraseña es \n $your_password";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

echo("<br /><br /><p align='center'><font face='Verdana' size='4' color='#008000'>Se ha enviado su password a <br /> $email</font></p>");

}

// else if $count not equal 1
else {
echo "No fue encontrada su direccion de E-mail en nuestra Base de Datos<br />
<a href='javascript:history.back()'> Regresar</a>";
}


?>
<!--Termina Enviar contraseña olvidada-->


El error que me sale es:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\misitio_v2\enviar_pass.php on line 73
No fue encontrada su direccion de E-mail en nuestra Base de Datos
Regresar

Me olvidaba, la contraseña no está encriptada.

Bueno espero me ayuden. Gracias.