Php 会话数据未保存

Php 会话数据未保存,php,session,session-variables,Php,Session,Session Variables,我正在调试一个php会话,它在我上一次测试它时工作,几个月前。代码没有以任何方式更改,但会话现在已停止工作 我在这里读过多个问题以及其他文章,但没有任何建议可以解决这个问题。我相信我的代码是正确的,但当我询问Bluehost的支持时,他们说这一定是代码问题: 我正在启动一个会话并设置几个会话变量: <?php session_start(); $_SESSION["franchise_name"] = $_POST["name"]; $_SESSION["db_name"] =

我正在调试一个php会话,它在我上一次测试它时工作,几个月前。代码没有以任何方式更改,但会话现在已停止工作

我在这里读过多个问题以及其他文章,但没有任何建议可以解决这个问题。我相信我的代码是正确的,但当我询问Bluehost的支持时,他们说这一定是代码问题:

我正在启动一个会话并设置几个会话变量:

<?php
    session_start();

$_SESSION["franchise_name"] = $_POST["name"];
$_SESSION["db_name"] = $_POST["name"];
$_SESSION["franchise_location"] = $_POST["franchise_location"];
$_SESSION["franchise_phone"] = $_POST["franchise_phone"];
$_SESSION["franchise_address"] = $_POST["franchise_address"];
$_SESSION["franchise_email"] = $_POST["franchise_email"];

header("Location: session.php"); /* Redirect browser */
exit;

?>
我还设置了一个测试仪,以查看会话数据是否已启用:

ini_set('session.save_path','/some/safe/path/to/sessions');
session_start();

此测试的结果表明会话数据在这里也不起作用,并且会话路径确实是可写的。Phpinfo显示会话已启用

还有什么可以帮助我解决这个问题的吗?谢谢

更新:我确实尝试过使用查找会话路径 ini_集('session.save_path','SOME WRITABLE path'); 但这并没有解决问题

从php页面:

注意
要使用基于cookie的会话,必须在将任何内容输出到浏览器之前调用
会话\u start()

删除
会话\u start()
之前的空格,它们被视为输出


更新:

它也可能与会话文件的位置有关,您可以尝试设置新位置:


确保
会话
具有适当的权限

我给Blue Host打过电话-第二个支持人员比第一个支持人员更加警惕,并认识到Varnish缓存可能导致问题。我们禁用了它,瞧!固定的

注意:我将这些文件从bluehost复制到hostgator,它们在那里工作正常。所以它似乎与主机相关,但bluehost说这是我要解决的问题。不知道该让他们做什么。也许你还有其他要求吗?在一个特殊的例子中,我有一个404页面,它正在启动一个会话。在我的网站上没有favicon,我的浏览器正在请求它,两个请求到达服务器时出现了不可预测的行为。上面列出了所有代码-所以我不这么认为?好的。我已经在我的本地服务器上测试了你的代码,它似乎在这里工作。这一定是bluehost的问题,但他们的技术支持不是很支持。谢谢你的更新Pedro-我应该在我的初始帖子中注意到,我确实尝试过更改会话路径,作为我早期的故障排除测试之一。你尝试过输出吗
$\u发布内容而不重定向?有什么内容吗?它是否显示任何错误?您可能想查看关于此问题的最后一条评论:谢谢-我看到了,但确定文件没有BOM-尽管如此,我还是重新保存了文件以确保问题仍然存在。很抱歉,我真的不知道如何进一步帮助您!
Testing Output:2
array(0) {
}
<?php
// Start Session
session_start();
// Show banner
echo '<b>Session Support Checker</b><hr />';
if (!is_writable(session_save_path())) {
    echo 'Session path "'.session_save_path().'" is not writable for PHP!<br />'; 
} else {
    echo 'Session path "'.session_save_path().'" is writable for PHP!<br />'; 

}
// Check if the page has been reloaded
if(!isset($_GET['reload']) OR $_GET['reload'] != 'true') {
   // Set the message
   $_SESSION['MESSAGE'] = 'Session support enabled!<br />';
   // Give user link to check
   echo '<a href="?reload=true">Click HERE</a> to check for PHP Session Support.<br />';
} else {
   // Check if the message has been carried on in the reload
   if(isset($_SESSION['MESSAGE'])) {
      echo $_SESSION['MESSAGE'];
   } else {
      echo 'Sorry, it appears session support is not enabled, or you PHP version is to old. <a href="?reload=false">Click HERE</a> to go back.<br />';
   }
}
?>
ini_set('session.save_path','/some/safe/path/to/sessions');
session_start();