1

写真に示すように、次の警告メッセージが表示されました。これは、追加のセッション変数(session_start)が追加されたためと思われるため、その警告を非表示にする必要があります。 ここに画像の説明を入力してください

実際、ユーザーセッションを取得するために最初にセッションを提供しなかったが、提供されなかった場合、セッションは設定されませんが、追加されると警告が表示されます。何が問題になるのでしょうか?

コード:

    <?php
    session_start();
    include("connect/config1.php");
?>
4

2 に答える 2

4

session_start()ドキュメントの先頭に配置する必要があります。この呼び出しの前に出力がない必要があります。

メッセージを非表示にしても問題は解決しません。

警告のみを非表示にする場合:

<?php
ini_set('error_reporting', 0);
ini_set('display_errors', 0);
?>

fullsearch.phpを見てください。おそらく、先頭(前<?php)に空白行があります。それを除く。

于 2012-09-05T12:20:20.117 に答える
2

開発環境で警告を隠そうとしないでください。警告はバグを探すのに非常に役立ちます。たとえば、この特定の警告がないと、セッション関連のヘッダーが実際に送信されなかった理由(つまり、セッションが機能しない理由)がわからない可能性があります。

代わりに表示される警告の理由を削除してください。この特定の警告は、おそらく、信頼できる<?phpコード区切り文字の前を這う不正な空白が原因です。つまり、サーバーはすでにクライアントに何かを出力し始めていますが、ヘッダーの送信に戻ってもらいたいということです...

したがって、ファイルをチェックして、呼び出される前にもエコーされていないことを確認してください。この議論はおそらく非常に役立つでしょう。)。session_start()

アップデート:

実際、質問で引用したコードには、非常に明確に示されています。

   <?php
    session_start();
    include("connect/config1.php");
?>

ここで<?phpは、前に空白があります。つまり、サーバーは実際にこれらのシンボルを(HTTP応答本文で)送信し、その後、スクリプト自体の解析を開始します。しかし、その後、ヘッダーを送信するように指示されます-そして、この警告でファウルを叫びます。

解決策は簡単です。空白を削除します。このようにして、警告が消えるだけでなく、セッションも機能し始めます。)。

于 2012-09-05T12:24:26.607 に答える