2011-09-17 22 views
3

私は2つの共有ホストを持っています。 私の問題はsession_start()を呼び出すことで実現します。 私のlocalhostと私の共有ホストにあります。セッションの開始は次のようなユーザの注意をうまく使います:ヘッダを呼び出せません。その後、私は以下のコードを記述するために使用:session_start()を呼び出すための適切な方法

<?php 
if(! isset($_SESSION)){ 
session_start() 
} 
?> 

をしかし「のお知らせは:セッションを開始することはできません()...」という別のホストでは、それはまだエコーメッセージも 私の問題、そのセッションではなく開始を行います最初の訪問で。ブラウザウィンドウを再度リフレッシュすると、セッションが開始されます。クライアントとサーバー側の関係は?何が私のsession_start()で間違っていますか?私を助けてください。

誰も私には決して失敗しないsession_start()を呼び出すための適切な方法を教えてください。私はどこで呼び出すべきですか?ページの最上部または設定ファイルのどこにでも置くことができます。少しの例が私を確実に助けます。

+1

エラーの完全な出力は何ですか?あなたのスクリプトはsession_start()の前にすでにデータを送信しているようです。 – Tom

答えて

8

2つの単純なもの:

1.常に無条件session_startを呼び出します。

2.ページに何かを出力する前に、常にsession_startに電話してください。

だから、あなたはこのようにそれを実行する必要があります。例えば、特に、

<?php 
session_start(); 

// and now anything else 

あなたは、多くの異なる方法でディレクティブ#2に違反する可能性があることに注意してください:

  • 明示的<?phpタグ
  • は、上記

を行う他のスクリプトをInlcuding前に、あなたのPHPスクリプト内のすべてので任意の文字を持つ

  • などechoを自分で何かを印刷しますここにlots and lots of questionsがあり、それはポイント#2を説明し、それを解決する方法です。

  • +0

    セッション変数を変更する予定がなく、セッション管理システムがファイルベースの場合、session_write_close(); – Ishmael

    関連する問題