首页 > 解决方案 > 如果cookie不会显示我设置的cookie,它会如何分叉?

问题描述


<?php 


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

  require  '../conn.php';
  global $conn;
  

  $email = $_POST['epasts'];
  $password = $_POST['password'];  
 
  $sql = "SELECT * FROM user_acounts WHERE e_pasts=?;";
  $stmt = mysqli_stmt_init($conn); // Inicializācija 

 if(!mysqli_stmt_prepare($stmt, $sql)){
  header ('location: ../login.php?error');
  exit();

  }else{

    mysqli_stmt_bind_param($stmt, "s", $email);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt); // Iegūst rezultātu       
  }

  if ($row = mysqli_fetch_assoc($result)){ // Šeit gaidāma tikai viena atbilde  
   
    $password_check = password_verify($password, $row["PAROLE"]);      
      if ($password_check == false){        
        header ('location:   ../login.php?password=false');
        exit();

      }else if ($password_check == true){   
        session_start();            
        $_SESSION['user_id'] = $row["id"];
        $_SESSION['NAME'] = $row["VARDS"];        
        $_SESSION['SURNAME'] = $row["UZVARDS"];
        $_SESSION['email'] = $row["E_PASTS"]; 
        $_SESSION['status'] = $row['STATUSS'];
        $_SESSION['school'] = $row["SKOLA"];        
        $_SESSION['class'] = $row["KLASE"];          
        setcookie("rememberme", $_SESSION['NAME'] . "," . $key, time() * 3600);
        if ($_SESSION['status'] == 'Nav'){
          header ('location:   ../status.php');
          exit();
        }else{
        header('location:   ../main.php?id='.$_SESSION['user_id'].'');
        exit();
        }
      }
   } else {
     header ('location: ../login.php?email=false');
     exit();
   }
   mysqli_stmt_close($stmt);
   mysqli_close($conn);
  
}

 

?>

嘿!所以我正在为想要尝试完成一些测试的人创建一个网站,我想使用 cookie 进行登录,所以我试图在人们按下按钮登录后设置一个 cookie,然后我想做一个如果他不在他的电脑上,时间延迟将结束会话。

标签: phpcookies

解决方案


您想要的是在后端强制执行会话,就像在前端一样。cookie 有一个固定的生命周期,并且不知道用户交互。

如果您想有根据地猜测用户是否仍然存在且处于活动状态,则必须通过 JavaScript 监听页面交互。当然,您永远不会知道是他们的猫在键盘上走过,还是用户是 afk 但仍在观看屏幕(并且在精神上与系统互动)。

为了让您开始,您可能想要查看的一些事件是顶部元素 (html) 上的mousedownkeyup和。touchstart如果您不想冒险影响滚动性能,请阅读被动事件处理。


推荐阅读