为什么我的会话无法正常工作


Why is my session failing to work?

打开另一个文件时我的会话无法恢复

我有 2 页,test.php 页和 test2.php 页。下面列出了我的每个文件。

测试.php:

<?php
  session_save_path('sessBin');
  session_id('mySessionID');
  session_start();
  $_SESSION[1]="yo";
  echo $_SESSION[1];
?>
<a href="test2.php">go to test 2</a>

测试2.php:

<?php
  session_save_path('sessBin');
  session_id('mySessionID');
  session_start();
  echo $_SESSION[1];
  echo "bleh";
?>

第一页返回:

"yo" <a href="test2.php">go to test 2</a>

但是,当单击链接转到 test2.php 时,只有返回:

"bleh"

我做了一些研究,发现必须启用cookie。嗯,他们是...那么出了什么问题呢?

注:(事后发现)

我确实注意到 sessBin 中有几个文件(包括sess_mySessionID),因此存储了会话。但是,文件为空,会话似乎没有恢复

test1.php

  // session_save_path('sessBin');
  // session_id('mySessionID');
  session_start();
  $_SESSION['test'] ="yo";
 echo $_SESSION['test'];
<a href="test2.php">go to test 2</a>

测试2.php

    // session_save_path('sessBin');
    // session_id('mySessionID');
   session_start();
   echo $_SESSION['test'];
   echo "bleh";

为我工作!

>session_start需要在每个页面的顶部定义,紧跟在开始的 php 标签之后,在每个预期存在会话数据的页面上。在寻址任何其他会话函数或变量之前,必须执行此操作。

**根据您的

意见更新答案**

检查 test2.php 中打开 PHP 标记之前的空格。此外,启用错误报告。您可能在会话调用之前发送了一些导致 session_start() 失败的内容。

试试这个:

配置.php

<?php
    session_start();
?>

在顶部的所有其他文件中,添加以下内容:

include'config.php';

这样,您将始终拥有一个文件,您可以在其中将可能需要的重要内容放在其他页面上,因此您不必每次都重新键入它。