Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2017
Помог: 0 раз(а)
Всем привет, может кто-нибудь детально объяснить работу сессий, а именно исходя из задачи:
Есть переменная которой с каждым запросом нового пользователя присваивается уникальное значение, назовём её $userid(с этим проблем нет), дальше создается сессия с этим уник $userid и будет храниться на сервере X времени, при повторном запросе пользователя идёт проверка записан ли этот $userid уже и сколько раз он уже обращался к запросу. Вариант с куками сразу отпадает ибо $userid передается через api, потому и нужно чтобы жизнь сессии хранилась на сервере. Я подозреваю, что решение где-то здесь:
if{$_SESSION["$userid"]<= 10){ еще работает }else{ уже не работает }
}
В случае с данным примером: не работает счетчик т.к. каждый новый запрос пользователя обновляет его, а нужно чтобы каждый новый запрос от одного и того же пользователя прибавлял единицу к счетчику, да и не уверен, что сессии присвоилась переменная $userid
Покинул форум
Сообщений всего: 39
Дата рег-ции: Март 2017 Откуда: Россия
Помог: 0 раз(а)
Frozel пишет:
Всем привет, может кто-нибудь детально объяснить работу сессий, а именно исходя из задачи:
Есть переменная которой с каждым запросом нового пользователя присваивается уникальное значение, назовём её $userid(с этим проблем нет), дальше создается сессия с этим уник $userid и будет храниться на сервере X времени, при повторном запросе пользователя идёт проверка записан ли этот $userid уже и сколько раз он уже обращался к запросу. Вариант с куками сразу отпадает ибо $userid передается через api, потому и нужно чтобы жизнь сессии хранилась на сервере. Я подозреваю, что решение где-то здесь:
if{$_SESSION["$userid"]<= 10){ еще работает }else{ уже не работает }
}
В случае с данным примером: не работает счетчик т.к. каждый новый запрос пользователя обновляет его, а нужно чтобы каждый новый запрос от одного и того же пользователя прибавлял единицу к счетчику, да и не уверен, что сессии присвоилась переменная $userid
Буду признателен за любую помощь
if($zapros == $4emuto) {
session_start();
++$_SESSION["$userid"];
if {$_SESSION["$userid"] <= 10) { еще работает } else { уже не работает }
}
Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2017
Помог: 0 раз(а)
Спасибо за примеры, но мне нужно именно решение по счетчику, чтобы сессии сохраняли значение. Насчет переменных: if($zapros == $4emuto) тут как раз проблем нет, написал лишь для наглядности и переименовал.
Строитель
Отправлено: 04 Апреля, 2017 - 07:21:50
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Frozel пишет:
Спасибо за примеры, но мне нужно именно решение по счетчику, чтобы сессии сохраняли значение. Насчет переменных: if($zapros == $4emuto) тут как раз проблем нет, написал лишь для наглядности и переименовал.
Я же вам дал решение - скопируйте код и посмотрите результат.
Frozel
Отправлено: 04 Апреля, 2017 - 11:41:55
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2017
Помог: 0 раз(а)
Строитель пишет:
Frozel пишет:
Спасибо за примеры, но мне нужно именно решение по счетчику, чтобы сессии сохраняли значение. Насчет переменных: if($zapros == $4emuto) тут как раз проблем нет, написал лишь для наглядности и переименовал.
Я же вам дал решение - скопируйте код и посмотрите результат.
Решение не актуально потому, что счетчику не присуждается переменная с id пользователя($userid), соответственно при каждом новом запросе счетчик присуждает "кому-то" единицу и всё. Такие варианты как: $_SESSION["$userid"]; или $_SESSION['cnt'] = $userid; просто записывают ид и счетчик перестает работать.
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Frozel, видимо вы абсолютно не знакомы с механизмом работы сессий.
И всё же - скопируйте код, и пообновляйте страницу в РАЗНЫХ браузерах - счётчик будет считать переходы для каждого браузера отдельно.
Frozel
Отправлено: 04 Апреля, 2017 - 17:44:39
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2017
Помог: 0 раз(а)
Строитель пишет:
Frozel, видимо вы абсолютно не знакомы с механизмом работы сессий.
И всё же - скопируйте код, и пообновляйте страницу в РАЗНЫХ браузерах - счётчик будет считать переходы для каждого браузера отдельно.
Видимо вы абсолютно не понимаете механизма взаимодействия с сессией, а переписав условие if else сокращенным вариантом - вы не решили проблему. Нужно чтобы к сессии присваилась переменная полученная через api и у неё был счетчик, с переменной проблем - нет, с записью ее как идентификатор сессии - да(см.выше). Более того, я вам сообщу, что пользователь не переходит ни на какую страницу, слово api здесь не просто так использовано, если интересно, то почитайте документацию vk api. Так или иначе спасибо за попытку.
Я уже нашел иное решение этой задачи, но, если у кого-то имеются идеи по реализации с сессиями, то буду рад.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.