"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 . "" . $key . " : | " . $value . " | " . "
";
$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;
}