есть
session_start(); $_SESSION['last']="last"; $_SESSION['new']="new"; как распечать на экране заведенные сессии если я незнаю названий их элементов в массиве?? т.е. на экране должно быть: last new вариант с echo $_SESSION[0].$_SESSION[1] не проходит((( подскажите плз |
Мне почему-то кажется, что это должно тебе помочь:
foreach ($_SESSION as $key => $value) echo "Key: $key; Value: $value<br />\n"; |
не, не помогло:)
идея такая, я хотел сделать мониторинг тех кто присутствует из зарегиинных на сайте. т.е. для каждого авторизированого: session_start(); $_SESSION['nick']="индивидуальный ник или логин"; а на другой страничке я хотел сделать чтото типа печать всех $_SESSION['nick'] которые заведены в течении 24 минут. П.С. 24 минуты, это значение по умолчанию столько максимум хранится сессия после последнего отправления с браузера посетителя до сервера(проще говоря с момента последнего обновления) Добавлено: можно после session_start(); $_SESSION['nick']="индивидуальный ник или логин"; записывать $_SESSION['nick'] в файл и тогда получится файл имен тех кто на сайте. но как проследить когда ктото ушел с сайта, отключился от интернета и удалить его имя из файла?? |
Переменная $_SESSION уникальна для каждой сессии. В этом ее смысл. Ты не сможешь со своей отдельной страницы получить информацию о сессиях пользователей, находящихся на сайте. Долее того, если ты запустишь две копии браузера на своем компьютере, то для каждого из них будет создана своя переменная $_SESSION.
session.gc_maxlifetime о которой ты говоришь, это время, через которое сессия считается устаревшей, но это еще не значит, что информация о ней будет сразу же удалена с сервера. Это (уборка мусора) происходит периодически. Почитай о session.gc_probability и session.gc_divisor. Идея хранить список пользователей в файле хороша, но спешу огорчить - не нова. В PHP есть готовый механизм для работы с сессиями, и ты движешься в правильном направлении. Все сессии всех пользователей (по умолчанию) сохраняются в отдельные файлы (можно организовать их хранение и в MySQL). Анализируя эти файлы ты как раз и можешь получить информацию о всех пользователях на твоем сайте. Вот только одно но: ты не можешь узнать (в общем случае) о том, что человек покинул сайт. Об этом можно судить лишь по времени его бездействия (и соответственно, по времени последнего изменения его файла сессии на диске). Если организовать хранениее сессий в БД, то, как мне кажется, информацию об активности пользователей можно будет извлекать быстрее и удобнее. [s]Исправлено: Oaxa, 23:27 23-10-2004[/s] |
Код:
о которой ты говоришь, это время, через которое сессия считается устаревшей, Код:
Все сессии всех пользователей (по умолчанию) сохраняются в отдельные файлы (можно организовать а разве программно не хранится ни в какой переменной все переменные для каждого пользователя SESSION ? разве нет глобального массива?(( [s]Исправлено: FADE, 23:35 23-10-2004[/s] |
FADE
Цитата:
Цитата:
Цитата:
Цитата:
оффтопик: Оверквотинг оверквотинга оверквотингом не является [s]Исправлено: Oaxa, 0:02 24-10-2004[/s] |
Oaxa
а все, понял почему у меня нет папки tmp, я в ини файле не раскоментировал строку ;session.save_path = /tmp а вот в папке с пхп, есть какаето папка sessiondata там тоже какието сессии хранятся, там что? Добавлено: Код:
Уборка мусора (удаение устаревших файлов сессий) |
FADE
Цитата:
Цитата:
Я бы решал эту задачу так (вариант с MySQL не рассматриваю): я бы читал содержимое папки /temp, выбирал бы из нее файлы сессий, смотрел бы время последнего изменения этих файлов, выбирал бы только те, которые были изменены за последние 24 минуты (или 5 минут, или 10) и дальше читал бы из них имена пользователей. Если файл был изменен за последние 24 минуты, значит пользователь на сайте проявлял какую-то активность и с большой степенью вероятности можно предполагать, что он на сайте. |
все файлы в папке sessiondata весят 0 кб а названия их - сесии.
откуда читать имя сессии? а хостер всегда разрешает доступ к этой папки из скрипта на сайте? |
FADE
Цитата:
В в файле .htaccess укажи примерно следующую директиву: Код:
php_value session.save_path = "/path/to/sessions" Вау! Я получил Junior Member [s]Исправлено: Oaxa, 19:40 24-10-2004[/s] |
Время: 06:44. |
Время: 06:44.
© OSzone.net 2001-