16

重複の可能性:
すでに開始されている PHP セッション

同じコードを使用して、Windows と Mac で PHP プロジェクトを実行しました。しかし、Mac ではなく Windows でプロジェクトを実行すると、このエラーが発生しました。

エラーメッセージは

A session had already been started - ignoring session_start()

これは、Windows システムにのみ付属しています。しかし、Mac ではエラー メッセージは表示されませんでした。誰か解決策を教えてください.....

4

4 に答える 4

44

小切手でセッションを開始すると言いました:

if(!isset($_SESSION)){
    session_start();
}

実際、$_SESSION は常に存在し、何かを入れていない場合は常に空になるため、ステートメントは常に true を返します。

于 2012-12-07T10:10:31.953 に答える
5

このメッセージはE_NOTICEです。Windowsマシンでのみ表示される理由は、error_reporting設定が異なるためである可能性があります。

検索php.iniする場合は、表示したくない場合error_reportingは除外する必要があります。E_NOTICE

または、セッションを複数回開始しないようにコードを修正します。理想的には、セッションを開始するコアコードファイルは1つだけで、他のインスタンスはありsession_start()ません(つまり、各ページに配置しないでください)。次に、これを各ページに含めるか、初期化コードが各ページロードで確実に呼び出されるようにするルーティングパターンを作成できます。

于 2012-12-07T10:05:48.637 に答える
5

Windowsがエラーを表示し、Macが表示しない理由がわかりませんでした。the session_start()しかし、あなたはすべてを置き換えることを試みることができます

if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 

これはあなたを助けるかもしれません..

于 2012-12-07T08:30:15.887 に答える
0

php.ini(http://php.net/session.auto-start)のsession.auto_startを見てください。おそらく、セッションは自動的に開始されます。

于 2012-12-07T08:11:50.187 に答える