Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2013, 12:21
serg_prog
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 7 meses
Puntos: 1
Exclamación No funciona el "recordar contraseña"

Hola a todos. Tengo un problema con la función recordar contraseña. y es que parece que todo va bien, pero al cerrar el navegador no se queda guardada.

Alguien sabe qué es lo que pasa?. El código que he usado es:

index (formulario):
Código HTML:
<?php
include('config.php');
if(isset($_SESSION["logeado"]) == "SI"){ 
header ("Location: inicio.php");
}
?> <form name="form1" method="post" action="entrar.php"><br>
<span style="color:#000; font-size:12px;">Email</span><br>
   <input name="email" type="email" id="email"><br><br>
<span style="color:#000; font-size:12px;">Contrase&ntilde;a</span><br>
    <input name="password" type="password" id="password"><br><br>
    <input type="checkbox" name="recordar" id="recordar" value="1">
<span style="color:#000; font-size:12px;">Recordar</span><br />
<br>
<span style="font-size: 12px; color: #000"><a href="recuperar.php">Recuperar contrase&ntilde;a</a> | <a href="registrarse.php">Registrarse</a><br />
</span><br />
     <input type="submit" name="Submit" value="Entrar">
     <br />
</form> 
El archivo config.php que se menciona es:
Código PHP:
<?php
$dbhost
='localhost'// Servidor
$dbusername='root'// Nombre de usuario
$dbuserpass='usuario1'// Contraseña
$dbname='users'// Nombre de la base de datos
session_start();

// Comprobamos si hay cookie, si está bien y le asignamos una sesión
// Esto quiere decir que si recordamos la contraseña nos auto loguee.
if(isset($_COOKIE['id_extreme'])) 
{
    
$cookie htmlentities($_COOKIE['id_extreme']);
    
$cookie explode("%",$cookie);
    
$user $cookie[0];
    
$id $cookie[1];
    
$ip $cookie[2];
    if (isset(
$HTTP_X_FORWARDED_FOR) == "")
    {
        
$ip2 getenv('REMOTE_ADDR');
    }
    else
    {
        
$ip2 getenv('HTTP_X_FORWARDED_FOR');
    }
    if(
$ip == $ip2)
    {
        
$link mysql_connect($dbhost$dbusername$dbuserpass);
        
mysql_select_db($dbname,$link) or die('No se puede seleccionar la base de datos');
        
$query mysql_query("SELECT * FROM usuarios WHERE id_extreme='".$id."' and email='".isset($_REQUEST['email'])."'") or die(mysql_error());
           
$row mysql_fetch_array($query);
           if(isset(
$row['email'])) 
        {
        
$_SESSION["s_email"] = $row['email'];
        
$_SESSION["logeado"] = "SI";
           }
        
mysql_close($link);
    }
}
?>
Al darle al botón entrar usa este código:
Código PHP:
<?php
// Configura los datos de tu cuenta
include('config.php');

// Conectar a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');

if (
$_POST['email']) {
//Comprobacion del envio del email y password
$email=htmlentities($_POST['email']);
$password=md5($_POST['password']);
if (
$password==NULL) {
echo 
"No a introducido una contrasenia";
exit();
}else{
$query mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"No a introducido una contrasenia correcta";
exit();
}else{
$query mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$row mysql_fetch_array($query);
$email2 $row['email'];
$_SESSION["s_email"] = $row['email'];
$_SESSION["logeado"] = "SI";

/* Si aceptamos recordar los datos */
if($_POST['recordar']=="1"){

    if (isset(
$HTTP_X_FORWARDED_FOR) == "")
    {
        
$ip getenv('REMOTE_ADDR');
    }
    else
    {
        
$ip getenv('HTTP_X_FORWARDED_FOR');
    }
    
$id_extreme md5(uniqid(rand(), true));
    
$id_extreme2 $email2."%".$id_extreme."%".$ip;
    
setcookie($id_extreme$id_extreme2time()+3600*24*365,'/');
    
$query mysql_query("UPDATE usuarios SET id_extreme='".$id_extreme."' WHERE email='".$email2."'") or die(mysql_error());
}

header ("Location: inicio.php");
}
}
}
?>
Y eso creo que es todo. El caso es que no funciona, pero me aparece la cookie creada en la columna id_extreme.

Muchas gracias por adelantado.