打开另一个文件时我的会话无法恢复
我有 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';
这样,您将始终拥有一个文件,您可以在其中将可能需要的重要内容放在其他页面上,因此您不必每次都重新键入它。