traitement-adhesion.php 20.3 KB
Newer Older
1
2
<?php

N. Peraldi's avatar
N. Peraldi committed
3
4
5
6
/**
 * Toutes ces variables ne sont que des textes modifiables par l'utilisateur. Ils ne sont là que pour afficher des
 * informations.
 */
7
//variables pour le mail
8
9
10
11
12
13
14
$subjectAdullact = "Nouvelle demande de renouvellement d'adhésion";
$subjectUser = "Confirmation de demande de renouvellement d'adhésion";

$bonjourUser = "Bonjour,";
$textUser = "Nous avons bien reçu votre demande de renouvellement d'adhésion. Nous vous recontacterons sous peu.";
$byeUser = "A très bientôt !";
$endUser = "L'équipe Adullact.";
N. Peraldi's avatar
N. Peraldi committed
15
$messageUser = $bonjourUser . "<br>" . $textUser . "<br>" . $byeUser . "<br>" . $endUser;
16
17
18
19
20

//nombres maximum
$maxAddressCharacters = 255;
$maxNameCharacters = 255;
$maxCityCharacters = 255;
21
$maxFonctionCharacters = 255;
22
23
24
25

//Messages d'erreur
$tooLongAddress = "L'adresse que vous avez entrée est trop longue. Maximum : " . $maxAddressCharacters;
$tooLongName = "Le nom que vous avez entré est trop long. Maximum : " . $maxNameCharacters;
26
27
$tooLongNameUser = "Le prénom que vous avez entré est trop long. Maximum : " . $maxNameCharacters;
$tooLongFonctionUser = "La fonction que vous avez entrée est trop longue. Maximum : " . $maxFonctionCharacters;
28
29
30
$postalCodeError = "Un code postal est composé de 5 chiffres.";
$tooLongCity = "Le nom de la ville est trop long. Maximum : " . $maxCityCharacters;
$errorInCityName = "Un caractère incorrect a été entré.";
N. Peraldi's avatar
N. Peraldi committed
31
$errorInEmail = "L'adresse E-mail est invalide.";
32
33
34
$errorInTel = "Un numéro de téléphone se compose de 10 chiffres et commence par un zéro.";
$incorrectUrl = "L'URL est incorrecte.";
$errorInPeriodSelection = "Veuillez sélectionner une période d'adhésion.";
root's avatar
root committed
35
$errorInSiret = "Un numéro de SIRET est composé de 14 chiffres.";
36
$invalidSiret = "Le numéro de SIRET est invalide.";
37
38
39

$positiveNumberRequired = "Vous devez entrer un nombre positif.";
$numberRequired = "Vous devez entrer un nombre.";
40
$fieldRequired = "Vous devez compléter ce champ.";
N. Peraldi's avatar
N. Peraldi committed
41
$sizeRequired = "Vous devez sélectionner la taille de votre collectivité.";
42

N. Peraldi's avatar
N. Peraldi committed
43
$debug_traitement_adhesion = false;
root's avatar
root committed
44
$elementsOfPostToTrash = ["ancienSelectType", "ancienSelectSize", "ancienSelectPeriod"];
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

$replacements = array(
    "firstSelection" => "Type de collectivité",
    "secondSelection" => "Taille de la collectivité",
    "nombreHabitantsEPCI" => "Nombre d'habitants EPCI",
    "nombreCommunesMembresEPCI" => "Nombre de communes membres EPCI",
    "nomCollectivite" => "Nom de la collectivité",
    "adresseCollectivite" => "Adresse de la collectivité",
    "codePostalCollectivite" => "Code postal",
    "villeCollectivite" => "Ville",
    "telCollectivite" => "Téléphone",
    "siteCollectivite" => "Site internet",
    "periodeAdhesionCollectivite" => "Période d'adhésion",
    "siretCollectivite" => "N° de SIRET",
    "numeroEngagementCollectivite" => "Numéro d'engagement",
60
61
62
63
64
65
    "codeCollectivite" => "Code service",
    "nomUser" => "Nom du représentant",
    "prenomUser" => "Prénom du représentant",
    "fonctionUser" => "Fonction",
    "mailUser" => "Email du représentant",
    "telUser" => "Téléphone du représentant",
66
);
67

N. Peraldi's avatar
N. Peraldi committed
68
69
70
71
72
/**
 * Fonction qui utilise l'algorithme de Luhn pour vérifier si le numéro de siret est OK.
 * @param string $numero
 * @return bool
 */
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
function luhn($numero)
{
    $longueur = 14;
    $tableauChiffresNumero = array();
    if (preg_match("#[0-9]{" . $longueur . "}#i", $numero)) {
        for ($i = 0; $i < $longueur; $i++) {
            $tableauChiffresNumero[$i] = substr($numero, $i, 1);
        }
        $luhn = 0; // clef de luhn à tester
        for ($i = 0; $i < $longueur; $i++) {
            if ($i % 2 == 0) { // si le rang est pair (0,2,4 etc.)
                if (($tableauChiffresNumero[$i] * 2) > 9) {
                    $tableauChiffresNumero[$i] = ($tableauChiffresNumero[$i] * 2) - 9;

                } else {
                    $tableauChiffresNumero[$i] = $tableauChiffresNumero[$i] * 2;
                }
            }
            $luhn = $luhn + $tableauChiffresNumero[$i];
        }
        if ($luhn % 10 == 0) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

N. Peraldi's avatar
N. Peraldi committed
103
104
105
106
107
/**
 * fonction utilisée lors du débogage. si on active le débogage via la variable $debug_traitement_adhesion, alors de
 * nombreux messages informatifs seront affichés.
 * @param string $message
 */
108
109
function debug_traitement_adhesion($message)
{
N. Peraldi's avatar
N. Peraldi committed
110
    global $debug_traitement_adhesion;
111
    if ($debug_traitement_adhesion) {
N. Peraldi's avatar
N. Peraldi committed
112
113
114
115
        echo "<p> $message </p>";
    }
}

N. Peraldi's avatar
N. Peraldi committed
116
117
118
119
120
/**
 * fonction utile pour l'envoi de mail grâce au $_POST
 * on étudie le $_POST et on transfère les lignes utiles à $tableauFinal, on ne garde pas le reste.
 * @param array $tab
 */
N. Peraldi's avatar
N. Peraldi committed
121
122
function sendAdhesionMail($tab)
{
123
    global $mail_cible_adullact, $subjectAdullact, $subjectUser, $elementsOfPostToTrash, $replacements, $messageUser, $debug_mode_traitement;
N. Peraldi's avatar
N. Peraldi committed
124
    debug_traitement_adhesion("on se prépare à envoyer le mail");
125
126
    $tableauFinal = array();

127
    //on prépare le tableau des textes
N. Peraldi's avatar
N. Peraldi committed
128
129
130
    foreach ($tab as $key => $value) {
        if (!isWordIn($key, $elementsOfPostToTrash)) {
            if ($value != "" && $value != "none") {
131

root's avatar
root committed
132
                //transformation du nom de la classe -> texte donné dans $replacements
133
                $key = $replacements[$key];
root's avatar
root committed
134
135
                //on évite faille XSS
                $value = htmlspecialchars($value);
N. Peraldi's avatar
N. Peraldi committed
136
                $tableauFinal[$key] = $value;
137
138
139
            }
        }
    }
140
    $emailUser = trim($tab["mailUser"]);
141
    $header = "Content-type: text/html; charset=utf-8 \r\n";
142

root's avatar
root committed
143
    $logMessage = "\n";
144
145
    $messageAdullact = "Nouvelle requête pour le formulaire d'adhésion : <br><table>";
    //on prépare le mail à destination de l'adullact ainsi que les logs
146
    foreach ($tableauFinal as $key => $value) {
N. Peraldi's avatar
N. Peraldi committed
147
148
        $key = str_replace("\n", "", $key);
        $value = str_replace("\n", "", $value);
149
        $messageAdullact = $messageAdullact . "<tr><td>" . $key . " : </td> <td>" . $value . "</td>" . "</tr>";
root's avatar
root committed
150
        $logMessage = $logMessage . $key . " : " . $value . "\n";
N. Peraldi's avatar
N. Peraldi committed
151
    }
152

153
    if (mail($emailUser, $subjectUser, $messageUser, $header)) {
154
        mail($mail_cible_adullact, $subjectAdullact, $messageAdullact, $header);
N. Peraldi's avatar
N. Peraldi committed
155
156
157
        writeInLog("Nouvelle demande", $logMessage);
    } else {
        writeInLog("Erreur de l'envoi mail.", "Header : \n" . $header . "\nInfos :" . $logMessage);
root's avatar
root committed
158
159
160
    }
}

N. Peraldi's avatar
N. Peraldi committed
161
162
163
164
165
/**
 * Utile pour écrire un quelconque message dans les logs
 * @param string $intitule
 * @param string $text
 */
N. Peraldi's avatar
N. Peraldi committed
166
167
function writeInLog($intitule, $text)
{
N. Peraldi's avatar
N. Peraldi committed
168
    //fonction qui écrit dans les logs.
169
    global $theme_path_for_server, $debug_mode_traitement;
root's avatar
root committed
170
171
172
173
    date_default_timezone_set('Europe/Paris');

    $date = date("d-m-Y");
    $hour = date("H:i:s");
174
    $filePath = $theme_path_for_server . "/logs/adhesion/logs.log";
root's avatar
root committed
175
    $beforeMessage = "\n--------------\nLe " . $date . ", à " . $hour . ", \n" . $intitule . " : \n";
root's avatar
root committed
176
177
    $finalMessage = $beforeMessage . $text;
    $fichier = fopen($filePath, "a");
root's avatar
root committed
178

N. Peraldi's avatar
N. Peraldi committed
179
    if (fwrite($fichier, $finalMessage)) {
N. Peraldi's avatar
N. Peraldi committed
180
        debug_traitement_adhesion("fichier écrit");
root's avatar
root committed
181

N. Peraldi's avatar
N. Peraldi committed
182
    } else {
N. Peraldi's avatar
N. Peraldi committed
183
184
        debug_traitement_adhesion("fichier pas écrit");
        debug_traitement_adhesion("chemin : " . $filePath);
N. Peraldi's avatar
N. Peraldi committed
185
    }
root's avatar
root committed
186
187
188
189
190
    fclose($fichier);
}

//-----------------------Toutes les fonctions de vérification de données------------------------

N. Peraldi's avatar
N. Peraldi committed
191
192
193
194
195
/**
 * On vérifie la valeur du premier <select>
 * @param array $tab ($_POST)
 * @return bool
 */
root's avatar
root committed
196
197
function verifFirstSelection($tab)
{
N. Peraldi's avatar
N. Peraldi committed
198
    global $fieldRequired;
root's avatar
root committed
199
200
201
202
    if (isset($tab["firstSelection"])) {
        //première sélection présente
        if ($tab["firstSelection"] != "none" && $tab["firstSelection"] != "") {
            //l'utilisateur a sélectionné quelque chose. mais quoi ?
N. Peraldi's avatar
N. Peraldi committed
203
            return "";
root's avatar
root committed
204
205
206

        } else {
            //sélection égale à "none" ou ""
N. Peraldi's avatar
N. Peraldi committed
207
            return $fieldRequired;
root's avatar
root committed
208
209
210
        }
    } else {
        //première sélection absente du formulaire
N. Peraldi's avatar
N. Peraldi committed
211
        return $fieldRequired;
root's avatar
root committed
212
    }
N. Peraldi's avatar
N. Peraldi committed
213
214
}

N. Peraldi's avatar
N. Peraldi committed
215
216
217
218
219
220
/**
 * On vérifie la valeur du second <select>
 * @param array $tab
 * @param array $errors
 * @return mixed
 */
root's avatar
root committed
221
222
function verifSecondSelection($tab, $errors)
{
N. Peraldi's avatar
N. Peraldi committed
223
    global $sizeRequired;
root's avatar
root committed
224
    if (isset($tab["secondSelection"])) {
N. Peraldi's avatar
N. Peraldi committed
225
226
        if ($tab["secondSelection"] == "" || $tab["secondSelection"] == "none") {
            $errors["second Selection"] = $sizeRequired;
root's avatar
root committed
227
228
        }
    } else {
N. Peraldi's avatar
N. Peraldi committed
229
        $errors["second Selection"] = $sizeRequired;
root's avatar
root committed
230
231
232
    }
    return $errors;
}
233

N. Peraldi's avatar
N. Peraldi committed
234
235
236
237
238
239
/**
 * On vérifie les deux nombres donnés pour calculer la cotisation de l'EPCI
 * @param array $tab
 * @param array $errors
 * @return array mixed
 */
240
241
function verifEPCI($tab, $errors)
{
242
    global $positiveNumberRequired, $numberRequired;
243
244
245
246
247
248
249
250
251
252
    if (isset($tab["nombreHabitantsEPCI"])) {
        if (isset($tab["nombreCommunesMembresEPCI"])) {
            $nombreHab = $tab["nombreHabitantsEPCI"];
            $nombreCom = $tab["nombreCommunesMembresEPCI"];

            if (is_numeric($nombreHab)) {
                if (is_numeric($nombreCom)) {
                    if ($nombreHab > 0) {
                        if ($nombreCom > 0) {

N. Peraldi's avatar
N. Peraldi committed
253
                        } else {
254
                            $errors["EPCI com"] = $positiveNumberRequired;
255
                        }
N. Peraldi's avatar
N. Peraldi committed
256
                    } else {
257
                        $errors["EPCI hab"] = $positiveNumberRequired;
258
                    }
N. Peraldi's avatar
N. Peraldi committed
259
                } else {
260
                    $errors["EPCI com"] = $numberRequired;
261
                }
N. Peraldi's avatar
N. Peraldi committed
262
            } else {
263
                $errors["EPCI hab"] = $numberRequired;
264
            }
N. Peraldi's avatar
N. Peraldi committed
265
        } else {
266
            $errors["EPCI hab"] = $numberRequired;
N. Peraldi's avatar
N. Peraldi committed
267
        }
N. Peraldi's avatar
N. Peraldi committed
268
    } else {
269
        $errors["EPCI hab"] = $numberRequired;
270
271
272
273
    }
    return $errors;
}

N. Peraldi's avatar
N. Peraldi committed
274
275
276
277
278
/**
 * On vérifie le nom de la collectivité
 * @param array $tab
 * @return string
 */
279
280
function verifNom($tab)
{
281
    global $maxNameCharacters, $tooLongName, $fieldRequired;
282
    if (isset($tab["nomCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
283
        $nom = trim($tab["nomCollectivite"]);
284
        if (strlen($nom) > 0) {
285
            if (strlen($nom) < $maxNameCharacters) {
286
287
                return "";
            } else {
288
                return $tooLongName;
289
290
            }
        } else {
291
            return $fieldRequired;
292
293
        }
    }
294
    return $fieldRequired;
295
296
}

N. Peraldi's avatar
N. Peraldi committed
297
298
299
300
301
/**
 * Vérification de l'adresse
 * @param array $tab
 * @return string
 */
302
303
function verifAdresse($tab)
{
304
    global $tooLongAddress, $maxAddressCharacters, $fieldRequired;
305

306
    if (isset($tab["adresseCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
307
        $adresse = trim($tab["adresseCollectivite"]);
308
309
        if (strlen($adresse) > 0) {

310
            if (strlen($adresse) < $maxAddressCharacters) {
311
312
                return "";
            } else {
313
                return $tooLongAddress;
314
315
            }
        } else {
316
            return $fieldRequired;
317
318
        }
    } else {
319
        return $fieldRequired;
320
321
322
    }
}

N. Peraldi's avatar
N. Peraldi committed
323
324
325
326
327
/**
 * Vérification du code postal
 * @param array $tab
 * @return string
 */
328
329
function verifCodePostal($tab)
{
330
    global $debug_mode_traitement, $postalCodeError, $fieldRequired;
331
    if (isset($tab["codePostalCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
332
333
        $CP = trim($tab["codePostalCollectivite"]);
        debug_traitement_adhesion("code postal entré : " . $tab["codePostalCollectivite"]);
334
335
336
337
338
339
        if (strlen($CP) > 0) {

            if (strlen($CP) == 5 && is_numeric($CP)) {
                return "";

            } else {
340
                return $postalCodeError;
341
342
            }
        } else {
343
            return $fieldRequired;
344
345
        }
    } else {
346
        return $fieldRequired;
347
348
349
    }
}

N. Peraldi's avatar
N. Peraldi committed
350
351
352
353
354
/**
 * Vérification de la ville
 * @param array $tab
 * @return string
 */
355
356
function verifVille($tab)
{
357
    global $maxCityCharacters, $tooLongCity, $errorInCityName, $fieldRequired;
358
359
    //vérifie si la ville est correcte
    if (isset($tab["villeCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
360
        $ville = trim($tab["villeCollectivite"]);
361
        if (strlen($ville) > 0) {
362
            if (strlen($ville) < $maxCityCharacters) {
363
364
365
                $ville = strtolower($ville);
                for ($a = 0; $a < strlen($ville); $a++) {
                    if (!strpos("azertyuiopqsdfghjklmwxcvbnéèàçùâêîôûäëïöü-", $ville[$a])) {
366
                        return $errorInCityName;
367
368
369
370
371
                    }
                }
                return "";

            } else {
372
                return $tooLongCity;
373
374
            }
        } else {
375
            return $fieldRequired;
376
377
        }
    } else {
378
        return $fieldRequired;
379
380
381
    }
}

N. Peraldi's avatar
N. Peraldi committed
382
383
384
385
386
387
/**
 * Vérification du mail via une fonction implémentée dans php
 * @param array $tab
 * @param string $key
 * @return string
 */
388
function verifMail($tab, $key)
N. Peraldi's avatar
N. Peraldi committed
389
{
390
    global $errorInEmail, $fieldRequired;
391
392
    if (isset($tab[$key])) {
        $mail = trim($tab[$key]);
N. Peraldi's avatar
N. Peraldi committed
393
394
395
396
397
398
399
400
401
402
403
404
405
406
        if (strlen($mail) > 0) {
            if (filter_var($mail, FILTER_VALIDATE_EMAIL) == true) {
                return "";
            } else {
                return $errorInEmail;
            }
        } else {
            return $fieldRequired;
        }
    } else {
        return $fieldRequired;
    }
}

N. Peraldi's avatar
N. Peraldi committed
407
408
409
410
411
/**
 * Vérification du nom de famille
 * @param array $tab
 * @return string
 */
412
413
414
415
416
417
function verifNomUser($tab)
{
    global $tooLongName, $fieldRequired, $maxNameCharacters;
    if (isset($tab["nomUser"])) {
        $nom = trim($tab["nomUser"]);
        if (strlen($nom) > 0) {
418
            if (strlen($nom) <= $maxNameCharacters) {
419
                return "";
420
            } else {
421
422
423
424
425
426
427
428
429
430
                return $tooLongName;
            }
        } else {
            return $fieldRequired;
        }
    } else {
        return $fieldRequired;
    }
}

N. Peraldi's avatar
N. Peraldi committed
431
432
433
434
/**Vérification du prénom de l'utilisateur
 * @param array $tab
 * @return string
 */
435
436
437
438
439
440
function verifPrenomUser($tab)
{
    global $tooLongNameUser, $fieldRequired, $maxNameCharacters;
    if (isset($tab["prenomUser"])) {
        $prenom = trim($tab["prenomUser"]);
        if (strlen($prenom) > 0) {
441
            if (strlen($prenom) <= $maxNameCharacters) {
442
                return "";
443
            } else {
444
445
446
447
448
449
450
451
452
453
                return $tooLongNameUser;
            }
        } else {
            return $fieldRequired;
        }
    } else {
        return $fieldRequired;
    }
}

N. Peraldi's avatar
N. Peraldi committed
454
455
456
457
458
/**
 * Vérification de la fonction de l'utilisateur dans la collectivité
 * @param array $tab
 * @return string
 */
459
460
461
462
463
464
function verifFonctionUser($tab)
{
    global $tooLongFonctionUser, $fieldRequired, $maxFonctionCharacters;
    if (isset($tab["fonctionUser"])) {
        $prenom = trim($tab["fonctionUser"]);
        if (strlen($prenom) > 0) {
465
            if (strlen($prenom) <= $maxFonctionCharacters) {
466
                return "";
467
            } else {
468
469
470
471
472
473
474
475
476
477
                return $tooLongFonctionUser;
            }
        } else {
            return $fieldRequired;
        }
    } else {
        return $fieldRequired;
    }
}

N. Peraldi's avatar
N. Peraldi committed
478
479
480
481
482
483
/**
 * Vérification du numéro de téléphone
 * @param array $tab
 * @param string $key
 * @return string
 */
484
function verifTel($tab, $key)
485
{
486
    //vérifie le numéro de téléphone. il n'est pas obligatoire, on ne retourne pas d'erreur si vide.
root's avatar
root committed
487
    global $errorInTel;
488
489
    if (isset($tab[$key])) {
        $tel = trim($tab[$key]);
490
491
492
493
494
495
        if (strlen($tel) > 0) {

            //vérifie si le téléphone a été correctement entré
            if ((strlen($tel) == 10 && is_numeric($tel)) && $tel[0] == "0") {
                return "";
            } else {
496
                return $errorInTel;
497
498
            }
        } else {
499
            return "";
500
501
        }
    } else {
502
        return "";
503
504
505
    }
}

N. Peraldi's avatar
N. Peraldi committed
506
507
508
509
510
/**
 * Vérification de l'url du site via fonction implémentée dans php
 * @param array $tab
 * @return string
 */
511
512
function verifUrl($tab)
{
513
    //vérifie l'Url du site internet grâce à un filter var. pas obligatoire, ne retourne pas d'erreurs si vide.
root's avatar
root committed
514
    global $incorrectUrl;
515
516

    if (isset($tab["siteCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
517
        $url = trim($tab["siteCollectivite"]);
518
        if (strlen($url) > 0) {
N. Peraldi's avatar
N. Peraldi committed
519
            if (filter_var($url, FILTER_VALIDATE_URL) == true) {
520
521
                return "";
            } else {
522
                return $incorrectUrl;
523
524
            }
        } else {
525
            return "";
526
527
        }
    } else {
528
        return "";
529
530
531
    }
}

N. Peraldi's avatar
N. Peraldi committed
532
533
534
535
536
/**
 * Vérification de la période d'adhésion
 * @param array $tab
 * @return string
 */
537
538
function verifPeriodeAdhesion($tab)
{
539
540
    //vérifie que la période d'adhésion est OK
    global $errorInPeriodSelection;
541
    if (isset($tab["periodeAdhesionCollectivite"])) {
542
        if (strlen($tab["periodeAdhesionCollectivite"]) > 0) {
543
544
            return "";
        } else {
545
            return $errorInPeriodSelection;
546
547
        }
    } else {
548
        return $errorInPeriodSelection;
549
550
551
    }
}

N. Peraldi's avatar
N. Peraldi committed
552
553
554
555
556
/**
 * Vérification du numéro de siret, avec la fonction Luhn()
 * @param array $tab
 * @return string
 */
557
558
function verifSiret($tab)
{
N. Peraldi's avatar
N. Peraldi committed
559
    //on vérifie le numéro de siret
560
    global $debug_mode_traitement, $errorInSiret, $fieldRequired, $invalidSiret;
N. Peraldi's avatar
N. Peraldi committed
561
    debug_traitement_adhesion("vérification siret");
562
    if (isset($tab["siretCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
563
        $siret = trim($tab["siretCollectivite"]);
564
565
        if (strlen($siret) > 0) {
            if (strlen($siret) == 14 && is_numeric($siret)) {
566
567
568
569
                if (luhn($siret)) {
                    return "";
                }
                return $invalidSiret;
570
            } else {
571
                return $errorInSiret;
572
573
            }
        } else {
574
            return $fieldRequired;
575
576
        }
    } else {
577
        return $fieldRequired;
578
579
580
    }
}

N. Peraldi's avatar
N. Peraldi committed
581
582
583
584
585
/**
 * Vérification du numéro d'engagement
 * @param array $tab
 * @return string
 */
586
587
function verifNumeroEngagement($tab)
{
588
    //vérifie si le numéro engagement a été correctement entré
589
    global $fieldRequired;
590
    if (isset($tab["numeroEngagementCollectivite"])) {
N. Peraldi's avatar
N. Peraldi committed
591
        $numero = trim($tab["numeroEngagementCollectivite"]);
592
593

        if (strlen($numero) > 0) {
N. Peraldi's avatar
N. Peraldi committed
594
            return "";
595
596

        } else {
597
            return $fieldRequired;
598
599
        }
    } else {
600
        return $fieldRequired;
601
602
603
    }
}

N. Peraldi's avatar
N. Peraldi committed
604
605
606
607
608
/**
 * Vérification du code service
 * @param array $tab
 * @return string
 */
609
610
function verifCode($tab)
{
611
    //vérifie si le code service a été correctement entré
612
    global $fieldRequired;
613
614
    if (isset($tab["codeCollectivite"])) {

N. Peraldi's avatar
N. Peraldi committed
615
        $code = trim($tab["codeCollectivite"]);
616
        if (strlen($code) > 0) {
N. Peraldi's avatar
N. Peraldi committed
617
            return "";
618
        } else {
619
            return $fieldRequired;
620
621
        }
    } else {
622
        return $fieldRequired;
623
624
625
    }
}

N. Peraldi's avatar
N. Peraldi committed
626
627
628
629
630
631
632
/**
 * vérifie tous les champs input
 * on vérifie uniquement celles utiles, en fonction de ce que l'utilisateur a entré
 * @param array $tab
 * @param array $errors
 * @return mixed
 */
633
634
635
636
637
638
function traitementInformations($tab, $errors)
{
    $errors["nom"] = verifNom($tab);
    $errors["adresse"] = verifAdresse($tab);
    $errors["CP"] = verifCodePostal($tab);
    $errors["ville"] = verifVille($tab);
639
    $errors["tel"] = verifTel($tab, "telCollectivite");
640
    $errors["site"] = verifUrl($tab);
N. Peraldi's avatar
N. Peraldi committed
641
    $errors["periode"] = verifPeriodeAdhesion($tab);
642
643
644
645

    $errors["nomUser"] = verifNomUser($tab);
    $errors["prenomUser"] = verifPrenomUser($tab);
    $errors["fonctionUser"] = verifFonctionUser($tab);
646
647
    $errors["mailUser"] = verifMail($tab, "mailUser");
    $errors["telUser"] = verifTel($tab, "telUser");
648

N. Peraldi's avatar
N. Peraldi committed
649
    if ($tab["firstSelection"] != "Association") {
N. Peraldi's avatar
N. Peraldi committed
650
        debug_traitement_adhesion("tab[firstselection] = " . $tab["firstSelection"]);
651
652
653
654
655
        $errors["siret"] = verifSiret($tab);
        $errors["numeroEngagement"] = verifNumeroEngagement($tab);
        $errors["code"] = verifCode($tab);
    }
    return $errors;
656
657
}

N. Peraldi's avatar
N. Peraldi committed
658
659
660
661
662
663
/**
 * traitement principal, liste des actions à effectuer dans un certain ordre
 * @param array $tab
 * @param array $errors
 * @return array|mixed
 */
N. Peraldi's avatar
N. Peraldi committed
664
function traitement($tab, $errors)
665
{
N. Peraldi's avatar
N. Peraldi committed
666
667
    global $debug_traitement_adhesion;
    debug_traitement_adhesion("début traitement");
668
669
670

    //le résultat du premier select
    if (verifFirstSelection($tab)) {
N. Peraldi's avatar
N. Peraldi committed
671
        debug_traitement_adhesion("first select ok");
N. Peraldi's avatar
N. Peraldi committed
672

673
674
675
        if ($tab["firstSelection"] == "Association") {
            //il n'y a besoin que de traiter les dernières infos
            $errors = traitementInformations($tab, $errors);
N. Peraldi's avatar
N. Peraldi committed
676
        } elseif ($tab["firstSelection"] == "EPCIMutualisant") {
677
678
            $errors = verifEPCI($tab, $errors);
            $errors = traitementInformations($tab, $errors);
N. Peraldi's avatar
N. Peraldi committed
679
        } else {
N. Peraldi's avatar
N. Peraldi committed
680
            //taille
N. Peraldi's avatar
N. Peraldi committed
681
            $errors = verifSecondSelection($tab, $errors);
N. Peraldi's avatar
N. Peraldi committed
682
            $errors = traitementInformations($tab, $errors);
683
684
        }
    } else {
root's avatar
root committed
685
        $errors["first selection"] = "Veuillez préciser le type de collectivité.";
686
    }
N. Peraldi's avatar
N. Peraldi committed
687
    if ($debug_traitement_adhesion) {
N. Peraldi's avatar
N. Peraldi committed
688
689
690
        echo "errors : <br>";
        var_dump($errors);
    }
691
    return $errors;
692
}