"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", "codeCollectivite" => "Code service" ); function sendAdhesionMail($tab) { //fonction utile pour l'envoi de mail grâce au $_POST //on étudie le $_POST et on transfère les lignes utiles à $tableauFinal global $adresseMailCible, $subject, $elementsOfPostToTrash, $replacements; $tableauFinal = array(); foreach ($tab as $key => $value) { if (!isWordIn($key, $elementsOfPostToTrash)) { if ($value != "" && $value != "none") { //transformation du nom de la classe -> texte donné dans $replacements $key = $replacements[$key]; //on évite faille XSS $value = htmlspecialchars($value); $tableauFinal[$key] = $value; } } } $message = "Nouvelle requête pour le formulaire d'adhésion :
"; $logMessage = "\n"; foreach ($tableauFinal as $key => $value) { $key = str_replace("\n", "", $key); $value = str_replace("\n", "", $value); $message = $message . "" . ""; $logMessage = $logMessage . $key . " : " . $value . "\n"; } $header = "Content-type: text/html; charset=utf-8 \r\n"; if (mail($adresseMailCible, $subject, $message, $header)) { writeInLog("Nouvelle demande", $logMessage); } else { writeInLog("Erreur de l'envoi mail.", "Header : \n" . $header . "\nInfos :" . $logMessage); } } function writeInLog($intitule, $text) { global $workingDirectory, $debug_mode_traitement; date_default_timezone_set('Europe/Paris'); $date = date("d-m-Y"); $hour = date("H:i:s"); $filePath = $workingDirectory . "logs/adhesion/logs.log"; $beforeMessage = "\n--------------\nLe " . $date . ", à " . $hour . ", \n" . $intitule . " : \n"; $finalMessage = $beforeMessage . $text; $fichier = fopen($filePath, "a"); if ($debug_mode_traitement) { var_dump($fichier); } if (fwrite($fichier, $finalMessage)) { if ($debug_mode_traitement) { echo "fichier écrit"; } } else { if ($debug_mode_traitement) { echo "fichier pas écrit"; echo "
chemin accesz :
" . $filePath; } } fclose($fichier); } //-----------------------Toutes les fonctions de vérification de données------------------------ function verifFirstSelection($tab) { //on vérifie si le first select est bien validé. 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 ? return true; } else { //sélection égale à "none" ou "" return false; } } else { //première sélection absente du formulaire return false; } } function verifSecondSelection($tab, $errors) { global $sizeRequired; if (isset($tab["secondSelection"])) { if ($tab["secondSelection"] == "" || $tab["secondSelection"] == "none") { $errors["second Selection"] = $sizeRequired; } } else { $errors["second Selection"] = $sizeRequired; } return $errors; } function verifEPCI($tab, $errors) { //vérifie les deux nombres EPCI global $positiveNumberRequired, $numberRequired; 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) { } else { $errors["EPCI com"] = $positiveNumberRequired; } } else { $errors["EPCI hab"] = $positiveNumberRequired; } } else { $errors["EPCI com"] = $numberRequired; } } else { $errors["EPCI hab"] = $numberRequired; } } else { $errors["EPCI hab"] = $numberRequired; } } else { $errors["EPCI hab"] = $numberRequired; } return $errors; } function verifNom($tab) { //vérifie si le nom de la collectivité est correct global $maxNameCharacters, $tooLongName, $fieldRequired; if (isset($tab["nomCollectivite"])) { $nom = $tab["nomCollectivite"]; if (strlen($nom) > 0) { if (strlen($nom) < $maxNameCharacters) { return ""; } else { return $tooLongName; } } else { return $fieldRequired; } } return $fieldRequired; } function verifAdresse($tab) { //vérifie si l'adresse est correcte global $tooLongAddress, $maxAddressCharacters, $fieldRequired; if (isset($tab["adresseCollectivite"])) { $adresse = $tab["adresseCollectivite"]; if (strlen($adresse) > 0) { if (strlen($adresse) < $maxAddressCharacters) { return ""; } else { return $tooLongAddress; } } else { return $fieldRequired; } } else { return $fieldRequired; } } function verifCodePostal($tab) { //vérifie si le code postal a été correctement entré global $debug_mode_traitement, $postalCodeError, $fieldRequired; if (isset($tab["codePostalCollectivite"])) { $CP = $tab["codePostalCollectivite"]; if ($debug_mode_traitement) { echo "
code postal entré : " . $tab["codePostalCollectivite"] . "
"; } if (strlen($CP) > 0) { if (strlen($CP) == 5 && is_numeric($CP)) { return ""; } else { return $postalCodeError; } } else { return $fieldRequired; } } else { return $fieldRequired; } } function verifVille($tab) { //vérifie la ville global $maxCityCharacters, $tooLongCity, $errorInCityName, $fieldRequired; //vérifie si la ville est correcte if (isset($tab["villeCollectivite"])) { $ville = $tab["villeCollectivite"]; if (strlen($ville) > 0) { if (strlen($ville) < $maxCityCharacters) { $ville = strtolower($ville); for ($a = 0; $a < strlen($ville); $a++) { if (!strpos("azertyuiopqsdfghjklmwxcvbnéèàçùâêîôûäëïöü-", $ville[$a])) { return $errorInCityName; } } return ""; } else { return $tooLongCity; } } else { return $fieldRequired; } } else { return $fieldRequired; } } function verifTel($tab) { //vérifie le numéro de téléphone. il n'est pas obligatoire, on ne retourne pas d'erreur si vide. global $errorInTel; if (isset($tab["telCollectivite"])) { $tel = $tab["telCollectivite"]; 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 { return $errorInTel; } } else { return ""; } } else { return ""; } } function verifUrl($tab) { //vérifie l'Url du site internet grâce à un filter var. pas obligatoire, ne retourne pas d'erreurs si vide. global $incorrectUrl; if (isset($tab["siteCollectivite"])) { $url = $tab["siteCollectivite"]; if (strlen($url) > 0) { if (filter_var($url, FILTER_VALIDATE_URL) == true) { return ""; } else { return $incorrectUrl; } } else { return ""; } } else { return ""; } } function verifPeriodeAdhesion($tab) { //vérifie que la période d'adhésion est OK global $errorInPeriodSelection; if (isset($tab["periodeAdhesionCollectivite"])) { if (strlen($tab["siteCollectivite"]) > 0) { return ""; } else { return $errorInPeriodSelection; } } else { return $errorInPeriodSelection; } } function verifSiret($tab) { global $debug_mode_traitement, $errorInSiret, $fieldRequired; if ($debug_mode_traitement) { echo "
on vérifie le siret
"; } if (isset($tab["siretCollectivite"])) { $siret = $tab["siretCollectivite"]; if (strlen($siret) > 0) { if (strlen($siret) == 14 && is_numeric($siret)) { return ""; } else { return $errorInSiret; } } else { return $fieldRequired; } } else { return $fieldRequired; } } function verifNumeroEngagement($tab) { //vérifie si le numéro engagement a été correctement entré global $fieldRequired; if (isset($tab["numeroEngagementCollectivite"])) { $numero = $tab["numeroEngagementCollectivite"]; if (strlen($numero) > 0) { return ""; } else { return $fieldRequired; } } else { return $fieldRequired; } } function verifCode($tab) { //vérifie si le code service a été correctement entré global $fieldRequired; if (isset($tab["codeCollectivite"])) { $code = $tab["codeCollectivite"]; if (strlen($code) > 0) { return ""; } else { return $fieldRequired; } } else { return $fieldRequired; } } function traitementInformations($tab, $errors) { //vérifie tous les champs texte //ces infos sont toujours obligatoires en fin de formulaire donc on fait une fonction tout en un global $debug_mode_traitement; $errors["nom"] = verifNom($tab); $errors["adresse"] = verifAdresse($tab); $errors["CP"] = verifCodePostal($tab); $errors["ville"] = verifVille($tab); $errors["tel"] = verifTel($tab); $errors["site"] = verifUrl($tab); if ($tab["firstSelection"] != "Association") { if ($debug_mode_traitement) { echo "tab[firstselection] = " . $tab["firstSelection"] . "\n"; } $errors["siret"] = verifSiret($tab); $errors["numeroEngagement"] = verifNumeroEngagement($tab); $errors["code"] = verifCode($tab); } return $errors; } function traitement($tab, $errors) { //traitement principal, liste des actions à effectuer dans un certain ordre global $debug_mode_traitement; if ($debug_mode_traitement) { echo "début du traitement "; } //le résultat du premier select if (verifFirstSelection($tab)) { if ($debug_mode_traitement) { echo "
le first select est OK
"; } if ($tab["firstSelection"] == "Association") { //il n'y a besoin que de traiter les dernières infos $errors = traitementInformations($tab, $errors); } elseif ($tab["firstSelection"] == "EPCIMutualisant") { $errors = verifEPCI($tab, $errors); $errors = traitementInformations($tab, $errors); } else { //taille $errors = verifSecondSelection($tab, $errors); $errors = traitementInformations($tab, $errors); } } else { $errors["first selection"] = "Veuillez préciser le type de collectivité."; } if ($debug_mode_traitement) { echo "errors :
"; var_dump($errors); } return $errors; }
" . $key . " : " . $value . "