Session Class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

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 We verwachten van je,

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

Fullstack Developer TOTO

Do you want to work with the latest technologies on the development of new systems and applications? Get moving and strengthen Nederlandse Loterij as a Fullstack Developer TOTO. Thanks to your efforts, complex business critical applications are always running smoothly. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Fullstack Developer you score by: Taking ownership of the development cycle of an application in a large scale, high availability, geo redundant landscape Coaching your peer developers and safeguarding code quality Integrating the application with other components of the system using the available API’s Managing

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

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 »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

Medior Java developer

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 »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

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

23/11/2024 09:23:20
 
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.