Foutmeldingen in/bij formuliervelden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

Bekijk vacature »

Klein team zoekt grote fullstack .NET developer to

Bedrijfsomschrijving Deze werkgever is marktleider in de Benelux en is Europees ook al aardig aan de weg aan het timmeren. Ze voorzien technische winkels van apparatuur om producten een langer leven te geven. Hiermee reduceren ze flink wat CO2 uitstoot en dat is natuurlijk goed voor iedereen! IT speelt een belangrijke rol in de bedrijfsvoering en de applicaties zijn van goed niveau. Als fullstack .NET developer ga jij je bijdrage leveren aan het verder verbeteren van de applicaties en de interne processen. Ze zijn nu met ruim 50 medewerkers in totaal en de afdeling development bestaat uit een 5tal developers.

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 »

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 »

Front-end (Angular) developer - remote werken

Functie Als Front-end (Angular) developer ga je aan de slag met het uitbouwen van hun webapplicatie, als één van de front-end experts ga je samen met collega’s in een devops team werken aan een nieuw front-end voor hun calculatie oplossing. Binnen de calculatiesoftware kunnen meerdere professionals tegelijk samenwerken, 3D calculaties uitvoeren en ook inzien met de benodigde specifieke details. Deze software wordt veel ingezet om projectbeschrijvingen en kosten in kaart te brengen, en tijdens de uitvoering te bewaken. Maar hiernaast liggen er in de toekomst veel meer plannen op het gebied van front-end in de andere applicaties. Genoeg te doen

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

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 »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

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 »

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 »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »
Krist Ensing

Krist Ensing

20/08/2013 16:46:05
Quote Anchor link
Ik heb een formulier gemaakt volgens OOP principe. Ik wil dat de Error message in het formulier getoond wordt op de plek waar het veld fout is. Hoe kan ik dit regelen?

In het vogende stuk code (Ik weet niet hoe ik de stukken code van elkaar kan schreiden:
Code Form class:
Code Element class
Code Text Element
Code RegistratieForm
Code formulier.php


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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
<?php


abstract class Form implements IForm {

    private $elements;
    private $id;
    private $action;
    private $method;
    private $attribs;
    private $isGeldig;
    private $errorMessages;
    private $values;

    const METH_POST = 'post';
    const METH_GET = 'get';

    public function __construct($options) {
        $this->isGeldig = true;
        $this->errorMessages = array();
        $this->values = array();
        $this->id = isset($options['id']) ? $options['id'] : 'Formulier';
        $this->action = isset($options['action']) ? $options['action'] : '#';
        $this->method = isset($options['method']) ? $options['method'] : self::METH_POST;
        //attribs zijn alle overige HTML-attributen die je aan een formulier zou willen toekennen: style, class etc.
        $this->attribs = isset($options['attribs']) ? $options['attribs'] : '';
    }


    public function add(IElement $elm) {
        $this->elements[$elm->getName()] = $elm;
    }


    public function render() {
        //PHP_EOL is een ingebouwde constante in PHP die een nieuwe regel maakt (zie je in broncode van de HTML)

        $html = "<form method='{$this->method}' action='{$this->action}' id='{$this->id}' {$this->attribs}>" . PHP_EOL;
        foreach ($this->elements as $element) {
            $html .= $element->render() . '<br />' . PHP_EOL;
        }

        $html .= "</form>" . PHP_EOL;
        return $html;
    }


    public function isValid() {
        $this->clean();
        foreach ($this->elements as $element) {
            if (!$element->isValid()) {
                $this->isGeldig = false;
                $this->errorMessages[$element->getName()] = $element->getMessages();
            }
        }


        return $this->isGeldig;
    }


    public function getMessages() {
        return $this->errorMessages;
    }


    public function clean() {
        foreach ($this->elements as $element) {
            $element->clean();
        }
    }


    public function getValues() {
        foreach ($this->elements as $key => $element) {
            $this->values[$key] = $element->getValue();
        }

        return $this->values;
    }

}

?>


code class Element
<?php

abstract class Element implements IElement {


    protected $filters;
    protected $validators;
    protected $options;
    protected $value;
    protected $name;
    protected $label;
    protected $attribs;

    protected $isGeldig;
    protected $errorMessages;

    public function __construct(array $options = array())
    {

        $this->isGeldig = true;
        $this->filters = array();
        $this->validators = array();
        $this->value = '';
        $this->setOptions($options);
    }


    public function setOptions(array $options)
    {

        $this->name = isset($options['name']) ? $options['name'] : 'standaardnaam'; //eigenlijk moet de naam worden getest; niet alle namen zijn volgens de HTML-specs toegestaan!
        $this->label = isset($options['label']) ? $options['label'] : 'label';
        $this->value = isset($options['value']) ? $options['value'] : '';
        $this->attribs = isset($options['attribs']) ? $options['attribs'] : '';
        if (isset($options['validators']) && is_array($options['validators'])) {
            foreach ($options['validators'] as $validator) {
                $this->addValidator($validator);
            }
        }

        if (isset($options['filters']) && is_array($options['filters'])) {
            foreach ($options['filters'] as $filter) {
                $this->addFilter($filter);
            }
        }
    }


    public function addValidator(Validator $validator)
    {

        $this->validators[] = $validator;
    }


    abstract public function render();

    public function addFilter(Filter $filter)
    {

        $this->filters[] = $filter;
    }


    public function isValid()
    {

        foreach ($this->validators as $validator) {
            if (!$validator->isValid($this->value)) {
                $this->isGeldig = false;
                $this->errorMessages[] = $validator->getMessages();
            }
        }

        return $this->isGeldig;
    }


    public function clean()
    {

        $localValue = $this->value;
        foreach ($this->filters as $filter) {
            $localValue = $filter->clean($localValue);
        }

        $this->value = $localValue;
    }


    public function getValue()
    {

        return $this->value;
    }


    public function getMessages()
    {

        return $this->errorMessages;
    }


    public function getName()
    {

        return $this->name;
    }


}

?>

Code Text element

<?php
/**
 * User: GJ
 * Name: TextElement.php
 * Date: 14-8-13
 * Time: 12:10
 */


class TextElement extends Element {

    public function render()
    {

        $html = '';
        $html .= '<label>' . $this->label;
        $html .= "<input type='text' name='{$this->name}' value='{$this->value}' $this->attribs>";
        $html .= '</label>';
        $html .= $this->getMessages();
        return $html;
    }
}

?>

Code RegistratieForm:

<?php

class RegistratieForm extends Form {

    public function __construct($options) {
        parent::__construct($options);

        $initials = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $initials->setOptions(array(
            'name' => 'voorletters',
            'label' => 'Uw voorlettes',
            'value' => isset($_GET['voorletters']) ? $_GET['voorletters'] : '',
            'validators' => array(
                new
InitialValidator(array() /* no options necessary */),
            ),
                )
        );


        $lastname = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $lastname->setOptions(array(
            'name' => 'achternaam',
            'label' => 'Uw achternaam',
            'value' => isset($_GET['achternaam']) ? $_GET['achternaam'] : '',
            'validators' => array(
                new
LastNameValidator(array() /* no options necessary */),
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );

        $email = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $email->setOptions(array(
            'name' => 'email',
            'label' => 'Uw e-mailadres',
            'value' => isset($_GET['email']) ? $_GET['email'] : '',
            'validators' => array(
                new
EmailValidator(array() /* no options necessary */),
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );


// of we maken een element en geven bij de constructie al de opties weer, zoals hier
        $password = new PasswordElement(array(
            'name' => 'password',
            'label' => 'Uw wachtwoord',
            'value' => isset($_GET['password']) ? $_GET['password'] : '',
            'validators' => array(
                new
StringLengthValidator(array('min' => 3, 'minError' => 'Het wachtwoord is te kort', 'max' => 12, 'maxError' => 'Het wachtwoord is te lang'))
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );

        $submit = new SubmitElement(array(
            'value' => 'verzenden',
            'name' => 'verzenden',
                )
        );


//de gemaakte elementen toevoegen aan het formulier
        $this->add($initials);
        $this->add($lastname);
        $this->add($email);
        $this->add($password);
        $this->add($submit);
    }

}

?>

code formulier.php:

<?php

//autoloader
function __autoload($class) {
    require_once $class . '.php';
}


//het formulier aanmaken
$form = new RegistratieForm(
        array(
    'id' => 'frmRegistratie',
    'css' => 'userform',
    'method' => 'get',
    'action' => ''
        )
);


//de elementen aanmaken:


if (isset($_GET['verzenden'])) {

    $result = $form->isValid();
    if ($result == TRUE) {
        var_dump('correct', $form->getValues());
    }
else {
        var_dump('', $form->getMessages());
    }

    die();
}


$html = $form->render();


echo $html;

?>


Hopelijk kan iemand mij helpen om de foutmeldingen in het formulier te krijgen op de plek waar de waarde niet valide is. (en de rest van het formulier ingevuld houden).

Alvast bedankt!
Gewijzigd op 20/08/2013 16:53:26 door Krist Ensing
 
PHP hulp

PHP hulp

05/01/2025 09:55:58
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 17:38:50
Quote Anchor link
zonder jouw classes helemaal gelezen te hebben, hier hoe ik het doe:

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
<?php
class form
{
    private $errors;
    
    function
validate()
    {

        if($_POST['email'] == '')
            $this->errors['email'] = 'Je hebt geen emailadres ingevuld.';
        
        // en nog meer velden die je kunt valideren
        
        if(count($this->errors))
            return false;
            
        return true;
    }
    
    function
getError($id)
    {

        if(isset($this->errors[$id]))
            return $this->errors[$id];
            
        return '';
    }
};

?>
Gewijzigd op 20/08/2013 17:41:38 door Frank Nietbelangrijk
 
Krist Ensing

Krist Ensing

20/08/2013 19:27:56
Quote Anchor link
Het probleem is dat de foutmelding nu in plaats van het formulier komt dmv een vardump. MIsschien wil je toch naar me code kijken, om te zien waar ik hem moet aanpassen. Ik heb namelijk de class Form, zoals je hierboven beschrijft als een abstracte klasse. De elementen zelf worden via de abstracte klasse Element in de klasse Text element (en andere gerenderd). Hier moet ik volgens mij ergens die foutmelding in kunnen weergeven, maar dan moet ik nog wel wat doen met de code onderaan in formulier.php (staat onderaan mijn lap code).

De rendercode va TextElement.php is deze:

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
<?php


class TextElement extends Element {

    public function render()
    {

        $html = '';
        $html .= '<label>' . $this->label;
        $html .= "<input type='text' name='{$this->name}' value='{$this->value}' $this->attribs>";
        $html .= '</label>';
        $html .= $this->getMessages();
        return $html;
    }
}
[
code]

Hopelijk kun je me verder helpen!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 20:17:41
Quote Anchor link
de form class is verantwoordelijk voor het formulier als geheel en gebruikt hierbij verschillende objecten. een extra object kan dan een 'error' object zijn. Nu heb je in de form class een functie render(). deze laat de verschillende elementen renderen. bij het aanmaken van je elementen lees je de GET variabelen uit. dat is dan dus ook de plek om error-elementen aan te maken. wellicht is het een idee om aan de basis 'element'-class een functie toe te voegen als 'setError()' die de validatie functie aanroept als er een invoer wordt afgekeurd. Binnen deze functie moet dan een nieuw Error object aangemaakt worden zodat de classes zo abstract mogelijk blijven. als de render functie van de elementen worden aangeroepen dan moet ook de render functie van het error-object aangeroepen worden. zo kun je de visualisatie van de errors later zeer simpel aanpassen. Om het compleet te maken zou ik aan de constructor van de form en/of de elementen meegeven welk error object je wilt gebruiken zodat je het error object kunt overerven.


Toevoeging op 20/08/2013 20:22:34:

een andere tip:
de $_GET en $_POST zijn gewoon arrays. je kunt gewoon $arr = $_GET doen om de hele array in één keer te kopiëren. gebruik dan in de rest van je code gewoon $arr zodat je makkelijker kan switchen van GET naar POST en eventueel SESSION.
 
Krist Ensing

Krist Ensing

20/08/2013 20:28:30
Quote Anchor link
Ik ben echt een beginneling wat betreft oo programmeren. Ik begrijp je betoog wel, maar de juiste code weet ik zo niet. Je zou me heel erg helpen om het in mijn code uit te werken, zodat ik begrijp wat er moet gebeuren.
Ik begrijp het als dat veel gevraagd is, maar hoop toch dat je het wilt doen, ik zou er enorm mee geholpen zijn.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 21:18:49
Quote Anchor link
Morgen wil ik (misschien) wel even voor je kijken. zou handig zijn om de volledige code te hebben
 
Krist Ensing

Krist Ensing

20/08/2013 21:32:15
Quote Anchor link
Als je me een mailtje stuurt, heb ik je mailadres en zal ik de volledige code toesturen.
Gewijzigd op 20/08/2013 21:42:57 door Krist Ensing
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 21:36:55
Quote Anchor link
geregeld
 



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.