Nueva pregunta

Pregunta:

Fecha: 23-02-2020 07:40:07 (En Español)

Como hacer que la session dure un año iniciada, a menos que el usuario la cierre[Resuelta]

Hola amigos, tengo una pagina en donde se puede registrar e inicial sesión, pero es un poco molesto tener que estar identificándose siempre que cierras el navegador y me gustaría hacer como hacen esas grandes paginas que con solo inicial la sesión una solo vez, ya no tienes que volverla a inicial durante un año, a menos que oprimas el botón de cerrar sesión y tu sesión se destruya. Estuve averiguando un poco en Internet, pero solo logre mi cookies dure un año utilizando la setcookies.

Este es mi código para inicial sesión dentro de la pagina y aquí pueden ver como le doy un año de vida a la cookies:
<?php session_start();

require_once('./conexion/conexion.php');

$errors = '';

if(isset($_POST['login'])){

    $email = $_POST['email'];
    $password = $_POST['password'];

    $password = hash('sha512', $password);

    // sentencia para saber si lo que introduce el usuario es correcto
    $sentencia = $conexion->prepare("SELECT * FROM users WHERE email = :email AND password = :password LIMIT 1");

    $sentencia->execute(array(
        ':email' => $email,
        ':password' => $password
    ));

    $resultado = $sentencia->fetch();

    if($resultado == true){
        setcookie('email', $email, time() + 60 * 60 * 24 * 365, '/');
        setcookie('password', $password, time() + 60 * 60 * 24 * 365, '/');
        
        $_SESSION['email'] = $email;
        header('Location: ./');
    } else {
        $errors .= "* Has escrito mal el correo electrónico o la contraseña";
    }
}



Espero que me puedan ayudar. un gran saludo
Etiquetas: $_COOKIE - $_SESSION - COOKIES - PHP - Sesión Votos: -1 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 23-02-2020 12:04:26 Hola amigos, lo he logrado resolver colocando este trozo de código:
    // Dale tiempo de vida a la sesion
            session_get_cookie_params('lifetime');


    Pero acá dejo el código completo:
    <?php session_start();
    
    require_once('./conexion/conexion.php');
    
    $errors = '';
    
    if(isset($_POST['login'])){
    
        $email = $_POST['email'];
        $password = $_POST['password'];
    
        $password = hash('sha512', $password);
    
        // sentencia para saber si lo que introduce el usuario es correcto
        $sentencia = $conexion->prepare("SELECT * FROM users WHERE email = :email AND password = :password LIMIT 1");
    
        $sentencia->execute(array(
            ':email' => $email,
            ':password' => $password
        ));
    
        $resultado = $sentencia->fetch();
    
        if($resultado == true){
            setcookie('email', $email, time() + 60 * 60 * 24 * 365, '/');
            setcookie('password', $password, time() + 60 * 60 * 24 * 365, '/');
    
            // Dale tiempo de vida a la sesion
            session_get_cookie_params('lifetime');
            
            $_SESSION['email'] = $email;
            header('Location: ./');
        } else {
            $errors .= "Has escrito mal el correo electrónico o la contraseña";
        }
    }
    
    
      Votos: -1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com