1

私はいくつかのレポートを作成しています私のコードはローカルホストで正常に動作しますが、サーバーでエラーが発生します、これを修正するにはどうすればよいですか...

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /localhost/prepare.php:1) in /localhost/prepare.php on line 2
Unable to stream pdf: headers already sent

ここにprepare.phpがあります

<?php
session_start();
if(isset($_SESSION['usercode']) && isset($_GET['id']))
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://localhost/report/formats/'.$_GET['id'].'.php?id='.$_SESSION['usercode']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    $st = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    $my_html = curl_exec($ch);
    if($st==200)
       $my_html="Oops! Something went wrong...$st";
    curl_close($ch);

    require_once("./domppdf/dompdf_config.inc.php");
    $dompdf = new DOMPDF();
    $dompdf->load_html($my_html);
    $dompdf->render();
    $dompdf->stream("report.pdf", array('Attachment'=>'0'));
}
?>
4

1 に答える 1

2

このエラーは、セッションを開始する前にユーザークライアント(ブラウザ)に何でも出力したために表示されます。

あなたのコードから判断すると、それは「バイトオーダーマスク」(BOMとも呼ばれる)であると私は信じています。これは通常、マルチバイト記号の最初のバイトがMSBかLSBかを判断するために使用されます。

このコードは、それをサポートするテキストエディタでは表示されず、サポートしない場合は疑問符の付いたひし形で表示されます。

BOMが有効になっているかどうかわからない場合は、16進エディタでソースファイルを開いて、最初の文字が有効になっているかどうかを確認してください<?php

優れたテキストエディタを使用すると、エンコーディングを選択できます。UTF8 without BOM良い選択でありNotepad++、私の意見では良い編集者です。

于 2013-03-25T20:21:12.437 に答える