【问题标题】:PHP session_start with encoding to UTF-8 [duplicate]PHP session_start 编码为 UTF-8 [重复]
【发布时间】:2014-07-26 16:51:22
【问题描述】:

尝试从 ANSI 转换为 UTF-8 时出现错误。

警告:session_start() [function.session-start]:无法发送会话 缓存限制器 - 标头已发送(输出开始于 mysite.co\index.php:1) 在 mysite.co\application\controllers\admin.php 在第 11 行

index 文件不包含任何空格或 HTML。

<?php
// load the (optional) Composer auto-loader
if (file_exists('vendor/autoload.php')) {
    require 'vendor/autoload.php';
}
// load application config (error reporting etc.)
require 'application/config/config.php';

// load application class
require 'application/libs/application.php';
require 'application/libs/parametres.php';
require 'application/libs/controller.php';
require 'application/libs/modules.php';
require 'application/libs/MysqliDb.php';
// start the application
$app = new Application();
?>

如果我删除所有代码并将session_start() 粘贴到第一行,我仍然会收到该错误。

我需要 UTF-8 来使用不同的字符集(而不是没有 BOM 的 UTF-8)

我知道这个错误可能是由&lt;?php和其他数据块之前的空格引起的,但它是干净的。

也许是因为.htaccess,但我不知道为什么......

Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

【问题讨论】:

  • 我认为en.wikipedia.org/wiki/Byte_order_mark 有问题,但如何解决?
  • 删除 BOM。任何体面的编辑器都可以让您在没有 BOM 的情况下保存文件
  • 谢谢,但是当我在没有 BOM 的情况下使用时,我会得到所有非拉丁字符,例如 аппва
  • 共享文件以便我们查看
  • 你在哪里看到这些字符?在 PHP 提供的渲染输出中?

标签: php .htaccess mod-rewrite encoding utf-8


【解决方案1】:

尝试关闭(暂时!)错误显示。

由于您需要文件,因此它们的代码会在运行前评估,并且任何警告都会在您的第一个输出之前出现,从而产生您所看到的错误。这与您将会话开始的位置无关。

也:删除结束标签。它什么都不做,而且容易出错。

error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED );
ini_set('display_errors', 'off'); 
session_start();

【讨论】:

  • 谢谢,现在&lt;?php error_reporting(E_ALL); session_start(); 仍然出现错误:(
  • ini_set('display_errors', 'off'); session_start();
  • 关闭错误显示不是解决办法。
  • 不,不是解决方案。这是寻找错误来自何处的一步。您是否希望我只是猜测六个要求中的哪个错误?我受宠若惊。
  • 如果不是解决方案,请不要将其发布为答案,因为它确实不是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 2013-05-07
  • 2016-08-31
  • 2012-08-02
  • 1970-01-01
  • 2019-09-12
相关资源
最近更新 更多