Session 检查会话是否没有';不存在php

Session 检查会话是否没有';不存在php,session,php,Session,Php,我有以下php代码: <?php if (!(session_id('password')) || !(session_id('user_name'))) { header("Location: ../../"); /* Redirect browser */ } ?> 它应该检查会话是否不存在,如果不存在,则用户重定向,问题是此条件始终为真,即使会话确实存在,我的问题是如何修复它?尝试使用$\u session类似 <?php if (!is

我有以下php代码:

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


它应该检查会话是否不存在,如果不存在,则用户重定向,问题是此条件始终为真,即使会话确实存在,我的问题是如何修复它?

尝试使用
$\u session
类似

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

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

而是这样做

if( empty( $_SESSION[ 'user_name' ] ) ) header("Location: ../../");
我不建议在会话中存储用户的密码。没有理由这样做,只是更安全的做法是将其排除在外

  • 检查您是否已在该页面上启动会话
  • 使用
    session_start()位于页面顶部

  • 根据您的if条件,只需添加:
  • if(isset($_会话)&&&&…)

  • session_id()用于生成不检查会话变量的会话id
  • 因此,请使用
    $\u会话['username']和&$\u会话['password']

  • 在会话中传递密码是非常不鼓励的

  • 不,我们可以先检查会话是否存在,然后检查密码和用户名如果会话中没有密码或用户名,您将触发通知。那太糟糕了。此外,逻辑是在它们不存在时重定向。除了误用
    session\u id()
    之外,这个问题几乎是正确的。