在本地主机上工作,但在Web服务器上不工作....session_start():无法发送会话缓存限制器-头部已发送。

14 浏览
0 Comments

在本地主机上工作,但在Web服务器上不工作....session_start():无法发送会话缓存限制器-头部已发送。

我是一个PHP的新手,尝试了各种方法,也研究了论坛的帖子,但是一周过去了,我感觉离解决问题还是很远。

本地版本运行正常,没有问题。但是,当我上传它时,它会显示以下错误信息:

session_start(): Cannot send session cache limiter - headers already sent (output started at /home/idigital123/public_html/index.php:2) in /home/idigital123/public_html/index.php on line 41

以下是代码:

 

= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //声明两个会话变量并为它们赋值
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;       
    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else   {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

0
0 Comments

问题原因:该问题的原因是在服务器上出现了无法发送会话缓存限制器的错误。这通常是因为在发送HTTP头之前,有输出被发送到浏览器。

解决方法:要解决这个问题,可以尝试以下几个步骤:

1. 检查是否在代码中的会话启动之前有任何输出。在这种情况下,将代码移动到输出之前。

2. 确保在代码中没有使用任何输出函数(如echo或print)在会话启动之前。

3. 检查文件的编码格式,确保没有BOM字符。

4. 确保没有在会话启动之前包含任何空格或换行符。

5. 确保不要在包含文件中发送输出。

根据以上内容,问题的原因是在服务器上出现了无法发送会话缓存限制器的错误。解决方法是检查代码中是否有输出函数的使用,并确保在会话启动之前没有任何输出。另外,还要确保文件的编码格式正确,并且没有在会话启动之前包含任何空格或换行符。如果问题仍然存在,可以尝试检查是否在包含文件中发送了输出。

0
0 Comments

问题的出现原因:

在网页服务器上运行时,会出现"session_start(): Cannot send session cache limiter - headers already sent"错误。这个错误的原因是在发送HTTP响应头之后,再尝试发送Session数据,而这是不允许的。常见的导致这个错误的原因有以下几个:

1. 在PHP代码中使用了session_start()函数之前有输出了内容,如HTML标签、空格、换行等。

2. 在包含PHP文件中使用了session_start()函数,而这个文件中有输出了内容。

3. 在PHP文件中使用了session_start()函数之前,有其他PHP文件被包含或引用,并且这些文件中有输出了内容。

解决方法:

要解决这个问题,可以采取以下几种方法:

1. 将session_start()函数放在PHP代码的最开始位置,确保在之前没有输出任何内容。

2. 检查包含的PHP文件,确保在其中没有输出任何内容。

3. 检查被引用的其他PHP文件,确保在其中没有输出任何内容。

4. 如果在PHP文件中有输出内容并且无法避免,可以考虑使用ob_start()函数将输出缓存起来,直到session_start()函数被调用。

需要注意的是,这个错误可能会因为不同的代码和环境而有所不同,解决方法也可能会因情况而异。因此,最好的解决方法是仔细检查代码,确保在调用session_start()函数之前没有输出任何内容。

0
0 Comments

问题原因:

出现这个问题的原因是在向浏览器发送HTTP响应之前,已经有输出内容了。在调用session_start()函数之前,如果有任何输出语句(如echo、print、空格、换行等),都会导致此错误。

解决方法:

1. 检查源文件是否有BOM(字节顺序标记)。BOM会在输出的开头添加不需要的字符,因此需要确保源文件没有BOM。可以使用文本编辑器(如Notepad++)将文件转换为UTF-8编码并保存,以确保没有BOM。

2. 确保session_start()函数在任何输出之前调用。可以将session_start()函数放在代码的最前面,确保在任何输出语句之前调用该函数。

示例代码:


3. 检查文件之间是否存在空格或换行符。空格和换行符也会产生输出,因此需要确保在session_start()函数之前没有任何空格或换行。

4. 检查是否有其他文件在当前文件中包含了输出内容。如果有其他文件在当前文件中包含了输出内容,那么需要确保在包含这些文件之前调用session_start()函数。

示例代码:


通过以上方法,可以解决在本地环境正常运行但在Web服务器上出现"session_start(): Cannot send session cache limiter - headers already sent"错误的问题。

0