automatische sessie verlenging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Back End Developer

As a Back End developer at KUBUS you will be developing the (web) application and services of BIMcollab. You have a focus on the back end of our software, for which we mainly work with C# and .NET. We use a full-stack approach, which means that in addition to the back-end, you will also help with other parts of the code. 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

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Front-end Developer

Functie omschrijving Gezocht front-end developer! Voor een toffe organisatie in de regio Rhenen zij wij op zoek naar een front-end developer die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. In deze functie heb je een adviserende rol en beschik je over een grote dosis vakinhoudelijke kennis. Samen met collega’s en klanten overleg je om aangeleverde designs om te zetten naar unieke concepten. Zo draag jij je steentje bij aan de groeiambities van de klant. Voor klanten wordt jij het vaste aanspreekpunt als het gaat over planningen hierin houdt je alle betrokkenen goed op de

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

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 »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

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 »

C# .NET Software Ontwikkelaar

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Arnhem gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

Senior .NET Developer I goed salaris en deels thui

Bedrijfsomschrijving Mijn opdrachtgever is al ruim 20 jaar een gevestigde naam in de wereld van software ontwikkeling, met drie kantoren in de Randstad, waaronder Alphen aan den Rijn. Zij richten zich op het bouwen van IT-oplossingen die ervoor zorgen dat de productiviteit van klanten te allen tijden optimaal is. Hiervoor neemt jouw nieuwe werkgever het volledige ontwikkelproces tot haar rekening; van het eerste gesprek om de klantwensen in kaart te brengen, tot aan het uiteindelijke onderhoud van de opgeleverde oplossing. In totaal werken er inmiddels bijna 200 gemotiveerde IT-ers binnen deze organisatie. De gemiddelde leeftijd ligt rond de 35. Het

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

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

14/11/2024 18:32:40
 
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.