-1

globals.phpサイトのすべてのファイルにファイルが含まれています。CSSこのファイルにファイルを含めたいと思いますglobals.css

問題は、CSS を追加しglobals.phpてすべてのファイルに含めると、次のようなエラーが発生することです。

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent (output started at /...)
in /... on line 4

または使用するとき

header('Location: ....');

ob_start同じファイルの先頭globals.phpと末尾で使用するよりも適切な解決策はありob_end_flushますか、またはこの方法は正しい操作方法ですか?

globals.php

<?php
ob_start();

//some costants and functions
?>

<head>
    <link href="/css/globals.css" rel="stylesheet" type="text/css">
</head>

<?php
    ob_end_flush();
?>
4

2 に答える 2

2

グローバルスクリプトの最後でバッファをフラッシュし、バッファリングをオフにしているので、次のようなものがある場合

header('...'); // this will work, no output yet
include('globals.php'); // flushes buffers, stops buffering, starts output
header('...'); // fails with "headers already send"

グローバルファイルをインクルードした後に header() 呼び出しを行っている場合、グローバルはバッファをフラッシュしてはなりません。

于 2013-07-29T15:26:46.503 に答える
0

session_startセッションを使用している場合は、他のことを行う前に必ず呼び出してください。session_startこのエラー メッセージは、既に何らかの出力やその他の操作を行った後に呼び出そうとしていることを意味します。

于 2013-07-29T15:25:20.307 に答える