Tellen hoeveel dezelfde accounts actief zijn (andere PC, andere browser)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »

Frontend Developer - Leeuwarden

Frontend Developer – Leeuwarden Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider

Bekijk vacature »

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Dordrecht zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Utrecht, die jou tot een volwaardig Fullstack Software Developer gaat opleiden. Binnen deze grote organisatie krijg je ruime en professionele trainingen die jouw in korte tijd vakbekwaam maken. Niet alleen het aan technisch aspect, maar ook zeker jouw persoonlijke ontwikkeling wordt veel

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Pagina: 1 2 volgende »

Hans De Ridder

Hans De Ridder

19/01/2018 16:40:42
Quote Anchor link
Is het mogelijk om bij te houden wanneer er op meerdere plekken
en/of op meerdere browsers dezelfde account geopend is?
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.
 
PHP hulp

PHP hulp

10/12/2023 07:56:11
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 16:46:29
Quote Anchor link
Wat versta jij onder afgesloten? Het sluiten van de browser, wissen van de cookies in de browser, of het netjes uitloggen van de gebruiker via de uitlogknop op je site?

Je kan bij het inloggen een unieke code opslaan in de database. Dan kan je zien op hoeveel browsers ingelogd is per gebruiker. Echter is dit niet betrouwbaar, want als ik de cookies zou wissen in de browser, dan kan ik dit op de server nooit weten.
 
Hans De Ridder

Hans De Ridder

19/01/2018 16:58:24
Quote Anchor link
Bij het inloggen (session) worden er bij mij ook 2 cookies geset.
Een vaste en en variabele. Die waarde wordt ook bewaard op de server.
Die gebruik ik her en der, als er niet hoeft te worden ingelogd,
of niet mogelijk om in te loggen.
Dat werkt voor 1 actieve account prima.
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.
Het probleem is nu natuurlijk, dat wanneer een ander met dezelfde
account inlogt, de opgeslagen waarde van de variabele cookie verandert.
En dus de eerste account geblokt wordt om te reageren.
Ik weet dat ik met session dat kan voorkomen.
Maar ik had dus bedacht dat wanneer de eerste account inlogt,
die cookiewaardes bij de 2e, 3e, enz. inlog niet veranderen.
En overal gereageerd kan worden vanaf verschillende browsers, plekken.
Maar die waarde moet wel een keer weer naar 0 uteraard.
Dus zoek ik manier om die switch te maken.
Ik kan er ook voor kiezen dat slechts 1 account actief kan zijn.
Net zoals wel gebeurt bij games.
Maar de eerste vind ik wat gebruiksvriendelijker.

Ik bedenk net dat de 2e, 3e, enz toch altijd moeten inloggen om de actuele cookie waarde te ontvangen. dan zou ik gewoon de session langer kunnen maken.
Had ook al gekeken of er melding mogelijk is om einde van de sessie aan te kondigen.
Maar verder dan een cookie ben ik nog niet gekomen.
Gewijzigd op 19/01/2018 17:13:31 door Hans De Ridder
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 17:15:26
Quote Anchor link
Quote:
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.

Ik neem aan dat je geen rechten in cookies opslaat. Zo kan iemand zijn rechten anders wel héél makkelijk opwaarderen, en misbruik maken.
 
Hans De Ridder

Hans De Ridder

19/01/2018 17:33:32
Quote Anchor link
Er worden 2 cookies opgeslagen.
1 met de gecodeerde unieke verwijzing.
De andere verandert bij het inloggen en bepaalde activiteiten, zoals wijzigingen, etc.
Die worden vergeleken met de opgeslagen waardes op de server.
Ze moeten beiden overeenkomen om een reactie te mogen geven via een form.
Lijkt me vrij veilig.
Maar daardoor kan ik dus nu ook niet een account laten inloggen terwijl er al een actief is.
En ik vind het ook niet zo'n probleem als er maar 1 account tegelijk ingelogd kan zijn.
Want wat wil je met inloggen meerdere browsers/plekken?...
Afzonderlijk van elkaar wijzigingen aanbrengen?

Ik kwam het alleen tegen toen ik het openbare gedeelte wilde checken op andere browsers.
Terwijl ik nog ingelogd was bij een andere browser, haha
 
Nick Vledder

Nick Vledder

19/01/2018 19:02:43
Quote Anchor link
Volgens mij is je doel, kijken of één account (user) in meerdere browsers de applicatie gebruikt prima te benaderen met het gebruik van session-cookies en een regelmatige ajax-ping naar de server. Is de user ingelogd en maakt de ping geen verbinding meer met de server, dan wordt de user uitgelogd op de server en via een JS commando tevens uitgelogd in de browser.

PS je kan ook voorkomen uiteraard dat voor een tweede keer wordt ingelogd door dezelfde user.
Gewijzigd op 19/01/2018 19:05:12 door Nick Vledder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 20:01:39
Quote Anchor link
Hans De Ridder op 19/01/2018 16:40:42:
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.

Wat is het nut hiervan? Op het moment dat iemand zich aanmeldt is deze toch gewoon ingelogd? Of dit nu in één of tien browsers is.

Als dit voor problemen zorgt met bijvoorbeeld de toegang tot een gedeelde resource (bijvoorbeeld het adminpaneel voor het wijzigen van een artikel; EDIT hierbij is het artikel dus de resource) dan moet je die resource vergrendelen / exclusief ontsluiten voor de eerste persoon die daar toegang toe krijgt, maar niet de accounts zelf.

Dus nogmaals, waarom is dit "hetzelfde account maximaal 1x tegelijkertijd actief" principe noodzakelijk? Ik denk dat je het probleem -wat dit ook moge zijn- beter op een andere manier (bijvoorbeeld op de voorgestelde, mits van toepassing) op kunt lossen.
Gewijzigd op 19/01/2018 20:08:49 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 21:31:50
Quote Anchor link
Ik hoop dat ik het goed uitleg, want is best ingewikkeld.
Het is een website voor mensen die wat met de artiestenwereld hebben.
Leden kunnen zich presenteren.
Dat gebeurt via youtubes, nieuwsbrief en andere documenten, flyers, enz.
Er is een registratie/inlogsysteem.
Naast het inloggen wordt hier alle openbaar te plaatsen info in de juiste mappen gezet.
Dit is in principe allemaal klaar.
Vanuit die mappen worden de verschillende categorieën opgebouwd in het openbare deel.

Het openbare gedeelte is voor iedereen toegankelijk.
Er is echter een optie "reageren" (dmv email eventueel met bestand).
Daar kunnen alleen leden gebruik van maken.
Deze optie is aanwezig voor elke categorieën.
Nu verwacht ik dat ook leden gewoon in het openbare gedeelte zullen snuffelen.
En om te voorkomen dat ze in moeten loggen als ze eens willen reageren,
heb ik 2 cookies die geset worden elke keer dat er ingelogd wordt.
En die worden ook op server bewaard.
Een unieke gecodeerde waarde en een variabele waarde.
In principe worden die 3 maanden bewaard.
Ook als je niet meer inlogt kun je dus reageren.
Met slechts 1 account actief gaat dat altijd goed.
Wanneer je echter op andere plek of andere browser inlogt,
dan verandert de variabele waarde van de cookie en die wordt ook opgeslagen.
Vanaf dat moment kloppen de gegevens niet meer om te reageren voor de 1e account-gebruiker.
Natuurlijk kan ik met sessies gaan werken in het openbare gedeelte voor de leden.
Maar die cookies gebruik ik toch al voor andere doeleinden ook.
Dus dacht ik deze ook toe te passen in openbare gedeelte.
Ik liep tegen het probleem aan, toen ik met ingelogd op Chrome,
de layout wilde bekijken op IE en Edge.Dan moest ik telkens uitloggen en weer inloggen.

De afweging die ik moet maken is of een account wel tegelijkertijd op meerdere plekken geopend
moet kunnen zijn. In het geval van mijn website en de gegevens zie ik het doel er niet zo van.
Misschien heb je wel gelijk Thomas om de pagina's waar je info kunt wijzigen en opsturen te vergrendelen.
Maar ik ken de muziekwereld een beetje. Het is al snel te moeilijk of teveel werk.
Vandaar dat met het inloggen ook alle opties bereikbaar zijn.
Maar wat zou het nut kunnen zijn om een account op meerdere plekken in te loggen?
Behalve dan voor de ontwerper, haha.
Sorry voor de lengte van het verhaal

Hier een voorbeeld van een categorie.
Via button wordt bekeken of je een reactie kunt geven.
Gekleurd: ja Grijs: nee, button is geblokkeerd.

https://www.pctraverse.nl/voorbeeld1.jpg
Gewijzigd op 19/01/2018 21:32:27 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 22:11:55
Quote Anchor link
Ik denk dat het probleem is dat je meerdere "systemen" hebt om verschillende typen gebruikers in te laten loggen (verschillende cookies?), althans zo klinkt het. Als in beginsel alle "gebruikers" (of dit nu geregistreerde bezoekers, muzikanten of beheerders zijn) hetzelfde zouden zijn, dan zou je het probleem wat je nu ondervindt niet hebben toch, want dan ben je gewoon ingelogd met de laatst ingelogde gebruiker, wat dat ook moge zijn.

En cookies voor authenticatie, dat klinkt niet erg bemoedigend. Cookies zouden wel kunnen dienen om iemand automatisch (onder water) opnieuw in te loggen indien een sessie verloopt ofzo, nadat met enige zekerheid is vastgesteld dat het om dezelfde gebruiker gaat, op grond van eerder vastgelegde gegevens. Maar dat is dus een stuk gebruikersgemak waarbij je ook weer een beetje veiligheid opoffert.

Ik denk dat de oplossing ligt in de richting van één manier van inloggen/authenticeren/bijhouden wie iemand is. Wat gebruikers vervolgens kunnen doen hangt af vant hun privileges / rechten die je aan een gebruiker koppelt. Let goed op dit onderscheid (wie iemand is <--> wat iemand mag doen).
 
Hans De Ridder

Hans De Ridder

19/01/2018 22:38:04
Quote Anchor link
Er is maar een account hoor. Die heeft de mogelijkheid om in alle categorieen berichten, flyers, youtubes, etc. te plaatsen.
Het klopt als je inlogt dat dit in principe ook kan. (Zolang ik die mogelijkheid aanhoud).
Dat werkt ook bij de openbare pagina's.
Het probleem zit hem dus dat bij inloggen de variabele cookie verandert.
En de als eerste ingelogde persoon niet meer kan reageren op de openbare pagina.
Ik zou dat kunnen oplossen door te checken (via ip) of lid online is.
Beetje zoals Nick aangeeft.
Dan kan ik switchen van 0 naar 1.
En de cookies onveranderd laten.
Dat verandert pas als lid niet meer actief is.
Maar denk dat het werken met session het meest eenvoudig is...
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 23:12:33
Quote Anchor link
Mja, maar het klinkt alsof je nog steeds verschillende cookies hebt voor verschillende gebruikers, terwijl dat in wezen eenzelfde cookie zou moeten zijn die precies één gebruiker identificeert. Dan heb je jouw hele probleem niet (EDIT: dit garandeert op zijn minst dat je per browser maar 1x bent ingelogd).

vb je hebt nu 3 cookies "henk", "piet" en "klaas", terwijl dat eigenlijk één cookie "user" zou moeten zijn ofzo, waaruit op een of andere (veilige!) manier moet blijken wie dat is.

Trouwens, hele ingewikkelde constructies voor beveiligingsmechanismen hangt een beetje naar security through obscurity, wat niet echt een goed ontwerpprincipe is - als hier sprake van is. Het is beter dat het berust op een simpel, transparant systeem waarbij iedereen kan zien dat het veilig is.
Gewijzigd op 19/01/2018 23:23:16 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 23:48:15
Quote Anchor link
Er zijn per account maar 2 cookies. Een vaste waarde en een variabele.
Maar die variabele waarde verandert bij het inloggen. (Veiligheid)
En wordt opgeslagen in cookie en bewaart in database.
In het openbare gedeelte worden de cookies opgeroepen en vergeleken met de waardes in de database.
Dus als er wordt ingelogd vanaf verschillende plekken verandert telkens de waarde in cookie en in database.
Dan klopt de test alleen bij de laatst ingelogde! En anderen kunnen geen reactie meer geven.
Maar denk probleem te omzeilen door voor leden ook in het openbare gedeelte met sessie te werken.
Maar gelet op de hoeveelheid aan info en youtubes heb ik geen idee hoe lang leden vertoeven in het openbare gedeelte.
En in de verschillende categorieen.
Kun je een session ook ongezien verlengen als de tijd er bijna op zit?
 
- Ariën  -
Beheerder

- Ariën -

20/01/2018 00:42:34
Quote Anchor link
Als ik mij niet vergis vervalt een sessie standaard na ongeveer 30 inactieve minuten, dus er zit geen harde TTL aan vast.
Gewijzigd op 20/01/2018 00:43:31 door - Ariën -
 
Hans De Ridder

Hans De Ridder

20/01/2018 01:13:38
Quote Anchor link
Ik heb altijd met inloggen maar 1 pagina open. (header verandering).
Ook de pagina's waar je kunt invoeren of wijzigen.
Ik had eerder wat ingebouwd om na sluiten van pagina (dus niet ALLE tabs) automatisch via onbeforeunload
uit te loggen. en de session te beeindigen.
De linkjes om door te verwijzen stopten de werking zodat er tijdens het unloaden geen uitloggen volgde.
Maar moest ik ook weer maatregelen nemen om reloads en 'vorige pagina' voor uitloggen te behoeden.

Denk dat een gewone session start wel genoeg moet zijn.
En dat een lid moet inloggen als hij reactie wil geven.
Maar vind zonder inloggen wel gebruiksvriendelijker.
Ik kan toch bij bijv. wijziging van de pagina weer een nieuwe session starten.
Die loopt dan in principe ook weer 30 minuten.



Toevoeging op 20/01/2018 01:19:52:

Hier nog een scriptje van Stackoverflow die kijkt naar timeout.

On login:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();

An ajax call every few (eg 20) seconds:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
windows.setInterval(keepAliveCall, 20000);

Server side keepalive.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();


On every other action:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
session_start();
if ($_SESSION['last_action'] < time() - 30 /* be a little tolerant here */) {
  // destroy the session and quit
}
Gewijzigd op 20/01/2018 01:21:02 door Hans De Ridder
 
Obelix Idefix

Obelix Idefix

20/01/2018 11:11:41
Quote Anchor link
Hans De Ridder op 19/01/2018 17:33:32:
Er worden 2 cookies opgeslagen.

Die worden vergeleken met de opgeslagen waardes op de server.


Zit daar niet het probleem?
1) Kunnen verschillende browsers gebruik maken van dezelfde cookie?
Ik heb het nog niet meegemaakt dat als ik met Chrome ergens inlog, ik ook gelijktijdig met FF dan ben ingelogd.

2) De cookies zijn lokaal opgeslagen. Dat betekent volgens mij dat als iemand thuis is ingelogd en later ergens anders naar de website gaat (zonder thuis te hebben uitgelogd), niet beschikt over de cookies die thuis gezet zijn.
Dan kun je vergelijken met wat er op de server staat, maar dat gaat niet lukken.

Als ik het zo lees, is wat jij wilt niet mogelijk. Andere locatie / browser betekent dat je geen toegang hebt tot de cookies die (met een andere browser / op andere locatie) je eerst had.

Hans De Ridder op 19/01/2018 22:38:04:
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....

Beter lijkt me om dat te voorkomen. Iemand kan maar op 1 plaats zijn.
Wat als iemand de browser afsluit en niet netjes uitlogt. Die zou dan eeuwig ingelogd kunnen blijven?
Gewijzigd op 20/01/2018 11:13:59 door Obelix Idefix
 
Nick Vledder

Nick Vledder

20/01/2018 12:24:15
Quote Anchor link
Dat laatste is eenvoudig te ondervangen met Ajax Ping (vanuit browser). Na whatever seconden geen bericht = uitloggen op server.
 
Hans De Ridder

Hans De Ridder

20/01/2018 12:48:46
Quote Anchor link
Ik heb even gekeken wat er met inloggen allemaal wordt opgeslagen.
Daar zag ik wellicht wel de oplossing.
Ik gebruik 'Last_login'.
Als ik dat aanhoud en tel daarbij op de sessieduur, dan is de laatste met dezelfde account uitgelogd.
Die sessionduur moet dan wel de tijd zijn die bij inloggen is gegeven.
Dan wordt er uitgelogd en de sessie gestopt.
Er mag dus niet een nieuwe tijd worden ingesteld met een start session tussendoor.
Dat kan ik wel regelen waarschijnlijk met een cookie.
Maar weet (nog) niet of dit met php ook mogelijk is.
Even struinen op google.
Dan zorg ik er voor dat bij meerdere inlogs van een account geen nieuwe variabele cookie wordt geset.
Maar de cookie de inhoud krijgt van de al opgeslagen waarde uit de database.
Dan veranderen de cookies niet, zolang de laatste van dezelfde account nog ingelogd is.
Dat laatste had ik al getest en werkt prima.
Kreeg alleen de omschakeling niet voor elkaar.
Voor de slimmerikken die roepen: "maar als de laatste eerder uitlogt dan?".
De absolute tijd is niet zo relevant.
Dan is alleen de tijd dat de cookies niet veranderen wat (onnodig) langer.
En daardoor de veiligheid wat minder.
Maar is geen verband met wachtwoorden of usernames.
 
Thomas van den Heuvel

Thomas van den Heuvel

20/01/2018 15:38:07
Quote Anchor link
Heb de bovenstaande thread nogmaals gelezen en ik denk dat ik nu een beter beeld heb van wat er aan de hand is.

Mijn voorstel is als volgt: stap af van het gebruik van cookies, tenzij dit niet anders kan of een speciale reden heeft.

Ga gebruik maken van sessies. Als je functionaliteit wilt hebben die gebruikers ingelogd houdt / automatisch herinlogt: houd dit dan bij in een database. Maar houd het in eerste instantie simpel. Hiervoor zul je dan wel een cookie met een beperkte levensduur bij moeten houden waarin je bijvoorbeeld een hash opslaat. Deze hash + het IP van de gebruiker + een beperkte levensduur voor dit record tezamen zorgen ervoor dat iemand heringelogd wordt als aan de volgende condities is voldaan:
- de gebruiker is niet ingelogd
- er bestaat een niet-verlopen record met dezelfde hash als in het cookie en hetzelfde IP

Je hebt hiervoor een cookie nodig omdat dit de levensduur van een sessie (die om wat voor reden dan ook tekort is) moet overspannen. Volgens mij was hier al eens een keer een andere thread over geweest. De strekking (van mijn standpunt) daarin was ongeveer het volgende: probeer niet krampachtig een sessie in leven te houden, want deze timeout toch op den duur (om uiteenlopende redenen) maar zorg gewoon -als dit gewenst is- dat je een systeem hebt die je onderwater naadloos opnieuw inlogt, bijvoorbeeld op de hierboven beschreven wijze. Dit lijkt mij gewoon een veel simpelere constructie, waarbij de sessie dus een soort van automatische doorstart maakt.

Voor handelingen waar je geen speciale "rechten" voor nodig hebt: hiervoor zou je ook niets hoeven te doen. Wel zul je formulieren moeten beveiligen tegen spam, bijvoorbeeld met een token (misschien was dat het nut van het continu veranderende cookie?) die wordt meegestuurd en na afloop via een andere wijze wordt gecontroleerd. Doe je dit echter via cookies, dan zou je elke keer dezelfde cookiewaarde+formulierwaarde kunnen doorsturen wat het hele systeem een beetje om zeep helpt omdat de controle toegankelijk (en manipuleerbaar) is door de client zijde. Daarom gebruik je sessies - dit noem ik altijd "serverside cookies" - de controle bij sessies ligt aan de serverkant en niet bij de gebruiker. En dat is natuurlijk altijd een beter plan dan de controle bij de gebruiker te leggen want deze zou je eigenlijk nooit moeten vertrouwen.

Vraag ik mij nog steeds af wat het nut is van het continu veranderende cookie? Dit zou een soort van constructie met een nonce kunnen zijn, maar ik denk niet dat het allemaal zo geavanceerd is? Los daarvan, als dit als zodanig gebruikt wordt dan lijkt mij een sessie veel veiliger voor dit soort spul dan een cookie. Cookies zijn clientside en dus, zoals gezegd, manipuleerbaar.
Gewijzigd op 20/01/2018 15:39:14 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

21/01/2018 14:16:39
Quote Anchor link
De waarde van de variabele cookie verandert, als een extra stukje veiligheid.
Mocht iemand eens aan vriend op vreemde PC de werking laten zien,
dan heeft die persoon de 2 cookies ook.
Maar hij kan er niet zoveel mee.
Er zal dan gevraagd worden om in te loggen.

Ik heb het nu (voorlopig) opgelost, zonder extra cookie.

Zolang er geen inlog is, is er niks aan de hand.
Lid kan zonder inlog alle openbare pagina's bezoeken en ook reageren als lid.
Op andere pc's of pc's kan dat ook.
Cookies wijzigen uitsluitend bij inloggen.

Zodra er ingelogd is verandert de waarde van de variabele cookie nog 1 keer.
Vervolgens worden er geen wijzigingen meer aangebracht in de variabele cookie.
Tot het moment dat de laatst ingelogde uit wordt gelogd.
Daarna wordt alles weer hersteld naar de oude situatie.

Bij het lid (zelfde account) die wil reageren op openbare pagina's betekent dit
dat men hooguit 1 keer dan moet inloggen om te kunnen reageren via die andere browser of PC.
Dit is mijn code (IPTC).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$cookie_code=$_COOKIE['code'];
$cookie_user=$_COOKIE['user'];

if (isset($cookie_user, $cookie_code))
 {
$file=realpath($_SERVER['DOCUMENT_ROOT'])."foto/".$cookie_user.'.jpg';
$i=new iptc($file);
$r=$i->get(LAST_LOGIN);

$end_session=$r+3600;
$real_time=time();

if($real_time>$end_session)
{
echo $i->set(ACCOUNT_ACTIVE,'0');
$i->write();
}
else
{
echo $i->set(ACCOUNT_ACTIVE,'1');
$i->write();
}
}


Bij inlogscript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
if ($account_active==0)
{
setcookie($cookie_name, $cookie_code, time() + (90 * 86400), "/"); // = 90 day
}
else
{
$i = new iptc($file);
$r = $i->get(LID_HASH);
$s = $i->get(COOKIE_CODE);
$cookie_code=$s;
setcookie($cookie_name, $s, time() + (90 * 86400), "/"); // = 90 day
}
Gewijzigd op 21/01/2018 14:58:05 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

22/01/2018 00:47:37
Quote Anchor link
Hoe ingewikkelder je het (voor jezelf) maakt, hoe belangrijker het in ieder geval is om code te annoteren (te voorzien van commentaar). Als ik dit over een week, maand of jaar nog eens bekijk, dan zou ik bij god niet weten wat deze code precies zou moeten doen.

Leg altijd in commentaar uit en vast wat de strekking / het effect van code is (of zou moeten zijn). Als je dat dan op een gegeven moment terugleest dan denk je misschien ook op een gegeven moment "waar was ik mee bezig" of "waarom heb ik ooit voor deze aanpak gekozen".

Maar ook voor debugging. Dit kan dan -in het gunstigste geval- heel snel duidelijk maken dat de code het voorgestelde plan mogelijk niet juist implementeert.
 
Ivo P

Ivo P

22/01/2018 09:25:28
Quote Anchor link
Wat ik begrijp:

Bij een account heb je 2 cookie-gegevens in je database staan, die ook bij de browser bekend zijn en waarmee je dus weet dat iemand ingelogd is (op die browser).

En dat geeft een probleem als iemand met een 2e client inlogt.

Wat nu als je het omdraait? Als je bij de 2 cookie gegevens noteert welk account daarbij hoort.

dus browser 1 heeft een cookie A en een cookie B en daarmee is de user Hans ingelogd (met Firefox voor mijn part).
Er is ook een record in je database met cookies X en Y en eveneens user Hans, maar nu op IE op een andere PC...
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.