【问题标题】:How to expire a php session after certain time? [duplicate]如何在一定时间后使 php 会话过期? [复制]
【发布时间】:2018-05-25 13:15:37
【问题描述】:

我有以下代码:

页面Login.php

<?PHP
      session_start();
      include("conexion.php");
      $conn = conexion();
      extract($_POST);

      $password = md5($pass);
      echo $password;
      $sql1="Select * from miembro where user='".$user."'and pass ='".$password."'";
      $re= mysqli_query($conn,$sql1);
    	$numrows1 = mysqli_num_rows($re);
      echo $sql1;
      echo $numrows1;
    	if ($numrows1==0 or $numrows1>=2){
        $_SESSION['session'] = "no";
    		header('Location:' . getenv('HTTP_REFERER'));
    	}else{
        $row = mysqli_fetch_array($re);
        $_SESSION['nombre'] = $row["nombre"];
        echo $_SESSION['nombre'];
        $_SESSION['codigo'] = $row["codigo"];
        $_SESSION['pass'] = $row["pass"];
        $_SESSION['apellido'] = $row["apellido"];
        $_SESSION['telefono'] = $row["telefono"];
        $_SESSION['user'] = $row["user"];
        $_SESSION['cargo'] = $row["cargo"];
        $_SESSION['correo'] = $row["correo"];
        $_SESSION['session'] = "si";
        $_SESSION['last_time'] = time();
        header("Location: ./actions/perfil.php");
      }
    ?>

还有 perfil.php(用户登录后被带到的地方)

<?php
	include("./menu_actions.php");
	include("../conexion.php");
	if($_SESSION['session'] != "si"){
		header("location: ../home.php");
	}

	$us = $_SESSION['user'];
    $sql="select * from miembro where user = '$us';";
  	echo $sql;
  	$query = mysqli_query(conexion(),$sql);
  	$row = mysqli_fetch_array($query);

  session_start();
  if(isset($_SESSION["user"])){
    if((time() - $_SESSION['last_time']) > 10){ //After 10 sec
    header("location:logout.php");
    }
  }
  else{
    header('Location:login.php');
  }

 ?>
 
 //HTML

它不起作用,我不明白为什么。会话开始的时间保存在一个变量中,稍后用 if 循环分析,所以如果时间超过 10 秒,用户应该被强制退出并再次进入登录页面,但我无法做到工作。有人可以帮帮我吗?

【问题讨论】:

标签: php mysql session mysqli


【解决方案1】:

嗯,不妨试试这样设置cookie:

setcookie($cookie_name, $cookie_value, time() + 10, "/"); // 86400 is one day

然后检查它是否由 isset($_COOKIE[$cookie_name]) 设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2019-10-16
    • 1970-01-01
    • 2016-11-11
    • 2015-09-16
    • 2018-06-20
    • 1970-01-01
    相关资源
    最近更新 更多