|
|
|
| подскажите пожалуйста, почему у меня при обновлении страницы $count увеличивается и в session_save_path создаётся новый файл сесии, хотя 3 минуты ещё не прошло? Есть ещё одна проблема файл с подсчётом кол-ва посетителей подключается через include, так вот те странички, которые находятся непосредственно в корневой диретории, с ними всё ок, а если переходить на уровень ниже, к примеру на http://example.com/search/index.php, то вылетают ошибки:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/my_site/search/index.php:10) in /var/www/my_site/inc_links.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/my_site/search/index.php:10) in /var/www/my_site/inc_links.php on line 3
Скажу сразу, что лишних пробелов у меня нет, иначе бы и на страницах в корневой директории ничего не работало.
Вот код подсчёта юзеров:
<?php
session_save_path('/var/www/tmp');
session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers(){
if ($directory_handle = opendir(session_save_path())){
$count = 0;
while (false !== ($file = readdir($directory_handle))){
if($file != '.' && $file != '..'){
if(time()- fileatime(session_save_path() . "/" . $file) < MAX_IDLE_TIME * 60) { $count++; }
}
}
closedir($directory_handle);
return $count;
}
else
return false;
}
?>
|
| |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 06:05)
| | Скажу сразу, что лишних пробелов у меня нет
Сразу скажу, вывод в браузер до заголовков имеет место быть)
Сразу спрошу, в какой кодировке у вас файлы? | |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 06:05)
| | при чем тут пробелы? что у Вас происходит на 1...10-й строках файла search/index.php ? | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2009 в 09:06)
| | Происходит вывод, но это не фиксит ошибку, если делать include на первой строке. Собственно говоря в корневой диретории почти все файлы подключают инклуды где-то в середине, тобишь там тоже вывод до инклуда, но всё работает, почему?
Файлы в "windows-1251". А почему может увеличиваться$count? | |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 11:13)
| | все файлы подключают инклуды где-то в середине, тобишь там тоже вывод до инклуда, но всё работает, почему?
В этих файлах случайно чего-нибудь типо ob_start()? | |
|
|
|
|
|
|
|
для: Valick
(19.02.2009 в 12:36)
| | Нет ob_start(); там нигде нету. И вообще может проще будет сделать всё через БД и не парить себе мозг? | |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 13:34)
| | оно может быть в php.ini в виде строки Output_buffering | |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 11:13)
| | >Происходит вывод, но это не фиксит ошибку, если делать include на первой строке.
Как выглядит сообщение об ошибке, если include находится на первой строке?
>Собственно говоря в корневой диретории почти все файлы подключают инклуды где-то в
>середине, тобишь там тоже вывод до инклуда, но всё работает, почему?
Разметка может скрывать вывод ошибки, если у вас не включена буферизация и вы пытаетесь отослать HTTP-заголовки после вывода в окно бразуера - всегда генерируется ошибка. | |
|
|
|
|
|
|
|
для: Keyses
(19.02.2009 в 06:05)
| | Всем спасибо. Решил не мучаться и прибегнуть к использованию БД | |
|
|
|