PHP会话在服务器中不工作

PHP会话在服务器中不工作,php,Php,我正在用php设计一个网站。完成后,我把东西上传到服务器上。 该页面在localhost中运行良好。但上传后,页面甚至没有加载。 在每个页面的顶部,我都包含一个名为startsession.php的页面。本页内容如下: session_start(); header("Pragma: no-cache"); header("Cache-Control: no-cache, must-revalidate");

我正在用php设计一个网站。完成后,我把东西上传到服务器上。 该页面在localhost中运行良好。但上传后,页面甚至没有加载。 在每个页面的顶部,我都包含一个名为startsession.php的页面。本页内容如下:

            session_start();
            header("Pragma: no-cache");
            header("Cache-Control: no-cache, must-revalidate");
            header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
如果我删除会话(u start),它工作正常。错误详情如下:

            session_start();
            header("Pragma: no-cache");
            header("Cache-Control: no-cache, must-revalidate");
            header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
发生错误的页面--未知

发生错误的行编号--0

错误详细信息---Unknown():打开(/tmp/sess_723d94fdc8ae3569b1a641fd8799ece9,O_RDWR)失败:没有这样的文件或目录(2)

错误代码---2


请帮助我

确保/tmp/存在,并且服务器具有写入权限


如果这些都不起作用,请尝试清除/tmp/

检查并确保运行web服务器的用户可以写入路径(/tmp),因为这可能是权限问题。此外,在使用session_start之前,还需要使用header()函数,如文档中所述:

因为session_start实际上可能发送HTTP头。此外,始终100%确定您正在使用:


错误报告(E_ALL)

您可以使用自己的会话保存目录

将下面的代码放在会话_start()上方;代码


享受

我遇到了另一个问题-没有错误,但在linux上安装php/apache后会话无法工作。我花了几个小时研究这个问题,最后通过简单地删除/tmp的内容解决了这个问题


感谢KramerC

@Kristopher:+1的解释。您还可以告诉我,windows上的PHP在哪个目录中保存其会话数据,如linux中的/tmp/吗?header()函数的位置不需要在session_start()之前。我过去在会话_start()之后使用过header()函数,没有任何问题。@gameover您可以使用此函数获取当前会话目录:@Kramer_Cambell谢谢,我也使用过会话_start(),没有任何问题,但文档明确指出它“发送”了头,尽管我怀疑它实际上使用了header()或者缓冲更改直到输出。比如删除所有内容?