警告会话启动 - 无法发送会话缓存限制器 - 标头已发送

警告会话启动 - 无法发送会话缓存限制器 - 标头已发送

我遇到了一个小问题,希望你能帮助我。我不是程序员或编码员,但我只是想解决我的项目中的一些问题。

以下是上下文。我需要在我的笔记本电脑(HP - Windows7)上离线安装和使用我的一个项目(电子商务网站)。所以我已经安装了 Appserv 并导入了数据库。我还复制粘贴了项目文件夹 www/name 中的所有文件。该网站使用 PHP 和 Javascript。没有 CMS,CSS 模板是内部设计的。

我使用 localhost 离线启动了网站,然后打开了管理员登录页面。我输入了我的登录名和密码,然后收到以下消息:

*“警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已发送(输出开始于 C:\AppServ\www\thailema_v2\controller\admin\login.php:1)在 C:\AppServ\www\thailema_v2\controller\admin\login.php 第 3 行

警告:无法修改标头信息 - 标头已由(输出开始于 C:\AppServ\www\thailema_v2\controller\admin\login.php:1)在 C:\AppServ\www\thailema_v2\controller\admin\login.php 第 18 行发送“*

所以我无法进入我的管理页面并离线重新启动我需要的功能。我已经阅读并尝试了这里提出的一些解决方案,但并没有改变,而且有些解决方案我无法弄清楚,因为我不是专业程序员。

无论如何,这里是该页面的代码:

<?php
ob_start();
session_start();
$path = '../';
include_once($path."include/check_lang.inc.php");
include_once($path."include/connect.php");
include_once($path."include/login.class.php");

$objLogin=new Login();
$check=$objLogin->getLogin($_POST["customer_username"],$_POST["customer_password"]);

if($check){
    $url = $path."add_booking_info.php?lang=".$lang;
}else{
    $url = $path."payment_step1.php?error=yes&lang=".$lang;
}

header("Location: ".$url);
ob_end_flush();
?>

所以我想要做的是登录管理页面并使用所有管理功能,但由于该错误,目前我甚至无法访问管理索引页面。非常感谢您的帮助和支持...

奥利维尔

答案1

  1. 确保绝对前面有空格<?php

  2. 放在session_start()前面ob_start()而不是后面。

  3. 如果失败,请尝试注释掉 session_start(),因为其中一个包含可能已经启动了会话,如下所示: /** session_start(); **/

答案2

我遇到了同样的问题。当我从我的电脑上传到我的在线网络主机时,我遇到了同样的错误。我删除了所有空格,将 session_start 放在文件顶部,但没有结果。然后查看了我在本地主机上运行的 php 版本。它是 5.4,而在线是 5.3。我将我的网络主机版本从 5.3 更新到 5.4,我的问题就解决了。

相关内容