PHP - Dejar sesion abierta despues de hacer login mediante checkbox

 
Vista:

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por Sam (185 intervenciones) el 06/04/2015 18:39:11
Hola amigos/as, miren mi intencion es en el codigo que tengo para hacer login un usuario.

Me gustaria añadirle una opcion para dejar la sesion abierta mediante un checkox.

Y le he implementado un codigo para ello y , si, me deja la sesion abierta.

Pero si luego deseo cerrar la sesion, no me la cierra , me la sigue dejando abierta.

Y no se como solucionarlo.

Bueno decir que , es la primera vez que hago esto , y yo entiendo que dejar la sesion abierta es que simplemente dando en el boton "entrar", y sin meter el usuario y contraseña , pues te permite entrar a tu perfil.

y cerrar sesion en el caso que expongo aqui, es haciendo click en el boton cerrar sesion del archivo 2, que aqui os pongo.


Miren este es el codigo que tengo:


archivo 1 llamado, formulario.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<form action = "procesador.php" Method = "post">
 
    Email:
    <input type= "text" name="email" maxlength="40" value="<?php echo $_COOKIE['email']; ?>"/>
    </br></br>
 
    Password:
    <input type = nombre de "password" = maxlength "pase" = "50"/>
    </br></br>
 
    <input type="checkbox" name="remember"
 
    value="

        <?php if(isset($_COOKIE['email']))

        {
            echo 'checked="checked"';
        }

        else

        {
            echo '';
        }
        ?>

    " >Remember Me
 
    </br></br>
 
    <input type = "submit" name = "submit" value = "Entrar"/>
 
</form>


archivo 2 llamado, procesador.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$year = time() + 31536000;
setcookie('email', $_POST['email'], $year);
 
echo "logueado!!!";
 
 
// Luego les redirigirá a la zona de miembros
//header ("Location: zona_miembros.php");
 
 
<form action="cerrar_sesion.php" Method = "post">
 
    <input type = "submit" name = "submit" value = "Cerrar_sesion"/>
 
</form>


archivo 3 llamado, cerrar_sesion.php:
1
2
3
4
5
session_start();
unset($_SESSION["email"]);
session_destroy();
 
header ("Location: formulario.php");


Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por xve (6935 intervenciones) el 06/04/2015 19:10:02
Hola Sam, según veo, no utilizas una variable de sesión, sino que utilizas una cookie en el archivo procesador.php, y luego eliminas la sesión $_SESSION["email"], la cual no vemos donde la has creado.

Puede ser que tengas ahí el lío entre sesión y cookie?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por Sam (185 intervenciones) el 06/04/2015 19:12:11
Es muy probable xve, te rogaria que me echaras un capote con esto por que no se por donde cogerlo, ya me parece un logro poder haber hecho que se mantenga la sesion con el checkbox.

Pero no se como hacer lo de que la sesion o cookie se elimine , que ya me estoy haciendo un lio.:-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por Sam (185 intervenciones) el 07/04/2015 12:06:54
xve, mira he puesto esto en el archivo llamado cerrar_sesion.php

pero me sigue sin funcionar :-(

$cookie_name = 'email';
unset($_COOKIE[$cookie_name]);
// empty value and expiration one hour before
$res = setcookie($cookie_name, '', time() - 1);

header ("Location: formulario.php");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por xve (6935 intervenciones) el 07/04/2015 15:34:24
No se muy bien como varificas que el usuario este logeado, pero segun entiendo, lo tiene que hacer con la cookie...

Prueba a dejar el archivo procesador.php tal cual esta, y en el archivo cerrar_sesion.php elimina la cookie... algo así:
1
2
3
setcookie('email', "", 1);
 
header ("Location: formulario.php");

Coméntanos si te funciona, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por Sam (185 intervenciones) el 07/04/2015 17:23:55
Mira xve, te comento la situacion actual:

El contenido que tengo es el solo el de los tres archivos. es un formulario basico, en el que se pasan los valores del formulario mediante post al procesador.php , nada mas.

No hay verificacion de logueo ahora.

En lo que me estoy centrando en ellos es en que funcione lo de dejar la sesion abierta.

y he aplicado lo que me dices y nada sigue igual .

es decir lo unico que prentendo es que haciendo click en "no cerrar sesión", ya las siguientes veces que entre

a la web, no tenga que meter el email y el password, y que solo haciendo click en el boton de entrar entre al perfil suyo.

Y que demomento como esta esto a medio hacer, el perfil del usuario es donde pone "logueado!!!" en el archivo llamado procesador.php.


ahora mismo tengo los tres archivos asi:

formulario.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<form action = "procesador.php" Method = "post">
 
     Email:
     <input type="text" name="email" maxlength="40" value="<?php echo $_COOKIE['email']; ?>"/>
     </br></br>
 
     Password:
     <input type="text" name="password" maxlength="50"/>
     </br></br>
 
     <input type="checkbox" name="remember"
 
     value="
     
		 <?php if(isset($_COOKIE['email'])) 
         
            {
                echo 'checked="checked"';
            }
            
            else 
            
            {
                echo '';
            }
            ?>
        
        " >No cerrar sesión
 
      </br></br>
 
      <input type = "submit" name = "submit" value = "Entrar"/>
 
</form>


procesador.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
	$year = time() + 31536000;
	setcookie('email', $_POST['email'], $year);
 
	echo "logueado!!!";
 
	// Luego les redirigirá a la zona de miembros 
	//header ("Location: zona_miembros.php"); 
 
?>
 
<form action="cerrar_sesion.php" Method = "post">
 
      <input type = "submit" name = "submit" value = "Cerrar_sesion"/>
 
</form>


cerrar_sesion.php

1
2
3
4
5
6
7
<?php
 
setcookie('email', "", 1);
 
header ("Location: formulario.php");
 
?>


Y debe ser una tonteria pero , la tonteria me esta bacilando ya varios dias y no me funciona xve, help!!! :-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Dejar sesion abierta despues de hacer login mediante checkbox

Publicado por xve (6935 intervenciones) el 07/04/2015 21:49:38
Te pido disculpas Sam, lo que yo entendí, es que no conseguías cerrar la sesión del usuario.

Para lo que quieres, tienes que revisar si hay la cookie antes de mostrar el formulario...

Para lo que quieres hacer, te recomiendo que revises este código, hace exactamente lo que quieres:
http://www.lawebdelprogramador.com/codigo/PHP/2112-Gestion-de-una-administracion-Web.html

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar