1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

Проверка на корисник во база [brainstorming]

Дискусија во форумот 'Останати' започната од Fatal1ty_, 6 Февруари 2020.

  1. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Дечки ми требаат идеи за најдобро решавање на следниов проблем.
    Моментално во база имам три колони
    ID News_ID Hash
    1, 3, 982bb637309b5d01c18c09d4e5b5f6d1

    И запишува ип од корисникот (енкриптиран) кога ќе кликне на некоја статија и со тоа пресмету кликови на истата.

    Одкако ќе кликне на статијата, проверув дали ип-то (hash) постои за тоа ИД на артиклот, ако пости не го запишува уште еднаш (не брои клик), ако не посои го запишува и го брои како клик.

    Е сеа добив репорт дека со промена на динамички ип, следиот корисник кој ќе ја добие истат ип не му се рачуна кликот....

    Прашањето ми е што би било најпаметно да зачувува во база за да може секој клик од секој корисник само еднаш да се пресметува.
    Јас мислев ип+дата, но динамичка ип се менува и после дисконекција што значи дека во ист ден може двајца корисници да ја добијат истата, и во тој случај кликот од вториот кориник нема да се рачуна. (час,минута,секунда) не ми е решени пошто така ќе пресметува кликови од иста ип на секоја секунда, бидејќи секоја ќе биде различна од претходната.

    корситам php како програмски јазик.


    Фала.
     
  2. Feelyo

    Feelyo
    Gaining Experience

    65
    60
    2 Април 2017
    Машко
    А дали ти е во можност користење на cookie?
     
  3. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    да мие, но ми требаат информации од корисиниците, подоцна ќе треба да развивам и логови, па затоа, сакам да зимаам информации од корисниците, за да можам да ги анализирам подоцна во логови.
     
  4. bxxxn

    bxxxn
    Practice makes perfect

    1,072
    1,182
    11 Март 2011
    А зошто бројачот ти се базира на IP адреса, доколку узерот има уникатно ID. Т.е. клик каунтот нека се базира на user ID, а IP адресата нека ја чува во друга колона за некоја идна анализа.
     
  5. Frozen.

    Frozen.
    Gaining Experience

    105
    104
    4 oктомври 2015
    Машко
    Можда во комбинација со IP/HTTP_USER_AGENT ама пак не е идеално. До душа ако некој од дома влезе од два уреди телефон/PC би требало да рачуна како два клика пошто реално се две нови отворања од различни уреди, а исто IP.
     
  6. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    АКо има ID не е проблем, но има и не регистрирани корисници за кои ID-то ќе биде 0, и тука има проблем....
     
    На martinmax и bxxxn им се допаѓа ова.
  7. bxxxn

    bxxxn
    Practice makes perfect

    1,072
    1,182
    11 Март 2011
    if / then решение :)

    - Ако има user ID, тогаш број го според ID-то,
    - Во спротивно (нерегистриран) според IP-то (плус нешто уникатно како број на сесија) но не повеќе од 3 исти IP за 24 часа
     
  8. P.Overdrive

    P.Overdrive
    Gaining Experience

    453
    495
    23 Јуни 2010
    Замени ја проверката по IP со browser fingerprint (библиотека по избор во зависност од јазикот кој го користиш).

    Пр.: Valve/fingerprintjs2
     
    bxxxn, Fatal1ty_, Frozen. и на уште 1 им се допаѓа ова.
  9. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Делува како светло на крајот на тунелот.
     
    На Oktar му/ѝ се допаѓа ова.
  10. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    update

    Вака ќе го решам. Во база ќе ги запишува истоте податоци како и до сега, а проверката ќе ја правам преку cookie. Значи на прв клик во cookie ќе регистрира вредност и плус во база ќе напраи запис, додека не истечат cookies во база нема да регистрира нови записи. На овој начи од база ќе брои уникатни кликови на секој артикл, а од cookie ќе ограничам запишувања. на овој начин од иста ип ќе може да има колку сакам записи кои ќе се рачунаат, со што е решен проблемот.

    Ова ќе го имплементирам денес попладне, во меѓувреме може да давате и други предлози...

    Поздрав.
     
  11. spiritBreaker

    spiritBreaker
    Unstoppable

    2,763
    3,214
    27 oктомври 2015
    Машко
    g4m3R
    Шо ќе имаш во кукито? Ако го направиш кукито да ти истечи по извесен период, тогаш ќе имаш проблем со следење на уредот дали е истиот или не. Јас вака би направил:
    Креирај куки, шо во него ќе има само некое уникатно ид (uuid, или md5(time())), замислено како device id, и користи го то како идентификатор.

    Ама, тука имаш проблем: шо се случува ко ќе се избришат кукињата или се користи друг браусер а истиот уред е?
     
  12. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Во cookies ќе запишува ид на артикл п.р 1,3,55,66.

    Едит, уствари.. ако запишува вака у тој случај нема да можам да го ограничам време за бришење на кукис....
    фак... не бива така.
    Ново куки за секој артикл??
     
  13. spiritBreaker

    spiritBreaker
    Unstoppable

    2,763
    3,214
    27 oктомври 2015
    Машко
    g4m3R
    не ти е одговор ново куки за секој артикл. така само ќе си направиш каша и ќе стани тешко за менаџирање. uuid мислам дека е потрајно решение во куки, ма да и то има недостатоци. штета шо не можиш device fingerprinting да правиш, ќе ти олеснеше многу работа тоа.
     
  14. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Fingerprint за да импелментирам треба многу измени да правам. Имам ajax преку кој еден куп ствари обработува. Ќе треба да го прекуцувам што искрено не ми се прави
     
    Последна промена: 7 Февруари 2020
  15. mrce

    mrce
    Intern

    177
    27
    2 ноември 2009
    Убаво ти кажа членот погоре, за идентификација на посетители се користи фингерпринт библиотека. Може да имаш многу посети во исто време со една ип адреса, исто и за јузер агентот.
     
    На Fatal1ty_ му/ѝ се допаѓа ова.
  16. spiritBreaker

    spiritBreaker
    Unstoppable

    2,763
    3,214
    27 oктомври 2015
    Машко
    g4m3R
    ако користиш ларавел, има пакети шо прават device fingerprint

    edit: еве на пример ова:

    scipag/browserrecon-php
     
  17. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Не е Laravel некој кастом mvc
     
  18. spiritBreaker

    spiritBreaker
    Unstoppable

    2,763
    3,214
    27 oктомври 2015
    Машко
    g4m3R
    Сепак, можиш да го искористиш пакетов, не е зависен од фрејмворк
     
    На Fatal1ty_ му/ѝ се допаѓа ова.
  19. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Update,
    Го решив со fingerprint. Во база запишува се што ми треба, а од кукис ограничува броење на кликови. Имаше малце повеќе чекори и модификации, ама затоа направив добра основа за развивање подоцна доколку биде потребно.
     
    shooter, spiritBreaker и на P.Overdrive им се допаѓа ова.
  20. spiritBreaker

    spiritBreaker
    Unstoppable

    2,763
    3,214
    27 oктомври 2015
    Машко
    g4m3R
    со библиотеката шо ја ставив тука или друга некоја? ако е друга, сподели со која
     
  21. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,510
    25,579
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Таа, само ја упростив и ја приспособив за мои потреби.
     
    На spiritBreaker му/ѝ се допаѓа ова.

Сподели

Вчитување...