Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Список посетителей OnLine
 
 автор: diman   (12.07.2007 в 11:58)   письмо автору
 
 

Добрый день.
Вы разместили у себя в примерах PHP выше названную тему. Разобрался с этим скриптом. Очень простенько конечно, удобно. Но есть одно но....
Закачал себе на сайт, пробую... У меня есть ссылка на вход и выход пользователя. Так вот, когда юзер нажимает на выход, то у меня происходит очищение сессий. Теперь что происходит. Значит сессии очистились, юзер снова находится на главной странице и ему присваевается новый номер в сессиях. Получается так. И если я вхожу несколько раз, то у меня несколько раз будет писаться слово "Гость" (вставил вместо аноним). Они естественно исчезнут, но только через 20 мин. А если я несколько раз нажму выход, то несколь гостей будет. Хотя нахожусь то я один. Наверное стоит проверить еще на ip самого компьютера? Как вы думаете?

   
 
 автор: cheops   (12.07.2007 в 12:03)   письмо автору
 
   для: diman   (12.07.2007 в 11:58)
 

IP-адрес не очень надёжно... если сессии очищаются, тогда лучше использовать свои собственные уникальные идентификаторы и хранить их в отдельной cookie или использовать именнованные сессии.

   
 
 автор: diman   (12.07.2007 в 13:09)   письмо автору
 
   для: cheops   (12.07.2007 в 12:03)
 

В главном файле вызываю файл содержащий регистрацию сессий


// Временная регистрация пользователей в сессиях
  include ("user/reg_session.php");


Затем создаю уникальную сессию
 
// Создаем уникальную id сессию
  // Нужна будет для проверки в случаи очистки сессии,
  // т. е. если сессия была очищена, то создается новая.
  // А человек-то сидит за одним компьютером!!!
  $id_old_session=$id_session;


Далее в самом файле регистрации сессий reg_session.php немного изменил условие

// Проверяем, присутствует ли такой id в базе данных 
  $query = "SELECT * FROM session 
                    WHERE id_session = '$id_session' or id_session='$id_old_session'";


Проблема осталась прежней. Я понимаю что, что-то я не так делаю, где-то не туда прописываю, но не могу сообразить. Помогите пожалуйста, а то нахожусь то на одном компьютере, а показывает как буд-то уже куча гостей на сайте.

   
 
 автор: Diman   (18.07.2007 в 09:41)   письмо автору
 
   для: diman   (12.07.2007 в 13:09)
 

Мне кто-нибудь поможет с этим или нет?

   
 
 автор: Trianon   (18.07.2007 в 10:18)   письмо автору
 
   для: diman   (12.07.2007 в 13:09)
 

Есть разница между компьютером и человеком.

Для корпоративных интрасетей эта разница доводит соотношение до тысяч посетителей с одного компьютера (прокси)
Для провайдеров-операторов мобильных сетей счет идет на сотни тысяч а то и миллионы.
Но даже с обычного домашнего компьютера в сеть могут выйти разные люди. Муж и жена к примеру.

Единственным корректным способом идентифицировать чей-то сеанс является применение cookie.

Если Вы завершили сеанс, как гость (т.е. не авторизовавшись в системе) - следующий гость будет считаться новым посетителем совершенно заслуженно. У системы нет никаких причин считать его кем-то еще.

   
 
 автор: Diman   (18.07.2007 в 10:25)   письмо автору
 
   для: Trianon   (18.07.2007 в 10:18)
 

Я с cooke не работал еще. Можете описать как это сделать?

   
 
 автор: Trianon   (18.07.2007 в 12:13)   письмо автору
 
   для: Diman   (18.07.2007 в 10:25)
 

setcookie()
Cookies в местном учебнике
Правда, учебник излагает материал большей частью в стиле register_globals .
Не стоит его копировать в этом плане - для обращения к кукисам пользуйтесь суперглобальным массивом $_COOKIE[]:

setcookie("mycookie", "Woof!");

...
echo $_COOKIE['mycookie'];

   
 
 автор: kasmanaft   (18.07.2007 в 10:33)   письмо автору
 
   для: diman   (12.07.2007 в 11:58)
 

А вы при входе сбрасывайте страрую сессию...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования