imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 25.06.2005, 22:47     # 1
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Question PHP, жуткие непонятки со счётчиком посещений

PHP код:
<?php 
  
// Счётчик посещения сайта
  // 07.04.2005

  
$counterfile=fopen('counter.txt','rw');
  
$usercount=fgets($counterfile);
  
$smarty->assign('cnt_num',$usercount);
  
fclose($counterfile);

  print(
$_SESSION['site_visited'].'<br>');
  print(isset(
$_SESSION['site_visited']).'<br>');
  
  if (!isset(
$_SESSION['site_visited']))
  {
    
$_SESSION['site_visited']=true;
    print(
'here i am');
    
$usercount=$usercount+1;
    
$counterfile=fopen('counter.txt','w');
    
fputs($counterfile,$usercount);
    
fclose($counterfile);
  }
  
  print(
$_SESSION['site_visited'].'<br>');
  print(isset(
$_SESSION['site_visited']).'<br>'); 
?>
Вывод:
Код:
1
1
1
1
Теперь самое интересное. Счётчик наращивается.

В чём может быть проблема?
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 00:38     # 2
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Цитата:
Sam Dark:
В чём может быть проблема?
А в чем, собственно, проблема? $_SESSION['site_visited'] установлена, условный блок в середине не выполняется, соответственно имеешь такой вывод. А наращивается за счет других сессий, в данной сессии никакого наращивания нет.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 26.06.2005, 01:27     # 3
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Так... Я запускаю это дело в Денвере на локальной машине из под Оперы. Когда хожу по разделам счётчик стоит, но когда начинаю усердно долбить f5 - наращивается.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 01:55     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
session_start()
RaZEr вне форума  
Старый 26.06.2005, 02:03     # 5
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Цитата:
Когда хожу по разделам счётчик стоит, но когда начинаю усердно долбить f5 - наращивается.
Куки разрешены? Я так понимаю, session id ты в линках не передаешь
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 26.06.2005, 02:07     # 6
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
session_start() имеется в файлах, в кот. инклудится этот.

Куки разрешены. SID в линках не передаю.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 02:11     # 7
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
session_start() имеется в файлах, в кот. инклудится этот.
Где-нибудь используешь session_register()?
RaZEr вне форума  
Старый 26.06.2005, 11:23     # 8
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Нет.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 12:19     # 9
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Код что выше отдельно запускал?
RaZEr вне форума  
Старый 26.06.2005, 14:10     # 10
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Подредактировал немного. Запустил отдельно.

PHP код:
<?php 
  
// Счётчик посещения сайта
  // 07.04.2005
  
  
session_start();
  
  require_once(
'f_log.php');
  
$counterfile=fopen('counter.txt','rw');
  
$usercount=fgets($counterfile);
  
//$smarty->assign('cnt_num',$usercount);
  
print($usercount);
  
fclose($counterfile);

  
/*print($_SESSION['site_visited'].'<br>');
  print(isset($_SESSION['site_visited']).'<br>');*/
  
  
if (!isset($_SESSION['site_visited']))
  {
    
$_SESSION['site_visited']=true;
    
    
$usercount=$usercount+1;
    
$counterfile=fopen('counter.txt','w');
    
fputs($counterfile,$usercount);
    
fclose($counterfile);
    
//writelog('Посетитель.','usr');
  
}
  
  
/*print($_SESSION['site_visited'].'<br>');
  print(isset($_SESSION['site_visited']).'<br>');*/
  
?>
Усиленно давил f5. Счётчик добедал до 12 и остановился. Я в шоке.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 15:15     # 11
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Специально проверил у себя, скопировав твой код - работает без проблем. Сначала открыл - показал 1 и остановился, по F5 не увеличиваясь. Убил сессию, обновил - увеличился на 1.
Так что ищи проблемы в другом месте. Сделай вывод session id и посмотри, одна ли у тебя все время сессия.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 26.06.2005, 16:40     # 12
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Сессия одна, но в Опере по прежнему каким-то образом наращивается счётчик. С ie и ff всё отлично. Самое весёлое то, что если сраз после наращивания вставить вывод какой-нибудь строчки, то она не выводится. Как тогда наращивается счётчик???

p.s. на require_once('f_log.php'); не грешить - без неё так же.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 16:46     # 13
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Добавляй с адресу скрипта левые строки, вроде "&rand=shkjdshk".
RaZEr вне форума  
Старый 26.06.2005, 18:23     # 14
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Не помогает.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 18:47     # 15
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
По симптомам похоже на кэш. У тебя нет никаких расширений вроде turck mmcache, eaccelerator и т.д.?

Попробуй дописать перед: "if (!isset($_SESSION['site_visited']))" строки:

echo 'time is '.time();
var_dump($_SESSION['site_visited']);

Что выдаёт?
RaZEr вне форума  
Старый 26.06.2005, 19:55     # 16
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
time is 1119801469bool(true)
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 26.06.2005, 20:00     # 17
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
время меняется, когда F5 нажимаешь? инкремент в файле растёт?
RaZEr вне форума  
Старый 26.06.2005, 20:53     # 18
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Всё так. Время меняется, инкремент растёт. Но как он растёт, если нифига не вызывается?
__________________
Это жжжж неспроста...
Sam Dark вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:00.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.