打开另一个文件时,我的会话无法恢复
我有2页,test.php
和test2.php
。我的每个文件都列在下面。
test.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>
test2.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),因此存储了会话。但是,文件为空,会话似乎没有恢复
答案 0 :(得分:0)
session_start需要在每个页面的顶部,在打开php标记之后,在预期会话数据存在的每个页面上定义。您必须在解决任何其他会话函数或变量之前执行此操作。
**根据您的评论更新答案**
在test2.php中打开php标记之前检查空格。此外,启用错误报告。您可能会在会话调用之前发送一些导致session_start()失败的内容。
答案 1 :(得分:0)
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>
test2.php
// session_save_path('sessBin');
// session_id('mySessionID');
session_start();
echo $_SESSION['test'];
echo "bleh";
为我工作!
答案 2 :(得分:-1)
试试这个:
的config.php
<?php
session_start();
?>
在顶部的所有其他文件中添加以下内容:
include'config.php';
这样你就会有一个文件,你可以在其他页面上放置你可能需要的重要内容,所以你不必每次都重新输入它。