session_handler

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior PHP developer

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

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 »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een ontwikkelteam met 15 developers en twee testers. Samen zijn jullie verantwoordelijk voor financiële applicaties met meer dan 50.000 gebruikers. Een deel van het team is verantwoordelijk voor de webapplicaties van deze organisatie. Ook zijn er twee app ontwikkelaars werkzaam in het team die zich focussen op de mobiele applicatie. Als .NET ontwikkelaar ga jij aan de slag met de webapplicaties van deze organisatie. Hierbij maak jij o.a. gebruik van C# .NET, ASP.NET, T-SQL, Angular en TypeScript. De nadruk van jouw functie ligt wel op de backend van de applicatie. Wat jouw functie

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

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 »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »
Bjorn Vennema

Bjorn Vennema

19/03/2008 16:12:00
Quote Anchor link
Hoi allemaal,

Ik ben de laatste tijd bezig geweest met een session handler om sessies naar de database te schrijven. Nu gaat er alleen iets mis met het schrijven naar de database. De sessie wordt geschreven, alleen is het sessie_id regelmatig 0 en wordt de waarde nooit ingevuldt. De schrijf functie van de handler is:

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
<?
function write($ses_id,$ses_data)
{

    //$ses_id is het id van de sessie, net zoals bij de read functie
    //$ses_data is de data die geschreven moet worden
    
    //we gaan de controle aanmaken, zodat de sessie ook alleen bij 1 ip geldig is:

    $controle = md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']);
    
    //uiteraard willen we alles weer in de DB schrijven. Hiervoor weer een query opstellen:
    $query  = "INSERT INTO Sessies";            //we gaan de gegevens in de tabel Sessies opslaan
    $query .= " (sessie_id,tijd_aangemaakt,waarde, controle)"; //de velden waar de gegevens moeten komen
    $query .= " VALUES";                            //uiteraard moeten er gegevens in komen
    $query .= " ('".mysql_real_escape_string($ses_id)."', NOW(),
    '"
.mysql_real_escape_string($ses_data)."', '".$controle."')";                    //en dit zijn de gegevens die we in de DB zetten
    
    //nu gaan we die query weer uitvoeren

    $result = mysql_query($query);
    
    //en kijken of dat gelukt is
    if(!$result)
    {

        //niet gelukt
        return false; //terugsturen dat het verkeerd ging
    }
    else
    {
        //het is gelukt waarschijnlijk gelukt. Nog 1 laatste check:
        if(mysql_affected_rows() != 1)
        {

            //het aantal aangepaste rijen is niet 1. Dus blijkbaar ging er toch iets fout.
            return false; //terugsturen dat er iets fout ging
        }
        else
        {
            //alles ging goed en de sessie is opgeslagen
            return true; //terugsturen dat alles gelukt is
        }
    }
}
?>


Schrijven gebeurt gewoon door $_SESSION['bla'] = "tekst";

Heeft iemand een idee waarom het fout gaat?
 
PHP hulp

PHP hulp

09/05/2024 02:29:51
 
Mike van Dongen

Mike van Dongen

19/03/2008 16:23:00
Quote Anchor link
wat is de foutmelding?
gebruik anders error_reporting(E_ALL | E_NOTICE);
 
Jesper Diovo

Jesper Diovo

19/03/2008 16:27:00
Quote Anchor link
Staat er wel session_start(); boven ieder bestand? Anders zal de sessie niet eens worden doorgegeven...

Wat geeft mysql_error() terug? Wat krijg je te zien als je de query echo'd? Klopt dan alles?
 
Bjorn Vennema

Bjorn Vennema

19/03/2008 16:29:00
Quote Anchor link
Er ontstaan geen foutmeldingen. Dat is juist het hele probleem. Hij wil alleen gewoon de data niet juist in de DB zetten. Snap niet waarom dat niet gebeurt?

session_start(); staat overal boven. mysql_error() geeft ook niets.

Wat zou je moeten krijgen als je de query echo'd
Gewijzigd op 01/01/1970 01:00:00 door Bjorn Vennema
 
Joren de Wit

Joren de Wit

19/03/2008 16:33:00
Quote Anchor link
Wat versta jij onder 'niet juist'?

In je huidige script geef je nergens een foutmelding als je query mislukt. Het enige dat je doet is de functie false terug laten geven, maar een SQL foutmelding wordt nergens getoond...
 
Bjorn Vennema

Bjorn Vennema

19/03/2008 16:39:00
Quote Anchor link
onder niet juist versta ik dat de gegevens niet goed in de database komen te staan. Je hebt gelijk over de SQL foutmeldinngen. Deze zal ik er in zetten.

Edit: Er worden bij het uitvoeren van het script ook geen foutmeldingen geproduceerd. Ik denk dat de variabelen ses_data en ses_id dan leeg zijn? Maar dat zouden variabelen moeten zijn die door de sessie meegegeven moeten worden...toch?
Gewijzigd op 01/01/1970 01:00:00 door Bjorn Vennema
 
Joren de Wit

Joren de Wit

19/03/2008 16:44:00
Quote Anchor link
Ja maar wat bedoel je dan weer met 'niet goed'?!

Komt er niets in de database, komen er incorrecte gegevens in de database, etc? Probeer nu eens precies te omschrijven wat er fout gaat. 'Niet juist' en 'niet goed' zijn zo nietszeggend. Dat is het zelfde als dat ik zou zeggen: 'Mijn script werkt niet goed, kun je me helpen?'...
 
Bjorn Vennema

Bjorn Vennema

19/03/2008 16:51:00
Quote Anchor link
Ik heb in de database een tabel met de velden: sessie_id, tijd_aangemaakt, waarde en controle. De velden controle en tijd_aangemaakt worden ingevuld zoals het hoort. Het veld sessie_id krijgt steeds als waarde 0. Leeg dus. Het veld waarde blijft ook leeg.
 
Joren de Wit

Joren de Wit

19/03/2008 16:53:00
Quote Anchor link
Nou dan weet je dus direct dat de variabelen $ses_id en $ses_data niet correct en dus blijkbaar ook leeg zijn. Dat zul je dus moeten gaan controleren...
 

19/03/2008 16:56:00
Quote Anchor link
Wat voor datatypes zijn al je velden in je database? En dan vooral de sessieid.
 
Bjorn Vennema

Bjorn Vennema

19/03/2008 17:08:00
Quote Anchor link
Toen ik de $ses_id en $ses_data ging afvangen in de handler, werd de waarde opeens geschreven, terwijl ik toch echt niets verandert heb in de overige code. Vraag me dus niet wat de fout zelf was, ik weet het niet. Het script is nu echter wel weer uitgebreid met extra foutafhandeling. Bedankt voor het helpen en meekijken in ieder geval.

Edit: sessie_id is type Int(eger) en waarde is Varchar
Gewijzigd op 01/01/1970 01:00:00 door Bjorn Vennema
 
Jurgen assaasas

Jurgen assaasas

19/03/2008 17:45:00
Quote Anchor link
Björn schreef op 19.03.2008 16:29:
Er ontstaan geen foutmeldingen. Dat is juist het hele probleem. Hij wil alleen gewoon de data niet juist in de DB zetten. Snap niet waarom dat niet gebeurt?

session_start(); staat overal boven. mysql_error() geeft ook niets.

Wat zou je moeten krijgen als je de query echo'd



session_start is niet nodig indien er een eigen session handler is. Je moet geloof ik zorgen dat de sessie pas wordt gesloten na de laatste </html> dmv.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
 
Jelmer -

Jelmer -

19/03/2008 17:52:00
Quote Anchor link
Hoe registreer je de functie, en kloppen de andere callbacks wel? Zie ook session_set_save_handler.

Verder, weet je zeker dat sessie_id een nummer is? PHP Sessies zijn namelijk een md5-hash van iets, en ik merk niet dat je ergens een eigen sessie-id genereert. Een type CHAR(32) zou beter op z'n plaats zijn.

Overigens is de Varchar wel groot genoeg? Bij mijn weten heeft die een limiet van 255 karakters, en wanneer je grotere dingen in de sessie zet (de data van een sessie is het resultaat van serialize uitgevoerd op de $_SESSION array) wordt je data maar deels opgeslagen. Met als gevolg dat bij de eerst volgende keer dat je de sessie probeert uit te lezen, unserialize (wat intern gebruikt wordt om de $_SESSION array vervolgens weer te vullen) zal zeuren over een niet geldige waarde, en niets zal teruggeven. Resultaat: geen sessie meer. Ik zou voor een TEXT of misschien wel BLOB veld gaan. BLOB omdat je de data niet als tekst hoeft te behandelen, al is het in weze gewoon een enorme string waar je niet veel mee kan. Het vertoont op zich vrij veel overeenkomsten met binaire data.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Frank -

Frank -

19/03/2008 17:53:00
Quote Anchor link
Jurgen schreef op 19.03.2008 17:45:
session_start is niet nodig indien er een eigen session handler is.
Is dat zo? Bij mijn weten behandel je in jouw php-code een sessie zoals je altijd een sessie behandeld, maar wordt de sessie intern alleen anders verwerkt. Niet meer in een bestandje maar in de database. session_start() heb je dan ook gewoon nodig.

Of ik sla de plank flink mis, wat nooit helemaal is uit te sluiten...
 
Jurgen assaasas

Jurgen assaasas

19/03/2008 18:06:00
Quote Anchor link
pgFrank schreef op 19.03.2008 17:53:
Jurgen schreef op 19.03.2008 17:45:
session_start is niet nodig indien er een eigen session handler is.
Is dat zo? Bij mijn weten behandel je in jouw php-code een sessie zoals je altijd een sessie behandeld, maar wordt de sessie intern alleen anders verwerkt. Niet meer in een bestandje maar in de database. session_start() heb je dan ook gewoon nodig.

Of ik sla de plank flink mis, wat nooit helemaal is uit te sluiten...


Zoals ik gelezen heb in PHP 5 voor gevorderden is dit niet nodig (ik dacht nl. ook eerst dat de schrijver het fout had). Zelf heb ik dit nog niet getest maar zo zou het moeten zijn. Wel benadrukte hij dat er na de laatste </html> een session_write_close() moet komen anders wordt de sessie niet geschreven naar de database. Omdat hij 2 functies aanroept bij het sluiten, nl. schrijven en sluiten.
 
Frank -

Frank -

19/03/2008 18:12:00
Quote Anchor link
Dit is wat Zend er van zegt, dus inclusief het gebruik van session_start(). Maar wellicht zijn er meerdere wegen naar die naar Rome leiden.
 
Bjorn Vennema

Bjorn Vennema

20/03/2008 14:50:00
Quote Anchor link
wat ik heb gelezen moet session_start weldegelijk gebruikt worden en wordt de sessie intern anders behandeld. Zoals Frank al zegt.
@Jelmer: De waarde is in mijn geval niet zo heel groot, het slaat 2 sessie variabelen op en dat past prima in een varchar veld. Ik snap echter je punt, waardoor het inderdaad handiger wordt. Daarnaast ga ik nu eens testen of het id in een char veld werkt.

Edit: Inderdaad is een char veld hier de oplossing. Ik ging ervanuit dat het id uit een nummer zou bestaan, maar dat is niet het geval. Een char veld van 32 karakters biedt uitkomst, daar het id ook precies 32 karakters lang wordt.
Gewijzigd op 01/01/1970 01:00:00 door Bjorn Vennema
 



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.