session_handler

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

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 »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

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 »

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 »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

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 »

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

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

31/05/2024 03:34:23
 
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.