Session Class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end React developer

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Laravel developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Medior/senior PHP ontwikkelaar E-commerce

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

Bekijk vacature »

.NET developer

Functie As a .NET developer you start in a driven and diverse development team. Your team consists of 16 IT professionals, including 7 software engineers. Because your new employer is internationally active, there are also international IT professionals working in the IT department. As a result, the official language is English. As a team you are responsible for a new Cloud Native product. This product runs entirely in Azure with a Progress Database and various Azure Functions. In addition, this product has a JS front-end, a REST API system and a layer in C # .NET. The idea is therefore

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

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 »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Barendrecht! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »
Jaws

Jaws

19/11/2008 17:21:00
Quote Anchor link
Ik wil onderstaande zelf gebouwde custom session handler class gebruiken. Alles werkt op zich. Behalve gaat er iets fout hij het cleanen van de sessie. Ik heb voor te testen de maxlifetime op 15s ingesteld, en de kans op cleaning is 100%, dus elke keer wordt de cleaning functie aangeroepen.

In de database worden de sessie's opgeslagen. Zoals je aan de clean_session() functie ziet, worden oude sessies gedeleted. Echter wanneer ik na 15sec de pagina refresh, staat de sessie nog altijd in de DB. Op een of andere manier wordt de sessie wel gewijzigd, maar direct daarna weer aangemaakt met de zelfde data. Dat eerste kan ik nog verklaren, maar het tweede niet? Wie weet wat hier aan te doen is, volgens mij zie ik gewoon iets over het hoofd.

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
<?php
class session {
    private $instance;
    
    function
__construct() {
        session_set_save_handler(
        array($this, "open_session" ),
        array($this, "close_session" ),
        array($this, "read_session" ),
        array($this, "write_session"),
        array($this, "destroy_session"),
        array($this, "clean_session" )
        );
    }
    
    function
open_session() {
        require_once('mysql.class.php');
        if ($this->instance = mysql::get_instance()->connection) {
            return true;
        }
    }
    
    function
close_session() {
        return mysql_close($this->instance);
    }

    function
read_session($sid) {
        $query = sprintf('SELECT data FROM sessions WHERE id="%s"',mysql_real_escape_string($sid));
        $result = mysql_query($query);
        if (mysql_num_rows($result) == 1) {
            list($data) = mysql_fetch_array($result);
            return $data;
        }

        else {
            return '';
        }
    }

    function
write_session($sid, $data) {
        $query = sprintf('REPLACE INTO sessions (id, data, last_accessed) VALUES ("%s", "%s", NOW())',mysql_real_escape_string($sid), mysql_real_escape_string($data));
        $result = mysql_query($query);
        return mysql_affected_rows($this->instance);
    }

    function
destroy_session($sid) {
        $query = sprintf('DELETE FROM sessions WHERE id="%s"',mysql_real_escape_string($sid));
        $result =  mysql_query($query);
        $_SESSION = array();
        return mysql_affected_rows($this->instance);
    }

    function
clean_session($expire) {
        $query = sprintf('DELETE FROM sessions WHERE DATE_ADD(last_accessed, INTERVAL %d SECOND) < NOW()', (int) $expire);
        $result = mysql_query($query);
        return mysql_affected_rows($this->instance);
    }
    
    function
__destruct() {
        session_write_close();
        $this->instance = null;
    }
}


//ini-settings
ini_set('session.gc_maxlifetime','15');
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);

$session = new session();

session_start();
?>
 
PHP hulp

PHP hulp

28/04/2024 12:07:45
 
Jelmer -

Jelmer -

19/11/2008 17:46:00
Quote Anchor link
Volgens mij gebeurt er dit:

Jij laadt pagina
-> session_start
-> session_close
-> INSERT
-> clean (maar niet die vorige insert, die is nog geen 15 sec oud)

Jij herlaadt de pagina
-> session_start
-> session_close
-> REPLACE
-> clean (de oude is nu met een nieuwe datum, dus ook dit maal wordt hij niet weggedaan)

Je zou het kunnen testen door een tweede browser erbij te pakken, en die ook de pagina te laten laden. Aangezien de twee browsers niet hun cookies, en dus hun sessies delen, zou je twee sessies moeten zien hierna. Na 15 seconden herlaadt je de pagina in één van de twee browsers. Hierna zou dan nog maar 1 sessie in de database aanwezig moeten zijn.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Jaws

Jaws

19/11/2008 19:56:00
Quote Anchor link
Ik had 2 sessies geopend. 1 in FF en 1 in IE. Er stonden toen inderdaad 2 records in de DB. Toen ik de FF page deed refreshen, toen verdwenen beide records??!!

Ik snap eigenlijk nog steeds niet waar nu de fout zit. Ik heb echo's in de session_write en de session_clean functies gezet om te kijken wanneer ze uitgevoerd worden.

Dit is de volgorde:
eerst clean en dan write

Ik zou denken dus, dat tijdens de clean de sessie uit de DB gegooid wordt (wat ook werkelijk gebeurd want mysql_affected_rows geeft 1 terug). En dan komt die write, en op een of andere manier schrijft hij de sessie opnieuw in de DB inc. alle data. Hoe kan ik dit nu oplossen?

Update:
Ok, ik heb een soort work around gevonden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function clean_session($expire) {
        $query = sprintf('DELETE FROM sessions WHERE DATE_ADD(last_accessed, INTERVAL %d SECOND) < NOW()', (int) $expire);
        $result = mysql_query($query);
        if (mysql_affected_rows($this->instance)) {
            session_destroy();
            return true;
        }
    }

?>


Maar volgens mij houdt dit dus in dat als er een record gevonden wordt wat ouder is dan $expire dan wordt de huidige sessie beeindigd. Dit is dus nog steeds niet goed want, er zijn straks meerdere sessies in die DB, dus 1 verlopen sessie, moet niet inhouden dat ze allemaal verlopen :(

Niemand die ooit een gelijke classe heeft gemaakt of gezien??
Gewijzigd op 01/01/1970 01:00:00 door Jaws
 
Jaws

Jaws

21/11/2008 11:07:00
Quote Anchor link
*bump* niemand?
 



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.