.sql file restoren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »

Java Full Stack Developer

Java Full Stack developer What makes Cognizant a unique place to work? The combination of rapid growth and an international and innovative environment! This is creating a lot of opportunities for people like YOU — people with an entrepreneurial spirit who want to make a difference in this world. At Cognizant, together with your colleagues from all around the world, you will collaborate on creating solutions for the world's leading companies and help them become more flexible, more innovative and successful. And this is your chance to be part of the success story: we are looking for a (Senior) Java

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

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 »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

Bekijk vacature »

PHP Web Developer

Functie omschrijving Voor een klein softwarebedrijf in de omgeving Roosendaal, zijn wij op zoek naar een PHP web developer met een aantal jaar werkervaring. Wil jij graag werken aan in-house software projecten voor diverse klanten? Voel jij je prettige in een klein team developers, waar jouw inbreng enorm gewaardeerd wordt? Lees dan snel verder! Jouw werkzaamheden zien er als volgt uit: Je wordt verantwoordelijk voor de ontwikkeling van diverse applicaties. Dit kan de ene keer een online platform voor aanbiedingen zijn, en de andere keer een software pakket dat gebruikt wordt om interne processen te automatiseren. Het zijn stuk voor

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 01:52:00
Quote Anchor link
Ik heb een php script geschreven wat een .sql file maakt met een backup van de database.

Nu wil ik ook graag een script wat de laatste file automatisch restored mocht de database corrupt zijn, de check hiervoor heb ik al, ik loop alleen vast bij het restoren opzich.

Ik heb het bestand uitgelezen en hoopte dat als ik de lap tekst in een mysql_query(); zou stoppen het zou werken, maar dat is dus niet zo.

Om te testen heb ik een kleine db aangemaakt, en daar is het volgende bestand van gemaakt:
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
#Create table testtabel

CREATE TABLE `testtabel` (
`veld1` int(11) NOT NULL auto_increment,
`veld2` varchar(255) NOT NULL,
`veld3` decimal(6,2) NOT NULL,
PRIMARY KEY (`veld1`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

#Dump data

INSERT INTO testtabel SET veld1='1',veld2='dfsalk;jafdskjl',veld3='2.50';
INSERT INTO testtabel SET veld1='2',veld2='fdsjlkfdsjlk',veld3='8.60';
INSERT INTO testtabel SET veld1='3',veld2='sfd879243fds980ufdsjokdsf0u9832f0u9dsffds',veld3='887.00';


Zodra ik dit in de mysql_query(); stop, komt er de volgende foutmelding: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; #Dump data INSERT INTO testtabel SET veld1='1',veld2='dfsalk;jafdskjl',veld3' at line 8

Hij accepteert de create tabel dus wel, maar zodra de data ingevoegd gaat worden, gaat het fout.
Wat moet ik doen om dit wel te doen lukken?
 
PHP hulp

PHP hulp

27/04/2024 03:38:56
 
- -

- -

15/04/2008 06:49:00
Quote Anchor link
De query's los uitvoeren, je moet dus met explode gaan splitten op ;, en dan met een foreach erdoorheen lopen, en ze los uitvoeren.
 
GaMer B

GaMer B

15/04/2008 07:06:00
Quote Anchor link
Je syntax voor een INSERT INTO query klopt niet. De juiste INSERT INTO synax is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO (vel1, veld2, veld3) VALUES ('waarde1', 'waarde2', 'waarde3')
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 12:10:00
Quote Anchor link
@Jonathan, is inderdaad ook wel logisch, maar was al laat, laten we het daar maar op schuiven.
Het werkt nu.

@GaMer, Die foute syntax was me nog niet eens opgevallen, maar ik had het script dat die syntax maakte wel uit de script library hier.
 
Bo az

Bo az

15/04/2008 12:12:00
Quote Anchor link
Die syntax werkt ook wel maar alleen met MySQL, dus het is aan te raden een andere syntax te gebruiken.
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 12:32:00
Quote Anchor link
Ik heb dit script als inspiratie gebruikt:
http://www.phphulp.nl/php/scripts/7/261/

En daar heb ik het volgende van gemaakt:
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
<?php
mysql_connect("localhost","user","ww");
mysql_select_db("db");

//query to receive table names
$query = mysql_query('SHOW TABLE STATUS') or die(mysql_error());
$sql_backup = '';

if (mysql_num_rows($query) == 0) //database is leeg, restoren met de meest recente backup
{
    $map = 'mysql_backups';
    $dir = opendir($map);
    
    while(false !== ($file=readdir($dir)))
    {

        if(($file!=".") && ($file!=".."))
        {

            $backups[]    = $file;
        }
    }

    //sorteren van hoog naar laag, oftewel, de meest recente als eerst
    rsort($backups);
    
    $file = 'mysql_backups/'.$backups[0];
    chmod($file,0777);
    $open = fopen($file, "r");
    $data = fread($open, filesize($file));
    fclose($open);
    
    $array = explode(';',$data);
    
    foreach ($array as $array2)
    {

        mysql_query($array2) or die (mysql_error());
    }

    
    //e-mail sturen dat de database teruggezet is
    $bericht    = "Er is geconstateerd dat de database leeg was.
    Zojuist is de laatste database backup teruggezet."
;
    
    $headers    = "FROM: ....\r\n";
    $headers    .= "Reply-To: ...\r\n";
    
    mail('[email protected]','Database restored!',$bericht,$headers);
}

else //database is niet leeg, dus backuppen
{

//whileloop to loop trough every table
while($row = mysql_fetch_assoc($query))
{

    //show sql query to rebuild the query
    $sql = 'SHOW CREATE TABLE '.$row['Name'].'';
    //exucte error or give a error
    $query2 = mysql_query($sql) or die(mysql_error());
    
    //create sql
    $sql_backup.="\r\n#Create table ".$row['Name']."\r\n\r\n";
    $out = mysql_fetch_assoc($query2);

    $sql_backup.=$out['Create Table'].";\r\n\r\n";
    $sql_backup.="#Dump data\r\n\r\n";

    //SQL code to select everything for table
    $sql = 'SELECT * FROM '.$row['Name'];
    $out = mysql_query($sql);
    $sql_code = '';

    //loop trough the colloms
    while($code = mysql_fetch_array($out,MYSQL_ASSOC))
    {

        $sql_code .= "INSERT INTO ".$row['Name']." (";
        
        foreach($code as $insert => $value)
        {

            $sql_code .=$insert.", ";
        }

        $sql_code = substr($sql_code, 0, -2);
        
        $sql_code .= ") VALUES (";
        
        foreach($code as $insert => $value)
        {

            $sql_code.="'".addslashes($value)."', ";
        }

        $sql_code = substr($sql_code, 0, -2);
        $sql_code .= ")";
        $sql_code .= ";\r\n";        
    }

    $sql_backup.= $sql_code;
}


//function to be able to store data in a txt file

//store data

$text = $sql_backup;
$bestand = 'mysql_backups/'.date("YmdHis").'.txt';

file_put_contents($bestand, $text);

}


?>


misschien dat andere mensen nog wat met deze code kunnen, hij werkt namelijk prima nu.

hetgeen deze code doet is kijken of de database gevuld is met data, als dat het geval is, dan een backup maken en wegschrijven naar een directory, als de database leeg blijkt te zijn kijkt hij voor de meest recente backup en zet die terug.
Het werkt uiteraard alleen als alle tabellen weg zijn en niet als de hele database weg is, maar dat is weer een ander verhaal.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Frank -

Frank -

15/04/2008 16:09:00
Quote Anchor link
Veilig backups maken met een PHP-script (of welke scripttaal dan ook), is technisch onmogelijk. Sta dus niet gek te kijken wanneer de boel volledig in het honderd loopt wanneer je de backup écht nodig hebt.

Gebruik échte tools om backups te maken, bv. Backup van MySQL (zie de handleiding).
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 16:49:00
Quote Anchor link
@Frank: dit is een tijdelijke oplossing voor 2 weken omdat de huidige website (gelukkig niet door mij gescript) vrijwel elke dag last heeft van mysql injection, waarschijnlijk iemand die elke dag even langskomt, en daarbij de volledige database leegt.

De huidige scripts zijn echt werkelijk waar nergens beveiligt hiertegen, en daarom moet ik dan ook een volledig nieuwe website ontwikkelen, en dit script is om de hinder als de database weer geleegt is zo kort mogelijk te houden.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Jesper Diovo

Jesper Diovo

15/04/2008 16:53:00
Quote Anchor link
Quote:
vrijwel elke dag last heeft van mysql injection, waarschijnlijk iemand die elke dag even langskomt, en daarbij de volledige database leegt.

Haha, lache! Dat ze zo'n script geaccepteerd hebben dan. Niet eens zelf even getest? Ach, de opdrachtgevers zullen wel geen ervaring zelf hebben ;-). Ook slecht dan van de scripter om zoiets af te leveren, zou mezelf kapot schamen...

Edit: Misschien een wat makkelijker, maar toch snelle oplossing. Weet niet precies over wat voor een grootte qua website (scripting) praten, maar misschien is het een idee om bij ieder formulier (of gewoon bovenaan de indexpagina als alle pagina's included worden) even onderstaande functie over de $_POST variabele te laten gaan. Datzelfde geldt voor de $_GET variabele.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function mysql_real_escape_array($array) {
    if(is_array($array)) {
        foreach($array as $key => $value) {
            $array[$key] = mysql_real_escape_string($value);
        }
    }

    
    return $array;
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Frank -

Frank -

15/04/2008 16:54:00
Quote Anchor link
Dit meen je niet! Anno 2008 zijn er nog sukkels die dit soort waardeloze scripts weten te produceren of online hebben staan... Hoe is het mogelijk!
 
Jurgen assaasas

Jurgen assaasas

15/04/2008 16:59:00
Quote Anchor link
Djemo schreef op 15.04.2008 16:53:
Quote:
vrijwel elke dag last heeft van mysql injection, waarschijnlijk iemand die elke dag even langskomt, en daarbij de volledige database leegt.

Haha, lache! Dat ze zo'n script geaccepteerd hebben dan. Niet eens zelf even getest? Ach, de opdrachtgevers zullen wel geen ervaring zelf hebben ;-). Ook slecht dan van de scripter om zoiets af te leveren, zou mezelf kapot schamen...

Edit: Misschien een wat makkelijker, maar toch snelle oplossing. Weet niet precies over wat voor een grootte qua website (scripting) praten, maar misschien is het een idee om bij ieder formulier (of gewoon bovenaan de indexpagina als alle pagina's included worden) even onderstaande functie over de $_POST variabele te laten gaan. Datzelfde geldt voor de $_GET variabele.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function mysql_real_escape_array($array) {
    if(is_array($array)) {
        foreach($array as $key => $value) {
            $array[$key] = mysql_real_escape_string($value);
        }
    }

    
    return $array;
}

?>


De klant zelf kan hier misschien niets aan doen, dat zal wel een flut programmeur zijn geweest dan om zoiets bij een klant af te leveren. Ik zal nie ontkennen dat ik vanaf begin af aan 100% veilige scripts maakte (en nu nog niet 100%, wel op SQL niveau uiteraard). Maar ik vind het gewoon slecht dat zoiets bij een klant wordt afgeleverd terwijl SQL-injection bij elke redelijke programmeur toch wel bekend is, en ook de middelen daar tegen.
 
Frank -

Frank -

15/04/2008 17:10:00
Quote Anchor link
Gewoon een dikke schadeclaim naar de programmeur toesturen en hem voor de kosten op laten draaien. Hij heeft het ook veroorzaakt, dit soort onzin hoef je echt niet te accepteren.
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 22:55:00
Quote Anchor link
goed, ik moet de problemen nu oplossen, of de vorige programmeur nu een schadeclaim aan zijn broek krijgt zal mij worst zijn, dat is voor de opdrachtgever.

Echter heb ik bij bovenstaand script een probleem, zodra ik hem laat draaien op een database van een ruime 9 mb met zo'n 200.000 records duurt het zo'n 3 minuten voor hij klaar is, daar heb ik geen problemen mee, maar zodra hij klaar is komt er een standaard downloadschermpje in beeld waarmee ik het php bestand opzich kan downloaden, als je dat doet krijg je een leeg .php bestand.
Tevens wordt er geen backup opgeslagen in de map.

Wat gaat er fout, bij een test op een kleinere database met een 10 tal tabellen en 500 records ging het wel goed, enige wat er gebeurt is, is de inloggegevens aangepast.
 
Jesper Diovo

Jesper Diovo

15/04/2008 22:58:00
Quote Anchor link
Max execution time is dan bereikt. Misschien kun je toch beter voor mijn functie-oplossing gaan. Zo'n backup telkens maken en er weer opzetten zal op den duur ook z'n errors gaan opleveren.
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 23:01:00
Quote Anchor link
zoals ik al zei is het maar voor 2 weken en het is een website met zo'n 120 pagina's, heb niet bepaald de behoefte die allemaal te gaan voorzien van die code.

de time_limit heb ik op 0 gezet, en dat werkte, dus hij loopt gewoon helemaal uit.
 
Frank -

Frank -

15/04/2008 23:14:00
Quote Anchor link
120 pagina's, 10 queries per pagina: 1200 queries.

30 seconden per query om de boel te beveiligen: 600 minuten, 10 uur werk.

Je had dus al klaar kunnen zijn...
 
Stefan van Iwaarden

Stefan van Iwaarden

15/04/2008 23:58:00
Quote Anchor link
los van het feit dat de opdrachtgever nog diverse andere aanpassingen aan de site wil zodusdanig veel en ingrijpend dat het maken van een nieuw systeem makkelijker voor mij werkt dan het huidige systeem proberen te doorgronden.

maar dat was niet mijn vraag, het gaat nu om dit kleine scriptje, de rest zal wel lukken.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 



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.