Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2011, 21:49
miguelcalla
(Desactivado)
 
Fecha de Ingreso: octubre-2011
Mensajes: 164
Antigüedad: 12 años, 6 meses
Puntos: 1
recuperar contraseña validando email+captcha

hola estoy tratando de validar email + captcha para recuperar_contraseña de mis usuarios olvidadisos

este es el codigo de recuperar_contraseña.php

Código PHP:
<?php
    
include("include/conn.inc.php");
    if(isset(
$_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
        
if(empty($_POST['usuario_nombre'])) {
            echo 
"<p><center>No ha ingresado el usuario.</p><p> <a href='javascript:history.back();'>Reintentar</a></center></p>";
        }else{
                
$usuario_nombre mysql_real_escape_string($_POST['usuario_nombre']);
                
$usuario_nombre trim($usuario_nombre);
                
$sql mysql_query("SELECT usuario_nombre, usuario_clave, usuario_email FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'",$link) or die(mysql_error()); 
                if(
mysql_num_rows($sql)) {
                    
$row mysql_fetch_array($sql);
                    
$num_caracteres "10"// asignamos el número de caracteres que va a tener la nueva contraseña
                    
$nueva_clave substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
                    
$usuario_nombre $row['usuario_nombre'];
                    
$usuario_clave $nueva_clave// la nueva contraseña que se enviará por correo al usuario
                    
$usuario_clave2 md5($usuario_clave); // encriptamos la nueva contraseña para guardarla en la BD
                    
$usuario_email $row['usuario_email'];
                
// actualizamos los datos (contraseña) del usuario que solicitó su contraseña
                    
mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave2."' WHERE usuario_nombre='".$usuario_nombre."'");
                
// Enviamos por email la nueva contraseña
                    
$remite_nombre "Miguelin"// Tu nombre o el de tu página
                    
$remite_email "[email protected]"// tu correo
                    
$asunto "Recuperación de contraseña"// Asunto (se puede cambiar)
                    
$mensaje "Se ha generado una nueva contraseña para el usuario <strong>".$usuario_nombre."</strong>. La nueva contraseña es: <strong>".$usuario_clave."</strong>.";
                    
$cabeceras "From: ".$remite_nombre." <".$remite_email.">\r\n";
                    
$cabeceras $cabeceras."Mime-Version: 1.0\n";
                    
$cabeceras $cabeceras."Content-Type: text/html";
                    
$enviar_email mail($usuario_email,$asunto,$mensaje,$cabeceras);
                        if(
$enviar_email) {
                            echo 
"La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario_nombre.".";
                        }else {
                            echo 
"No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
                        }
                }else{
                    echo 
"El usuario <strong>".$usuario_nombre."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
                }
            }
    }else {
?>

<center>
    <p></p>
    <form action="<?php $_SERVER['PHP_SELF']?>" method="post">
        <label>Usuario:</label><br />
        <p></p>
          <input type="text" name="usuario_nombre" /><br />
        <p></p>
          <input name="action" type="hidden" value="checkdata">
        <p></p>
          <input type="submit" name="enviar" value="Enviar" />
    </form>
</center>
<?php
    
}
?>
de esta forma envio la nuevacontraseña al email, previamente valido que el email sea el mismo quel de la basededatos.
ademas de validar el email en el formulario quiero añadir tambien un codigo captcha y preguntar por ambos para recien enviar la contraseña al email del usuario. como hago esto algun archivo parecido para estudiarlo y adaptaarlo al mio