会话不能在PHP中工作

时间:2016-06-10 11:21:35

标签: php session

这是我的测试脚本:

getData

<?php ob_start(); // with or without this is the same $session = session_start(); $path = session_save_path(); if (headers_sent()) die ("Headers have already been sent"); if((isset($_GET["set"]))) { $_SESSION["var"] = " - testing - "; } echo $_SESSION["var"]; echo $session; echo $path; print_r($_SESSION); print_r($_COOKIE); setcookie("cookie", "value"); 输出$session。 Cookie正在成功设置。我有一个PHPSESSID cookie集。会话(来自phpinfo)已启用。 1就在那里。

当我设置会话变量时(通过设置session_start() GET参数),会话变量也会直接从set数组回显。但是当我删除$_SESSION GET参数时,print_r-ing set会输出一个空数组。

我甚至设置$_SESSION,我chmod 777 on /var/lib/php5 - 将它编辑到运行PHP的同一用户。我甚至尝试了一个完全不同的域名,在我的本地chown中定义它并用它设置一个新的虚拟主机。

我在Stackoverflow上找到一个答案,表示要在/etc/hosts中禁用register_globals,但我在php.ini输出中甚至没有这个设置,所以我没有&# 39; t do ...

我已尝试使用phpinfo更改会话目录,但是DIDN&#39; T WORK。我可能没有这个(VPS)托管的权限。

我不知道还有什么可以尝试的?

这是我的phpinfo()输出的会话部分,如果它有帮助:

session_save_path()

1 个答案:

答案 0 :(得分:0)

解决。

似乎我的整个帐户实际上没有权限从public_html文件夹上升,因此/var/lib/php5文件夹实际上是在public_html文件夹中将其作为“相对”文件夹打开1}}。在我打开error_reporting后我终于意识到了这一点。

因此,在我的FTP根目录中创建public_html/var/lib/php5并使其可写后,会话开始工作。

我认为这不是一个真正的传统环境,但我再次在这个主机上做了很多陌生的事情。