繁体   English   中英

检查会话是否不存在php

[英]Check if session doesn't exist php

我有以下PHP代码:

<?php 
if (!(session_id('password')) || !(session_id('user_name'))) {    
    header("Location: ../../"); /* Redirect browser */
}
 ?>

哪个应该检查会话是否存在,如果不存在,用户重定向,问题是这个条件总是如此,即使会话确实存在,我的问题是如何解决它?

尝试使用$_SESSION

<?php 
   if (!isset($_SESSION) || !isset($_SESSION['password']) || !isset($_SESSION['user_name'])) {
         header("Location: ../../"); /* Redirect browser */
   }
?>

session_id()不用于获取会话信息。 它用于更改用户的会话ID。 您所做的是将每个人的会话ID更改为字符串“user_name”。

而是这样做;

if( empty( $_SESSION[ 'user_name' ] ) ) header("Location: ../../");

我不建议在会话中存储用户的密码。 没有理由,只是把它放在外面更安全。

  1. 检查您是否在该页面上开始了会话?

使用session_start(); 在页面顶部..

  1. 用你的if条件添加:

if( isset($_session) && ...);

  1. session_id()用于生成不检查会话变量的会话ID。

所以使用$_SESSION['username'] && $_SESSION['password']

  1. 在会话中传递密码是非常不鼓励的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM