繁体   English   中英

session_start()错误

[英]session_start() error

我无法处理此错误,请帮助我。 它可以在我的笔记本电脑上工作,但不能在我的台式机上工作。

为什么?

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\xampp\htdocs\etest\index.php:1) in F:\xampp\htdocs\etest\common\header.php on line 3

编码:

<?php
ob_start();
session_start();
include("constants.php");
include("includes.php");
?>

谢谢你的好心!

通常,当您看到“标头已发送”时 ,表示您正在尝试执行一些需要设置HTTP标头的操作,但是您已经将内容发送到了客户端。 使用HTTP时,必须发送标头,然后发送内容。 如果您已发送内容,则错过了发送标头的机会。

错误发生在第3行的F:\\xampp\\htdocs\\etest\\common\\header.php on line 3但输出F:\\xampp\\htdocs\\etest\\index.php:1

我假设您发布了header.php,但是您的index.php在<?php include()之前有空格,或者在第一行中输出的不是标题。

该错误是由index.php的第一行引起的,无论存在什么。 我猜是空格。

php.ini文件中的use_only_cookies=0use_only_cookies=1

我在xampp 7.0.1中遇到了相同的问题,并对此进行了修复。 在这里阅读

在文件顶部启动会话。

在产生此错误消息之前,在进行回显或发送一些标头时,直接使用php标签。

<?php
session_start();
ob_start();
include("constants.php");
include("includes.php");
?>

通过配置启用输出缓冲。 这样,它将首先开始,因此它肯定可以解决您的问题。 尽管您应该查看代码并找到导致当前错误的原因,但因为您似乎还不完全了解您的网站。

通过配置启用输出缓冲后,您不再需要手动调用ob_start()

使用以下内容创建一个名为.htaccess的文件:

php_flag output_buffering on

...或将此行添加到您的php.ini中:

output_buffering = On

是的,请在文件顶部启动会话,并确保之前没有空格

<?php

另外,您可以调用session_start(); 只有一次

在有任何其他输出之前,必须先调用session_start() 错误告诉您输出从index.php第1行开始。必须在此之前调用session_start()

将此代码放入include.php中

ob_start();
session_start();

并从其他页面删除相同的代码。 另外,请确保文件中的开头没有空格

(特别是您收到错误,因为在index.php的第一行而不是header.php的第一行有问题)

即使将其放在文件顶部,我也得到了它。

问题看不见的UTF8字符

解决方案是删除文件并以<?php开头创建一个新文件,然后将<?php之后的所有内容复制到新文件中。 (不要复制文件的开头)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM