New question

Question:

Date: 23-02-2020 07:40:07 (In Spanish)

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

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
Tags: $_COOKIE - $_SESSION - COOKIES - PHP - Session Votes: -1 - Answers: 1 - Views: 8 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 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";
        }
    }
    
    
      Votes: -1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com