2012-04-20 127 views
0

这是我的代码。干净利落。会话数据本地工作,但不在远程服务器上

1)first.html

<body> 
    <?php 
    session_start(); 
    ... 
    $somearray = $Object->method($somevar); 
    $_SESSION["somearray"] = $somearray; 
    ... 
    ?> 
</body> 

1)second.html

​​

在localhost完美的工作代码。

有两个事实可以帮助你们想出问题在哪里。

1)如果您检查页面second.html离线的来源,网上你可以看到分别和some_render_function('all the stuff from the json')some_render_function(NULL)

2)如果我检查我的共享服务器文件夹,我可以看到一个名为php_session目录显然所有正确的文件(所有会话打开时,我测试我的项目,其中正确的数据)

任何提示?

+0

检查,如果你已经在服务器上启用了输出缓冲,如果没有启用le it。 - http://www.php.net/manual/en/outcontrol.configuration.php ---另外,启用将服务器上的错误记录到最高级别,然后跟踪错误日志。您可能会看到警告,可能是这些在这里详细讨论的:[已经由PHP发送的头文件](http://stackoverflow.com/q/8028957/367456)。 – hakre 2012-04-20 08:14:46

+0

@hakre谢谢,我仍然需要联系我的服务器托管服务,但我相信问题是输出缓冲确实是因为我试图停用它在我的本地主机和功能不工作...我假设我会得到问题解决了这个修复,但我会等着看我的眼睛:) – Francesco 2012-04-21 15:15:29

+0

@hakre事实证明,我不得不放置<?php session_start(); ?>甚至在doctype HTML声明之前,现在它工作了 – Francesco 2012-04-21 15:24:06

回答

1

你好session_starthttp://php.net/manual/en/function.session-start.php)应该永远是你的页面上的第一个参数...

首页

<?php session_start();?> 
<html> 
<head> 
<title>First</title> 
</head> 
<body> 
    <?php 
    $somearray = $Object->method($somevar); 
    $_SESSION["somearray"] = $somearray; 
    ?> 
</body> 

</html> 

第二页

<?php session_start(); ?> 
<html> 
<head> 
<title>Second</title> 
</head> 
<body> 
    <?php 
    var_dump($_SESSION["somearray"]); 
    ?> 
</body> 
</html> 
+0

做了修复,在本地工作,但它仍然不在远程服务器上。 – Francesco 2012-04-20 08:45:42

+0

我真的很抱歉,但我已经在<?php session_start()之前声明了doctype声明。 ?>一行代码,但是当我交换了它的两行代码时,现在也在远程服务器上:) – Francesco 2012-04-21 15:22:54

1

Session_start应该在任何输出之前。所以,将<?php移动到文件的开头。否则,行为取决于服务器配置。

相关问题