Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Прибавление номера каждого нового пользователя к предыдущим гостям

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Dubru
Отправлено: 11 Февраля, 2016 - 13:38:11
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Здравствуйте, любезно прошу помощи, в вопросе логики построения кода на php.
Буквально еще вчера, начал изучать язык, поставил задачу и очень хочется ее решить.
Возможно, я совсем не туда копаю, но у меня появляются мысли, что это связанно с сессиями или куками.

Предположим, на главной страницы сайта есть <див>. При клике по диву...(таблице)(окошке)(тексту) открывается страница с указанием номера этого объекта, по умолчанию объект(див) имеет в памяти цифру 25.
При клике по диву, переходу на новую страницу, НОВОМУ пользователю присваивается число 1, 2,3...25, в зависимости от того, сколько посетителей до этого кликнуло на див.
За 1 час, НОВЫЙ пользователь может получить только одно число.

Например так. Каждый 500 посетитель видит фразу: КУРИ КУКИ!!КУРИИ КУУУУУУКИИ!
Но Я, зашел 15, и вижу фразу: КУРИ СЕССИИИИ!!
И даже если Я, на протяжении часа, буду пытаться перезаходить в див(кликать заного на него) у меня будет присвоен все равно номер 15. После часа все обновляется(обнуляется).

Див имеет значение 100. На див нажимают одновременно 100 человек, и тот самый сотый, получает возможность увидеть какой либо "секс" или так как душе угодно.


Огромная просьба, подскажите в какую сторону копать. Спасибо!
 
 Top
Dubru
Отправлено: 12 Февраля, 2016 - 11:56:44
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Друзья, кто нибудь может мне помочь в решении проблемы? Натолкнуть на мысль. Очень нуждаюсь в вашей помощи.
 
 Top
TuX560
Отправлено: 12 Февраля, 2016 - 12:13:18
Post Id


Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015  


Помог: 3 раз(а)




Мне не совсем ясен Ваш вопрос(возможно потому что сам не так давно взялся за php)

Сам счетчик естественно должен быть где-то на сервере(бд/файл/memcached/и тд) и инкриментиться в случаи уникальности пользователя

Хотите защититься от накрутки? Думать в сторону регистрации ip у себя в бд и при поступлении запросов смотреть новый ип или уже был. Так же можно рассмотреть другие методы регистрации уникальных обращений.

Хотите чтоб пользователь всегда видел свой номер - запихнуть в куки и выводить.

Нужна ротация(1 раз в час) - каждый час чистить бд с уже обработанными ip
 
 Top
Dubru
Отправлено: 12 Февраля, 2016 - 12:23:09
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




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

Попробую выразиться иначе. В любом случае спасибо за ответ.

Скажем я продаю новый системный блок, за 12000 рублей, я хочу, чтобы каждый 10 пользователь получал скидку 50% на системный блок, для того, чтобы получить скидку, нужно всего лишь вовремя зайти на страницу с инфой о системном блоке.

Акция проводиться каждый час. Суть в том, чтобы каждый десятый, двадцатый или сотый пользователь видел сообщение о скидке в 50%, остальные же пользователи видели свой номер, например вы, зашли 15, и на протяжении всего часа вы видите надпись.
"Ваш уникальный номер 15". Попробуйте через час.
Абсолютно не важно сколько пользователей зайдут на страницу (каждому даётся номер), но получить скрытую инфу может только определенный.
 
 Top
TuX560
Отправлено: 12 Февраля, 2016 - 12:37:22
Post Id


Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015  


Помог: 3 раз(а)




Dubru пишет:
TuX560, спасибо, я уже думал о том, чтобы записывать в бд. пугает количество записей, если таких счетчиков миллион, и на каждый ежеминутно заходят по сто тысяч человек. База рухнет Недовольство, огорчение

Ну зачем так сразу) естественно все зависит от конкретной ситуации, да и сложно представить зачем вам миллион счетчиков которые будут инкриментить тысячи уникальных людей. Кроме БД есть и другие варианты хранения при таких нагрузках(memcached/redis сам пока не пользовался)


Dubru пишет:
Скажем я продаю новый системный блок, за 12000 рублей, я хочу, чтобы каждый 10 пользователь получал скидку 50% на системный блок, для того, чтобы получить скидку, нужно всего лишь вовремя зайти на страницу с инфой о системном блоке.

Акция проводиться каждый час. Суть в том, чтобы каждый десятый, двадцатый или сотый пользователь видел сообщение о скидке в 50%, остальные же пользователи видели свой номер, например вы, зашли 15, и на протяжении всего часа вы видите надпись.
"Ваш уникальный номер 15". Попробуйте через час.
Абсолютно не важно сколько пользователей зайдут на страницу (каждому даётся номер), но получить скрытую инфу может только определенный.

Описал свою идею в предыдущем посте, единственное кто по умнее может и через прокси(можно попробовать резать прокси по заголовкам), или свой ip сменить(у многих динамические ip) Следовательно если критично продумывать подходящий уровень защиты для конкретного случая, универсальный метод(если он существует) мне не известен
 
 Top
Dubru
Отправлено: 20 Февраля, 2016 - 12:35:31
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




сожалению совсем не получается сделать то, что нужно. И в инете не могу найти готовую функцию, чтобы проанализировать и разобраться, по сему, прошу помощи в написании. Кстати, понимаю, что конечно в нашем мире на тысячу, можно получить только презрение в магазине, но с огромным удовольствием отправлю 500 рублёв, на Qiwi или на баланс телефона, доброму другу, кто поможет разобраться в моём вопросе.
(прошлая тема http://forum.php.su/topic.php?forum=71&topic=18074)
Уж и туда копал и туда. Запутался. Тут же все просто Недовольство, огорчение А, я уже и не знаю..

Задача. Страничка Index.php состоит из блоков размером 9х5 см, Каждый блок, это отдельная страница. При клике на блок (div=1) открывалась страница именно этого блока.

Суть такая, на страничке есть кнопка. "Получить код товара". После нажатия на кнопку срабатывает таймер и выше кнопки появляются цифры, 5, 4, 3, 2, 1. Меняется название кнопки "Испытай удачу". А теперь суть, получить код товара может только каждый 100 посетитель, который в течении часа нажал на кнопку. Если, вы 50, 26, 15 и т.д, но не 100 посетитель вы видите надпись, "Ваш №26, Попробуйте снова через 1 час" и начинается отсчет времени, соответственно кнопка пропадает, и пользователь видит отсчет времени. Даже если браузер был закрыт, и открыт снова. (Куки, сессии и все такое)
Без возможности накрутки или обмана скрипта. Любезно прошу помощи и даю честное слово, что обязательно отправлю некий презент в виде суммы деньгов на мобилку или киви. Спасибо.
 
 Top
HiL
Отправлено: 21 Февраля, 2016 - 00:00:50
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Если пользователь у вас не авторизован, или ваши посетители не имеют постоянного ip.
Это реализовать без возможности накрутки(обмана) невозможно, сессию можно сбить закрытием браузера, куки можно удалить вручную.

Предложу такой вариант: пользователь вводит свой e-mail, и он заносится в БД, повторное введение е-mail блокируется, или устанавливается куки. И подписать данный сервис типа «в случае выигрыша вы будете проинформированы по е-mail» что бы писали настоящий e-mail.

Регистрировать новый e-mail уж всяко сложней чем сбить сессию или удалить куки.

Но мы же в России могут и 100 майлов зарегистрировать ради скидки. Как и аккаунтов у вас в системе.

Сделайте авторизацию через vk и отлавливайте id для записи в БД, сейчас вроде там нельзя зарегистрироваться без мобилы.(на мой взгляд самый надежный вариант)

(Отредактировано автором: 21 Февраля, 2016 - 03:12:45)

 
 Top
Dubru
Отправлено: 21 Февраля, 2016 - 06:28:52
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Попробую внести ясность. Спасибо всем... И так. Напоминаю каждый 100 пользователь получает скрытый код. И так. есть, 1 пользователь, 2, 3, и у каждого начинается остчет времени после нажатия на кнопку, после завершения отсчета, если за это время никто не зашел и не нажал, то после обнуления таймера мне присвоится номер 4. Соответственно, пользователь номер два, после завершения таймера снова кликает на кнопку и если за это время не появились другие, то присваивается следующий номер. 5. и т.д. НО! Если за это время! нашелся тот самый 100 пользователь, по истечению времени, когда появилась кнопка испытать удачу, мне присваевается номер заного. Например так: Я зашел на сайт, кликнул, мне говорят, вы сможете попробовать снова через 30:00, ваш номер 1, пока идет моё время на сайт зашёл тот самый сотый человек, у него появилось сообщение о призе после нажатия на кнопку, присвоился номер 100.и так же пошёл отсчёт. Далее, база обновилась, и за то время пока у 100 пользователя шло время, на сайт зашли люди, например 20 человек в блок, после истечения срока таймера, 100 человек (тот что выиграл) может снова нажать на кнопку, и он уже становится 21. ему присваевается номер и снова появляется таймер, что попробовать снова он может через 30:00.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB