1

私は現在、PHP と jQuery でゲームに取り組んでおり、ある時点で、jQuery の .load() を使用して PHP ページを div にロードする必要があります。そのページは、ログイン情報、アカウント ID などに基づいてプレーヤー情報をロードし、 内の配列に格納し$_SESSION["arrayname"]ます。

jQuery load() が使用されているサイトを除いて、すべてのサイトで完全に機能します。easyphpではエラーは発生しませんでしたが、私のWebホストサーバーでは次のようになりました:

警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - 6 行目の fr/game/map.php で既に送信されたヘッダー (/fr/game/map.php:1 で開始された出力)

これが私のコードです:

<?php
 require_once("../../connectionRO.inc.php");

//used to check if we see the array in session, and i dont when i load it with jquery
if(!ISSET($_SESSION["comptejeu"])) 
{
    require_once('../../classInfoCompte.php');
    session_start(); 
    require_once('../../lg.php');
    require_once("./glg.php");
}

$ic = new infoCompte;
    $ic = $_SESSION["comptejeu"];   
?>

この時点で、ページが読み込まれる前に、すでに多くのものがページに出力されていることを理解しています。クラスからオブジェクトを構築するために、その配列から必要な情報を取得するためのより良い方法を教えてもらえますか?

ありがとうございました。

4

2 に答える 2

1

このエラーがoutput started at /fr/game/map.php:1(注: 1行目) のように表示されるため<?php/fr/game/map.php.

<開始がファイルの最初の文字であることを確認してください。ファイルが UTF-8 の場合は、 BOMなしの UTF-8 であることを確認するか、ASCII に変換してください。

違う:

<?php

右:

<?php
于 2012-04-07T16:36:07.573 に答える
0

PHP ファイルに空白があるか、classInfoCompute.php に空白があるか、このファイルまたは classInfoCompute ファイルに出力をトリガーする関数/メソッド呼び出しがあります。セッションは Cookie に依存し、Cookie は HTTP ヘッダーに依存します。コンテンツが出力されると、ヘッダーは既に送信されており、新しいヘッダーを送信することはできません。

この問題をカバーするスタック オーバーフローに関する多くの質問と回答がありますが、要約すると、(出力バッファリングを使用して) じゅうたんの下で問題を一掃するか、適切に修正する (呼び出しの前にコンテンツが出力される原因を見つけることによって) のいずれかになります。 session_start を削除し、それを削除するか、スクリプトの後半に移動するか、session_start をスクリプトの前半に移動します)。

スクリプトに HTML と PHP が混在している場合は、session_start が HTML の最初のビットの前にあることを確認してください。そうしないと、余白を探す必要があります。ファイルが UTF-8 として保存されている場合、テキスト エディターによってファイルの先頭に不要なバイト オーダー マーク (BOM) が付加されている可能性があります。ファイルはコンテンツとして扱われ、クライアントへの出力をトリガーするため、ファイルが BOM なしで保存されていることを確認してください (出力の先頭に奇妙な文字が追加されます)。

于 2012-04-07T16:38:35.617 に答える