Meerdere cookies met dezelfde naam in ajax success
De detailpagina heeft in zijn ajax success een cookie die moet worden gezet. Vb cookienaam vacature en de vacature_id als value.
Iedere keer iemand wil inschrijven voor een bepaalde job zal die cookie terug worden overschreven, dus ik ben iedere keer de oude waarden kwijt. Meerder cookies met dezelfde naam kan volgens mij niet. Heeft iemand van jullie hiervoor een oplossing?
De bedoeling is dat iedere keer een werkzoekende op de website komt hij/zij dus geen 2x voor dezelfde job kan inschrijven.
Dan zijn cookies niet de oplossing, want veel browsers verwijderen die automatisch bij het afsluiten.
Beter sla je dit soort informatie dus in een database op.
https://www.google.nl/search?q=set+multiple+cookies+php
Voorbeeld #3 lijkt de oplossing :
http://php.net/manual/en/function.setcookie.php
Gebruik liever een database, zoals al gezegd is.
Maar zoals gezegd; gegevens over welke vacatures een bezoeker bekijkt/bewerkt etc wil je altijd *serverside* opslaan.
Dat heeft twee redenen. Ten eerste wil jij inzicht in welke vacatures door wie worden bekeken en wanneer en waarom etc. Dat is van levensbelang voor je interne marketing.
Ten tweede is de database dynamisch; er komen records bij en gaan records af en er zullen ook wel eens records worden vervangen. Als alles is opgeslagen in een database dan worden al die wijzigingen automatisch meegenomen in de data van elke gebriuker. Als je de data browser-side opslaat zul je bij elke pageview opnieuw moeten kijken of de id's die zijn opgeslagen nog bestaan in de database, en actie moeten ondernemen als dat niet zo is. Dat is een intense berg werk die in feitte dus gewoon ON UPDATE CASCADE en ON DELETE RESTRICT nabouwt. Nee, niet ON DELETE CASCADE, want dat mag dus niet als je client-side opslaat... als een id server-side is weggehaald en client-side nog is bijgewerkt dan heb je een gigantisch probleem...
Kortom: geef je bezoeker een uniek id in z'n localstorage of cookie, en sla de rest allemaal server-side op.
Gewijzigd op 17/10/2016 11:20:33 door Brecht S
Daar maak je een kleine denkfout. JIJ als programmeur kunt een cookie wel dusdanig instellen dat deze blijft bestaan, maar IK als gebruiker kan mijn browser zo instellen dat ALLE cookies worden verwijderd als ik m'n browser afsluit. Een cookie is nooit 100% betrouwbaar omdat deze zich aan de gebruikerskant bevindt en je daar nooit 100% controle op hebt.
Dat gezegd hebbende ...
Waarom zou überhaupt iemand zich 2 keer voor dezelfde vacature inschrijven? Dan ben je wel vrij stom bezig lijkt me.
Maar goed, als je het op een betere manier wil afvangen, dan zou je kunnen controleren op e-mailadres. Je laat iemand eerst z'n e-mailadres invullen waarna je controleert of dat e-mailadres zich al heeft ingeschreven. Aangezien een e-mailadres uniek is, is dit wellicht een meer solide oplossing.
Gewijzigd op 17/10/2016 13:31:02 door Ozzie PHP
Ozzie PHP op 17/10/2016 13:28:20:
Waarom zou überhaupt iemand zich 2 keer voor dezelfde vacature inschrijven? Dan ben je wel vrij stom bezig lijkt me.
Pretty much this.
Daarnaast. Soms heb je eenzelfde vacature die opnieuw wordt uitgezet. Nieuwe ronde, nieuwe kansen. Met de huidige constructie zou iemand hier dan niet nogmaals op kunnen reageren?
Ik denk dat hier sprake is van overautomatisering. Ik bedoel, komt het ooit voor dat iemand meerdere keren solliciteert op eenzelfde vacature (met uitzondering van bovenstaande situatie)? Is dit echt een reëel scenario? Het klinkt nogal vergezocht allemaal. Wat gebeurt er in het ergste geval? Dat een kandidaat niet wordt uitgenodigd? Please.
Of wat als er 2 mensen in 1 gezin op dezelfde vacature willen reageren. Dan mag de een niet meer omdat de ander al heeft gereageerd :-)
Die hebben gelukkig allemaal een eigen gebruikersaccount, dus eigen cookies, net zoals mijn gewone internetaccount in Google Chrome wel cookies heeft en mijn beheerdersaccount in Mozilla Firefox helemaal geen. ;-)
Als je dit soort problemen toch wilt overautomatiseren, zou ik eerst eens kijken naar iets dat ook voor gebruikers zelf voordelen heeft. Denk bijvoorbeeld aan een gebruikersaccount: daarmee kun je bijvoorbeeld de personalia voor volgende sollicitaties alvast invullen en op basis van eerdere sollicitaties suggesties voor andere vacatures doen.
Ook dat is weer een veronderstelling die in lang niet alle gevallen opgaat. Genoeg huishoudens waar gewoon één account wordt gebruikt en iedereen dus van dezelfde browser en browserinstellingen gebruikmaakt.
Ward van der Put op 17/10/2016 14:50:05:
op basis van eerdere sollicitaties suggesties voor andere vacatures doen.
Holy sh*t, dit zou wel eens het ei van Columbus kunnen zijn. Als zoiets wordt gemaakt heb je in ieder geval al een (flink) streepje voor op de meeste (IT) vacature sites.
Dat kun je doen, en dat is ook wat er gebeurt bij incognito mode.
" Een cookie is nooit 100% betrouwbaar omdat deze zich aan de gebruikerskant bevindt en je daar nooit 100% controle op hebt."
Niets wat aan de client kant staat is betrouwbaar, maar zonder *iets* aan de client kant kun je de client niet meer herkennen, dus of het gewist kan worden is dan ineens niet meer interessant. In het ergste geval zul je sommige gebruikers moeten vertellen dat ze cookies moeten accepteren, maar dat geldt voor vrijwel alle websites waar je op aan moet loggen dus het hele "wat als ze geen cookies accepteren" verhaal is feitelijk moot.
"Ik bedoel, komt het ooit voor dat iemand meerdere keren solliciteert op eenzelfde vacature (met uitzondering van bovenstaande situatie)? "
F5 is een wonderlijk knopje.
"Is dit echt een reëel scenario? Het klinkt nogal vergezocht allemaal. Wat gebeurt er in het ergste geval? Dat een kandidaat niet wordt uitgenodigd? Please."
In het ergste geval zet iemand een botje aan die op elke vacature twee miljoen keer reageert en dan is de inbox gegarandeerd onbruikbaar. En als er ook nog een email notificatie achter zit....
Mijn regel is simpel: als het niet mogelijk moet zijn, dan moet het niet mogelijk zijn. Als mensen zich niet dubbel moeten kunnen inschrijven dan moet dat onmogelijk zijn. Als later blijkt dat het toch gewenst is dan kun je er altijd nog een mouw aan passen, maar als je website wordt neergehaald omdat jij dacht dat het wel mee zou vallen, dan heb je een veel groter probleem.
Wel degeljk. Vaak zijn sessie-cookies gewoon te gebruiken en kun je zaken in een sessie opslaan. Wat ik aangeef is dat een cookie niet beschermt om bepaald gedrag tegen te gaan. Dat zul je server-site moeten regelen.
>> F5 is een wonderlijk knopje
Daar is de vraagstelling alleen niet op gebaseerd. En bovendien kennen we daar bijv. het gebruik van tokens voor.
>> In het ergste geval zet iemand een botje aan die op elke vacature twee miljoen keer reageert en dan is de inbox gegarandeerd onbruikbaar.
En dat wou jij dan tegenhouden door een cookie te plaatsen? Haha ... nice one. Nee, daar gebruik je andere methodes voor.