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

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Product Developer (M/F), Fulltime 40 h/week

A global Plantbased revolution – that is our dream. Maximising the protein transition – that is our mission. Producing and developing sustainable and delicious products – that is what we do. Ojah is a fast growing company with a mission and has the ambition to be the world leader in its field. To support this growth we are hiring new colleagues. People that would like to make a difference and dare to dream big. With currently a 150 colleagues proudly working on our exceptional products. Working in a dynamic surrounding that runs full speed ahead. We need you! Product Developer

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

.Net ontwikkelaars voor de zorgsector

Bedrijfsomschrijving Voor onze klant in de omgeving van Zwolle zijn wij op zoek naar een ervaren .Net ontwikkelaar, bij voorkeur met ervaring binnen de belangrijkste sector van Nederland, namelijk: de zorgsector. Deze internationale organisatie ontwikkelt software voor de zorgsector. Er werken zo'n 25 medewerkers hard aan een oplossing die gebruikt wordt door heel Nederland. Er heerst een informele sfeer waarbij er altijd ruimte is voor een grapje. Je collega's zijn stuk voor stuk sterke ontwikkelaars vanuit verschillende achtergronden en met verschillende leeftijden. Je komt hier terecht in een organisatie die zich hard inzet om de zorgsector te verbeteren. De mogelijkheden

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

Senior C# Software Ontwikkelaar te Zaandam

Bedrijfsomschrijving Deze werkgever heeft als missie om haar klanten op ICT-gebied volledig te ontzorgen. Ze zijn een ICT bedrijf met een verscheidenheid aan ICT oplossingen waaronder Cloud oplossingen en een groot deel van het werk is gericht op software realisatie. Voor de Enterprise-klanten voert het relatief kleine ontwikkelteam waar jij deel uit van kan gaan maken binnen deze organisatie te Zaandam de grootste opdrachten uit. Niet alleen websites en complexe webapplicaties maar ook mobile apps, web services en complete systeemintegraties! Je moet dan denken aan Dynamics, Sharepoint en Salesforce. Je komt hier terecht in een relatief kleine organisatie met ontzettend

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Node.js 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 C# VB

Samengevat: Deze werkgever is actief in software voor het matchen van vraag en aanbod van gebruikte auto-onderdelen. Ben jij een .NET Developer? Heb je ervaring met het ontwikkelen (REST) en integreren van webservices? Vaste baan: C# .NET Developer C# VB HBO €2.600 - €6.200 Wij ontwikkelen software om vraag en aanbod van onderdelen van personenauto's bij elkaar te brengen. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. De branche van dit bedrijf is Automotive. Functie: Voor de vacature als .NET Developer Dordrecht HBO ga je

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

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

28/11/2024 02:16:21
 
- 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.