automatische sessie verlenging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Junior .NET developer

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

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat 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. 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? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

Bekijk vacature »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

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 »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

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 »

Ervaren PHP Developer

Functie omschrijving Jelling IT zoekt ervaren PHP developer! Voor een organisatie in de regio Rhenen zijn wij op zoek naar een ervaren PHP developer die gaat functioneren als een verlengstuk van de klant. Jij bent iemand die technisch complexe zaken met enthousiasme aanvliegt. Je bent in staat om aan meerdere projecten te werken en werkt graag met de nieuwste technieken. In deze functie werk je veel samen met front-end developers en stel je alles in het werk om grote verschillen voor de klanten teweeg te brengen. Verder ben jij iemand die graag zichzelf uitdaagt en die altijd de beste wilt

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

20/04/2024 08:58:34
 
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.