私はオンラインの訪問者とメンバーの数を取得するために、次のコードを持っている:ヘッダーは既に送信されました...なぜ私のコードが機能していませんか?
session_save_path($_SERVER['DOCUMENT_ROOT'] . '/sessions/' . (isset($_COOKIE['uid']) ? "members/" : "guests/"));
if(isset($_COOKIE['uid'])){
session_id($_COOKIE['uid']);
}
session_start();
define("MAX_IDLE_TIME", 15);
$online_guests = 0;
$directory = opendir($_SERVER['DOCUMENT_ROOT'] . '/sessions/guests/');
while(false !== ($file = readdir($directory))){
$online_guests++;
}
$online_guests -= 2;
$online_members = array();
$directory = opendir($_SERVER['DOCUMENT_ROOT'] . '/sessions/members/');
while(false !== ($file = readdir($directory))){
if($file != '.' && $file != '..'){
$online_members[] = intval(substr($file,5));
}
}
私はWAMPサーバからのコードをテストし、それが働いていたが、私は私のホストにコードをアップロードするとき、それは私に次のようになりますエラー:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/csabi/public_html/index.php:9) in /home/csabi/public_html/track-online-users.php on line 6
はい、あなたは正しいです!ありがとう! index.phpファイルでは、track-online-usersはページタイトルの後にのみ含まれていました。 – Csabi
しかしもう1つの質問があります。なぜ、同じスクリプトがWampサーバーのコンピュータから働いていたのですか? – Csabi
@user:あなた自身のサーバーは常に出力バッファリングを使用するように設定されているかもしれません。設定を確認してください。 –