Comunidad de diseño web y desarrollo en internet online

login/recuperar clave

Citar            
MensajeEscrito el 15 Oct 2011 07:06 pm
al login me falta agregar la opcion de
*recuperar usuario y clave para los que olvidaron (forgot user/pass)
*formulario de contacto (contact us)

Por angelo27

Claber

136 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Oct 2011 05:32 pm
Correcto... Puedes mostrar el código de la aplicación que estás desarrollando?

Por MmO

1078 de clabLevel

4 tutoriales

Genero:Masculino  

Marketing interactivo y gestión de proyecto de software.

safari
Citar            
MensajeEscrito el 16 Oct 2011 07:09 pm
if (isset($_POST["btn_ingresar"]) == "Entrar"){

//Se define un usuario cero
$usuario=0;
$user = htmlentities($_POST["user"], ENT_QUOTES);
$pass = htmlentities($_POST["pass"], ENT_QUOTES);

// Busca como usuario normal
$sql="SELECT * FROM usuario WHERE usuario = '$user'";

$resultado_u=mysql_query($sql, $link);

if (mysql_num_rows($resultado_u)!=0){
$usuario=1;
}

if ($usuario==0){
$mensaje="El nombre de usuario no es válido";
}elseif ($usuario==1){
$sql="SELECT...
WHERE usuario = '$user'
AND password = '$pass'
AND X.estado = 1
AND Y.estado = 1";
$resultado=mysql_query($sql, $link);

if (mysql_num_rows($resultado)!=0){
// Acceso autorizado, se deriva a página según tipo de usuario.
$db_user = mysql_fetch_array($resultado);
session_start();
// Crea sesión del usuario autentificado.
$_SESSION['1'] = $db_user[c1];
$_SESSION['2'] = $db_user[c2];
$_SESSION['3'] = $db_user[c3];
$_SESSION['4'] = $db_user[c4];
$_SESSION['5'] = $db_user[c5];
$_SESSION['6'] = $db_user[c6];
$_SESSION['7'] = $db_user[c7]." ".$db_user[apellidos];
log_usuario($sql, 'EXITO - Ingreso al Sitio');
echo "<html><head><META HTTP-EQUIV='REFRESH' CONTENT='1;URL=archivo.php'></head></html>"; exit;
}else{
$mensaje="Contraseña de usuario inválida";
}
}
}
?>

Por angelo27

Claber

136 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Oct 2011 07:56 pm
Perfecto, para hacer que le envíe el correo colócale un extensión el $mensaje del final que tenga un link hacia la página de recuperación de contraseña...

Ahí colocar un <input> de texto donde el usuario coloque su correo, a partir de esto que verificas que exista un usuario con ese correo

Código PHP :


if(isset($_POST['mail'])
    {
         $mail =  funcionparalimpiarstring_o_minimohtmlentities($_POST['mail']);
    }
else 
    {
        die("No mail, no nuevo password.. :( ") 
     }

$query = "SELECT * FROM usuario WHERE mail='$mail' ";
$result = mysql_query($query);

if(mysql_num_rows($result)) 
   {
// generamos el nuevo password 
       $randompass=md5(uniqid(rand()));  
//substraemos un cacho del Hexadecimal generado por el md5 y lo usamos como pass, y ese también usamos para enviar el para enviar el correo
       $passparaemail=substr($randompass, 0, 8); 
// generamos el nuevo password para la base de datos.
       $nuevopass = md5($passparaemail);
//mandamos el nuevo password a la base de datos...
       mysql_query("UPDATE FROM usuario SET pass='$nuevopass' WHERE mail='$mail' ") or die ("No se estableció la conexión" + mysql_error());
// mandamos el correo al usuario
      $asunto = "Tu nuevo pass..."; 
      $mensaje = "Tu nuevo password es: $passparaemail<br /><br />
Este password fue generado automáticamente, si gusta puede crear uno nuevo."; 
//mandamos el correo...

        if(!mail($mail, $asunto, $mensaje,  "FROM: $tu <$tucorreo>"))
              { 
                    die ("No se pudo enviar... falló esa onda,, blah blah contacta con el admin"); 
              }
        else
               { 
                echo  "Tu nuevo password ha sido enviado a tu correo, don't worry be happy" ;
             }


listo! con eso queda, adáptalo bien porque está hecho a rápido, verifica los queries a mySQL porque soy medio disléxico y tiendo a omitir letras.

Veo tu código y creo que le hace falta un poco más de seguridad, investiga al respecto...

Por MmO

1078 de clabLevel

4 tutoriales

Genero:Masculino  

Marketing interactivo y gestión de proyecto de software.

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.