Pues me estoy haciendo un lío y no consigo hacer que funcione. Tal vez esté planteándolo mal. Os comento más o menos cómo lo hago:
Primero hago una lectura de SID, si la hay, y una condición que se cumple si se acaba de hacer un log in:
Código PHP:
@$us_registrado = $_SESSION['us_registrado'];
if (isset($_POST["log_in"]) && isset($_POST["password"]))
// Se acaba de enviar el formulario de log in
{
..... // Conexión base de datos y validar usuario
// Si casilla "recordar" activada, guardar una cookie:
if (isset($_POST["recordar"])) {
setcookie('loginMiWeb',"$log_in,$password",false);
}
}
Y lo que más quiero remarcar de dentro de esta condición, porque lo que me falla es la cookie, es si en el formulario se ha activado la casilla "recordar", poner una cookie en el equipo. Lo reescribo de nuevo pero la he escrito arriba, el if interno:
Código PHP:
if (isset($_POST["recordar"])) {
setcookie('loginMiWeb',"$log_in,$password",false);
}
Código PHP:
if (isset($_SESSION['us_registrado']) && !isset($_POST["desconectar"]))
{
... // Mostrar usuario conectado y botón de log out
}
1- Si se ha hecho log out, con lo que se hace un unset para destruir la sesión.
2- Si el usuario no es válido, indicándolo en pantalla.
3- La opción por defecto: usuario desconectado o no registrado.
Si se da el else arriba remarcado en negrita, se ha de mostrar junto con una de esas tres subcondiciones el formulario de conexión/registro nuevo usuario (por tanto se mostrará si el usuario acaba de hacer log out, si no es válido, o si no ha hecho login o no está registrado).
Pues el quid de la cuestión es lo que hago después en el formulario mediante HTML+PHP para que aparezcan los valores de log_in y password en el caso de que se haya marcado la opción recordar: (pongo sólo el ejemplo del campo log_in o nombre de usuario para acortar y porque es análogo al del password)
Código PHP:
<input name="log_in" type="text" size="15" value="<?php if (isset($_COOKIE["loginMiWeb"]))
{
$partes = explode(',',$_COOKIE["loginMiWeb"]);
echo $partes[0];
}
?>"/>
Bien, alguien bien entendido en esto me puede decir si hago algo mal qué es? o la mejor forma de hacerlo? Venga chicos, una ayudita!