Php 为什么我的会话无法工作?

Php 为什么我的会话无法工作?,php,session,session-variables,Php,Session,Session Variables,打开另一个文件时,我的会话确实无法恢复 我有两个页面,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&

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

我有两个页面,
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”

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

“bleh”

我做了一些研究,发现必须启用cookies。嗯,他们是。。。那怎么了

注意:(事后发现)


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

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

**根据您的评论更新答案**

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

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>
为我工作

试试这个:

config.php

<?php
    session_start();
?>

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

test2,删除
session_start()上方的两行内容@Dagon好吧我试试。。。我不认为这会起作用,因为,如果我没记错的话,我最初是这样编码的,但它仍然不起作用。我会改变它,让你知道…@Dagon它不工作了…你在用什么操作系统;Unix、Windows?我猜更改您的
会话\u保存\u路径
可能会导致文件权限问题,或者只是缺少目录。如果删除两个文件的前两行,会话是否有效?(在开始的PHP标签之后)“就在开始的PHP标签之后”不,他已经有了。我没有发现任何错误。但是,我确实注意到,
sessBin
中有几个文件(包括
sess_mySessionID
),因此会话被存储。但是,文件是空的,会话似乎无法继续。您能否提供一个链接来说明这一点?我无法访问
config.php
。我的网站是在别人的服务器上托管的,我没有访问权限to@AnOriginalAliasOK,然后把session_start()放进去;在每一页的顶部,这也应该起作用。
<?php
    session_start();
?>
include'config.php';