Автор Тема: Сейчас на сайте  (Прочитано 8488 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Сейчас на сайте
« : 17 Марта 2005, 00:40:59 »
Привет всем.

У меня вот такая проблема. Написал, не без помощи советов данного форума, себе счетчик присутсвия людей на сайте в данную минуту.


<? 
$sid=session_id();
$time=time(); 
$past=time()-500
if (isset(
$_SESSION["username"])) $person=$_SESSION["username"];
else 
$person=0;
mysql_query("DELETE FROM we_online WHERE last_time < \'$past\'"); 
$result=mysql_query("SELECT last_time FROM we_online WHERE sess_id=\'$sid\'"); 
$rows=mysql_num_rows($result);
if (
$rows!="0"):
	
mysql_query("UPDATE we_online SET last_time=\'$time\' WHERE sess_id=\'$sid\'"); 
else:
	
mysql_query("INSERT INTO we_online (last_time,sess_id,ip,page,person) VALUES (\'$time\',\'$sid\',\'$REMOTE_ADDR\',\'$PHP_SELF\',\'$person\')");
endif;
mysql_query("OPTIMIZE TABLE we_online"); 

$online=mysql_query("select * from we_online order by person");
$guest=0;
echo \
'

<font class="sign" color="#cccccc">Сейчас на сайте: \'.mysql_num_rows($online).\' чел.
\';
for ($i=1; $i<=mysql_num_rows($online); $i++):
	
$o=mysql_fetch_array($online);
	
if ($o["person"]!=\'0\'):
	
	
echo $o["person"];
	
	
if (mysql_num_rows($online)!=1):
	
	
	
if (mysql_num_rows($online)!=$i) echo ", ";
	
	
endif;
	
else:
	
	
$guest=$guest+1;
	
endif;
endfor;
echo \'
Гости: \'.$guest.\' чел.</font>\';
?>


Проблема в том, что если заходит зарегинный пользователь, и открывает несколь страниц (IE 6.0), то у него каждый раз почему-то новый индефикатор сессии, поэтому и новая запись в бд. С гостями тоже самое.

Как мне от этого избавиться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #1 : 17 Марта 2005, 08:34:01 »
А нафига ж ты проверяешь зарегистрированного по сессии?

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Сейчас на сайте
« Ответ #2 : 17 Марта 2005, 21:12:14 »
А чем отличается зарегинный от незарегинного по факту присутствия?
Мне ведь надо знать кто сейчас на сайте в данную минуту. А не зарегин он или нет.
Да и вопрос был на другую тему.
В чем моя ошибка?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #3 : 18 Марта 2005, 09:06:41 »
в логике

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #4 : 18 Марта 2005, 09:08:07 »
чувак задаёт вопрос.
Цитировать
Проблема в том, что если заходит зарегинный пользователь, и открывает несколь страниц (IE 6.0), то у него каждый раз почему-то новый индефикатор сессии

чуваку на вопрос отвечают.
Чувака ответ не устраивает.
Чувак хочет все и сразу.

Нет проблем.
Не нравится хотя бы частичное решение задачи - ищи другое.
чудик

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #5 : 18 Марта 2005, 09:09:29 »
Цитировать
Rodent:
чем отличается зарегинный от незарегинного по факту присутствия?

тем, что ты его можешь однозначно идентифицировать

Оффлайн ferryman

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 117
  • +0/-0
  • 0
    • Просмотр профиля
    • http://svitlan.lutsk.ua/forum/
Сейчас на сайте
« Ответ #6 : 18 Марта 2005, 16:37:22 »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #7 : 18 Марта 2005, 18:17:27 »
О блин, и здесь сессии.
прямо без сессий шагу ступить нельзя

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Сейчас на сайте
« Ответ #8 : 18 Марта 2005, 19:31:42 »
RomikChef
я за все время пребывания на этом форуме от тебя ничего путного не услышал... одна критика... может может дашь совет или скажешь где ошибка в моем коде, или как сделать лучше?
если по данным вопросам у тебя ответа нет, то просьба свою желчь оставлять на других ветках форума.
Хотя нет лучше для себя сам создай тему и там ораторствуй.

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Сейчас на сайте
« Ответ #9 : 18 Марта 2005, 19:33:19 »
ferryman
У меня похожий код только с бд

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #10 : 18 Марта 2005, 20:07:32 »
Цитировать
Rodent:
может дашь совет

а это что?
Цитировать
RomikChef:
нафига ж ты проверяешь зарегистрированного по сессии?

тебе непонятно, что я имел в виду? переспроси
Цитировать
Rodent:
если по данным вопросам у тебя ответа нет

дурилка картонная.
Это для тебя - ВОПРОС
а для людей, у которых на плечах голова, а не табуретка - это детская задачка.
не позорься, считая, что твои проблемы вызывают хоть какое-то затруднение.
И не надо думать, что я не кормлю тебя с ложечки потому, что сам не знаю. Я просто хочу, чтобы ты сам хоть немного задумывался над своими проблемами.
И все. завязывай с оффтопиком.
Мне уже начали надоедать профессора кислых щей, которые берутся оценивать полезность моих ответов.
Оценивают они при этом только своё скудоумие.

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

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #11 : 18 Марта 2005, 20:10:42 »
Цитировать
Rodent:
ничего путного не услышал... одна критика

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

А здесь, на общедоступном форкме, я буду говорить то, что сочну нужным, даже если это не нравится твоей персоне и оскорбляет твое раздутое самолюбие

Оффлайн H2OP

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://defyscripts.com.ru
Сейчас на сайте
« Ответ #12 : 18 Марта 2005, 21:14:39 »
дак а как все-таки без сессий? куками что-ли?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сейчас на сайте
« Ответ #13 : 18 Марта 2005, 21:17:07 »
ip

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Сейчас на сайте
« Ответ #14 : 19 Марта 2005, 01:26:42 »
RomikChef
Ваша желчь тут прожигает все вокруг, ступить не куда, везде смердящие плевки.
Интересно, у тебя дети то есть? Ты их также поливаешь грязью перед тем как что-то путное сказать? Бедные...

Был поставлен вопрос, почему происходит данная ситуация с просьбой объяснить или указать на ошибку. И что же я получаю в ответ:
Цитировать

А нафига ж ты проверяешь зарегистрированного по сессии?

Мдя... ответил... спасибо ОГРОМНОЕ...

А про ip а что делать с dial-up. Запись храниться в бд 5 мин. Возможно ведь такая ситуация, что пользователь вылетел. а потом опять зашел, но под другим ip соотвественно, получается 1 пользователь две записи. но одно НО... она будет храниться всего 5 мин. хотя может и не стоит тогда так заморачиваться.

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28