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

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

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 »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid hebben

Bekijk vacature »

PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen pure PHP code schrijven. Samenwerken met de klantreiziger om onze klanten

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

Medior/senior PHP ontwikkelaar E-commerce

Functie Het software development team bestaat momenteel 5 scrum teams . Ieder team heeft een eigen SCRUM Master en eigen tester. Zij werken voornamelijk in PHP en met hun eigen geschreven framework wat Symfony based is . Jij bent samen met je collega’s verantwoordelijk voor het interne softwaresysteem en alle projecten die daar omheen lopen. Alles wat jij ontwikkelt, wordt direct toegepast en uitgerold (wereldwijd). Dit maakt jouw werk tastbaar en uitdagend! Een greep uit jouw werkzaamheden: Toevoegen en ontwikkelen van nieuwe functionaliteiten Logistieke software ontwikkelen voor intern gebruik Tientallen gigabytes aan data inzichtelijk maken Altijd op zoek gaan naar

Bekijk vacature »

Front-end developer (HTML, CSS, SASS, JavaScript)

Functie Momenteel zijn we voor ons Digital team op zoek naar een (medior) Front-end developer. Samen met je collega’s werk je in een Agile/Scrum omgeving aan de ontwikkeling van onze webapplicaties, websites en andere oplossingen. Je draagt bij aan een sterk ontwikkelproces waarin kwaliteit voorop staat. Hiervoor ben je niet alleen bezig met eigen code maar ook code reviews van andere collega’s. Ben jij graag op de hoogte van de nieuwste ontwikkelingen in je vakgebied en wil je deze toepassen voor diverse projecten? Dan komen wij graag met je in contact! Eisen • HBO werk- en denkniveau • Minimaal 2

Bekijk vacature »

Junior Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Samenwerken in een team van 10 collega's; Opleveren van mooie eindproducten, middels de Agile methodiek; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als startende IT-professional kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven.

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

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

24/11/2024 06:13:05
 
- 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.