2

我有以下 php 代码:

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

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

4

3 回答 3

7

试试$_SESSION喜欢

<?php 
   if (!isset($_SESSION) || !isset($_SESSION['password']) || !isset($_SESSION['user_name'])) {
         header("Location: ../../"); /* Redirect browser */
   }
?>
于 2013-08-17T08:58:21.877 回答
6

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

而是这样做;

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

我不建议将用户的密码存储在会话中。没有理由这样做,而且将其排除在外更安全。

于 2013-08-17T09:00:38.453 回答
0
  1. 检查您是否已在该页面上开始会话?

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

  1. 使用您的 if 条件,只需添加:

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

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

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

  1. 非常不鼓励在会话中传递密码。
于 2013-08-17T09:05:03.393 回答