automatische sessie verlenging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer (medior/senior)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

Bekijk vacature »

Full stack .NET developer Microsoft 365

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 »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

Software Ontwikkelaar

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 »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »
Jack Maessen

Jack Maessen

24/10/2013 14:03:32
Quote Anchor link
Hallo,

Ik vraag met af of het mogelijk is een inlogsessie automatisch te verlengen met behulp van een script. (weet niet of PHP hier toereikend voor is)
Het gaat om het volgende: op de pagina werk.nl als je bent ingelogd, moet je binnen 15 minuten handmatig je sessie verlengen. Anders word je uitgelogd en vervallen je gegevens.
Je krijgt weliswaar een popupje als je sessie nog maar 2 minuten of iets duurt maar als je dan net een kopje koffie aan het drinken bent en niet achter de computer zit heb je pech en wordt je uitgelogd.
Als ik met de muis op "Verleng uw sessie" sta zie ik dat bestaande url met een # teken erachter wordt aangeroepen. Dat is dus voldoende om je sessie te verlengen.
Is het mogelijk om dit in een script op de achtergrond te laten werken en daarin om de zoveel tijd een request op die server te doen om de sessie te verlengen?

Afbeelding
Gewijzigd op 24/10/2013 14:05:06 door Jack Maessen
 
PHP hulp

PHP hulp

22/05/2024 07:04:29
 
Eddy E

Eddy E

24/10/2013 14:13:57
Quote Anchor link
Ja, je kan bijvoorbeeld (voorheen, met een oudere, betere versie) van Opera kiezen voor automatisch herladen.
En dan stel je een tijd in van (bijvoorbeeld) 13 minuten.
Zodra je wat doet begint die teller weer opnieuw met lopen.

Ik dacht dat de browser Maxton ook zoiets heeft.
In veel browser kan je tegenwoordig zelf je eigen stijblad (CSS) over een website gooien (in Opera kon dat wel). Dan zal je zoiets vast ook wel voor Javascript hebben (om te herladen). En anders is er wel een addon (Chrome/FF) voor.

In theorie hoef je alleen maar een <meta refresh> toe te voegen...
 
Donny Wie weet

Donny Wie weet

24/10/2013 14:14:19
Quote Anchor link
Nee, niks aan te doen. Ze kiezen er niet voor niks voor om een sessie maar 15 minuten te laten duren. Zolang jij actief bent op de site zal de sessie geupdate blijven :)

Toevoeging op 24/10/2013 14:16:56:

@eddy: dat is geen sessie verlengen maar gewoon je page herladen :P

Toevoeging op 24/10/2013 14:17:21:

Ow je kan trouwens ook een auto clicker laten klikken op de refresh button :)
 
Jack Maessen

Jack Maessen

24/10/2013 14:17:54
Quote Anchor link
ja die meta refresh had ik ook al aan gedacht maar het vervelende is natuurlijk dat de url iedere keer wijzigt.
Er zou dus iets moeten zijn dat eerst de url checkt, en vervolgenns de refresh doet op bestaande url...
Edit: maar dan zit je nog met het inputprobleem; stel je bent een sollicitatiebrief aan het schrijven online op de site en er vind een refresh plaats; weg alle gegevens...
Gewijzigd op 24/10/2013 14:21:19 door Jack Maessen
 
Michael -

Michael -

24/10/2013 14:39:59
Quote Anchor link
Jack maessen op 24/10/2013 14:17:54:
ja die meta refresh had ik ook al aan gedacht maar het vervelende is natuurlijk dat de url iedere keer wijzigt.
Er zou dus iets moeten zijn dat eerst de url checkt, en vervolgenns de refresh doet op bestaande url...
Edit: maar dan zit je nog met het inputprobleem; stel je bent een sollicitatiebrief aan het schrijven online op de site en er vind een refresh plaats; weg alle gegevens...

Dat je input data verloren zal gaan, zul je niet kunnen voorkomen. Je kunt immers niks onderwater refreshen. Waarom werk.nl sowieso maar 15 minuten heeft is inderdaad raar. Lang niet iedereen kan een sollicitatiebrief typen in 15 minuten.

Ik weet niet welke browser je gebruikt, maar voor Firefox en Chrome zijn er refresh addons/plugins die je in kunt stellen op 13 minuten. Meestal krijg je dan een knop bij in je browser waarmee je hem simpel aan en uit kan zetten. Je gaat niet onder een sollicitatie brief typen koffie drinken lijkt me. En anders zal deze toch na 15 minuten verloren gaan begrijp ik. Op het moment dat jij dan zin hebt in koffie schakel je de refresh plugin/addon in en klaar.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/10/2013 14:42:18
Quote Anchor link
Wat doet een sessie?

De server houdt voor alle gebruikers wat variabelen in het geheugen van de server vast en om te weten wie wie is wordt er een cookie geplaatst met een sleutel. Is het cookie verlopen dan is het jammer heb je geen sleutel meer.

Zoiets kun je zelf ook maken. Je kunt 'handmatig' een cookie plaatsen met een sleutel er in. Je kunt dan zelf bepalen hoe lang zo een cookie geldig is. Dan zou ik de gegevens niet in meer in $_SESSION opslaan maar in de database.
 
Michael -

Michael -

24/10/2013 14:50:48
Quote Anchor link
Frank Nietbelangrijk op 24/10/2013 14:42:18:
Wat doet een sessie?

De server houdt voor alle gebruikers wat variabelen in het geheugen van de server vast en om te weten wie wie is wordt er een cookie geplaatst met een sleutel. Is het cookie verlopen dan is het jammer heb je geen sleutel meer.

Zoiets kun je zelf ook maken. Je kunt 'handmatig' een cookie plaatsen met een sleutel er in. Je kunt dan zelf bepalen hoe lang zo een cookie geldig is. Dan zou ik de gegevens niet in meer in $_SESSION opslaan maar in de database.

Hoe wil dit doen voor een externe website? Ik mag hopen dat werk.nl niet zo makkelijk te hijacken is.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/10/2013 18:57:15
Quote Anchor link
En wat bedoel jij precies met een externe website Michael?
 
Jack Maessen

Jack Maessen

24/10/2013 19:20:07
Quote Anchor link
als ik jou begrijp Frank dan zou ik op zoek moeten gaan naar het cookie waarin de sessietijd staat vermeld. dit cookie openbreken en de sessiontime verlengen. Dat is wat je zegt toch?
 
Eddy E

Eddy E

24/10/2013 20:28:09
Quote Anchor link
Als het met een sessiecookie werkt, kan dat. Of je stript het automatisch verversen (en dus dat jou uitlogt) eruit.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

25/10/2013 00:30:07
Quote Anchor link
Goed ik vond het wel een leuk issue en dacht zal eens iets in elkaar timmeren.
Onderstaand voorbeeld is in staat om een sessie na te bootsen.
de sessievariabelen zijn hier altijd van het type string en hebben maximaal 255 karakters.
de sessiegegevens en variabelen worden in de database opgeslagen en uitgelezen.
oude sessiegegevens worden nog niet uit de database verwijderd.
Dat is nog niet optimaal en zou zeker anders kunnen. Maar het gaat er even om het idee te verduidelijken.

Misschien is het een idee om met elkaar hier iets moois van te maken?

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php

// Hoe lang duurt het voor de sessie verloopt in seconden
define('SESSION_DURATION', 3600);

// de naam van het cookie
define('SESSION_IDENTIFIER', 'OWN_SESSION_ID');

// secret token dat gebruikt wordt om een hash te genereren
define('SECRET', 'pHpHuLp');

// database instellingen
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_DBASE', 'test');

// lege database class, kan later uitgebreid worden
class Database extends mysqli
{
}


// onze eigen sessie class
class OwnSession
{
    private $db;
    private $sess_id;
    private $sess_key;  // de hash
    private $vars;        // array van session variabelen
    
    function __construct($db)
    {

        $this->db = $db;
        $this->vars = array();
        $this->sess_id = 0;

        // kijk of er een cookie is
        if(isset($_COOKIE[SESSION_IDENTIFIER]))
        {

            // kijk of er een geldige sessie gevonden kan worden in de database
            $result = $this->db->query("SELECT id FROM sessions WHERE sess_key='".$_COOKIE[SESSION_IDENTIFIER]."' && TIME_TO_SEC(TIMEDIFF(NOW(), started)) < " . SESSION_DURATION);
            if($row = $result->fetch_assoc())
            {

                // laad de sessie-data uit de database
                $this->sess_id = $row['id'];
                $this->sess_key = $_COOKIE[SESSION_IDENTIFIER];
                $this->db->query("UPDATE sessions SET started=NOW() WHERE id='" . $this->sess_id . "'");
                $this->loadSessionVars();
            }
        }

        
        // als er geen sessie gevonden is in de database maak dan een nieuwe sessie aan
        if(!$this->sess_id)
        {

            $this->sess_key = sha1(SECRET . time() . rand()); // willekeurige hash genereren
            $this->db->query("INSERT INTO sessions VALUES ( '', '" . $this->sess_key . "', NOW() )"); // sla de hash en de huidige timestamp op in de database
            $this->sess_id = $this->db->insert_id;
        }

        
        // plaats een (nieuwe) cookie
        setcookie(SESSION_IDENTIFIER, $this->sess_key, time() + SESSION_DURATION);
    }
    
    function
__destruct()
    {

        $this->db->query("DELETE FROM sess_vars WHERE session_id='" . $this->sess_id . "'");
        foreach($this->vars as $key => $val)
        {

            $this->db->query("INSERT INTO sess_vars VALUES ( '','" . $this->sess_id . "','" . $key . "','" . $val . "' )");
        }
    }
    
    function
setVar($name, $value)
    {

        $this->vars[$name] = $value;
    }
    
    function
getVar($name)
    {

        if(isset($this->vars[$name]))
            return $this->vars[$name];
            
        return null;
    }
    
    function
unsetVar($name)
    {

        unset($this->vars[$name]);
    }

    
    public function loadSessionVars()
    {

        $result = $this->db->query("SELECT name, value FROM sess_vars WHERE session_id='".$this->sess_id."'");
        while($row = $result->fetch_assoc())
        {

            $this->setVar($row['name'], $row['value']);
        }
    }

    
    public function install()
    {

        $query =
'CREATE TABLE IF NOT EXISTS `sessions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sess_key` varchar(255) NOT NULL,
  `started` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;'
;

        $this->db->query($query);
        
        $query =
'CREATE TABLE IF NOT EXISTS `sess_vars` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `session_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `value` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `session_id` (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;'
;

        $this->db->query($query);
    }
}


$db = new Database(DB_HOST, DB_USER, DB_PASS, DB_DBASE);
$sn = new OwnSession($db);

// create database tables
$sn->install();
echo 'vorige tijd: ' . $sn->getVar('time');
$sn->setVar('time', date('H:i:s'));
?>
Gewijzigd op 25/10/2013 00:39:04 door Frank Nietbelangrijk
 



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.