_HEREDOC_;
if (testPrivileges()=="administrateur") {
diff --git a/pages/gestion/administration.php b/pages/gestion/administration.php
index d4f14e1..ea671f2 100644
--- a/pages/gestion/administration.php
+++ b/pages/gestion/administration.php
@@ -11,64 +11,16 @@ testPrivileges();
require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php");
+require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/messages/messages.php");
+
/**
* Affichage d'une bannière d'état sur l'action précedemment effectuée.
*/
if (isset($_GET['erreur']) && !empty($_GET['erreur'])) {
- switch ($_GET['erreur']) {
- case 1:
- echo "
Erreur : aucun alias virtuel supprimé.
";
- break;
- case 2:
- echo "
Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.
";
- break;
- case 3:
- echo "
Erreur : L'alias virtuel est déjà existant.
";
- break;
- case 4:
- echo "
Erreur : Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire bdd appartiennent à www-data.
";
- break;
- case 5:
- echo "
Erreur : aucun domaine supprimé.
";
- break;
- case 6:
- echo "
Erreur : aucun domaine créé car une donnée est erronée ou manquante.
";
- break;
- case 7:
- echo "
Erreur : Le domaine est déjà existant.
";
- break;
- case 8:
- echo "
Erreur : Le domaine par défaut n'a pas été modifié.
";
+}
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php");
diff --git a/services/fonctions/bdd/alias_virtuels.php b/services/fonctions/bdd/alias_virtuels.php
index ac93fc1..f377a0e 100644
--- a/services/fonctions/bdd/alias_virtuels.php
+++ b/services/fonctions/bdd/alias_virtuels.php
@@ -48,14 +48,14 @@ function listeAliasVirtuelsPostfix($pdo) {
/**
* Fonction d'ajout d'un alias virtuel.
*/
-function ajoutAliasVirtuelsPostfix($pdo) {
+function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_virtuel) {
try {
// Insertion de l'alias virtuel entré par l'utilisateur et lié avec son adresse
$req='INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:alias_virtuel,:courriel,1)';
$sql=$pdo->prepare($req);
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
- $sql->bindValue(':alias_virtuel',retournePrefixeUtilisateurPostfix($pdo).$_POST['nom_alias']."@".$_POST['choix_domaine_alias']);
+ $sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,49));
$sql->execute();
if ($sql->rowCount() == 1){
@@ -92,10 +92,10 @@ function ajoutAliasVirtuelsPostfix($pdo) {
* Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des alias virtuels d'un utilisateur.
* Elle occasionnera peut-être des baisses de performance si un très grand nombre d'alias virtuels existe pour un utilisateur donné (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée).
*/
-function modifEtatAliasVirtuelsPostfix($pdo) {
+function modifEtatAliasVirtuelsPostfix($pdo,$retour_form) {
try {
$compteModifs=0;
- foreach ($_POST as $id_alias_virtuel => $etat_alias_virtuel) {
+ foreach ($retour_form as $id_alias_virtuel => $etat_alias_virtuel) {
$req='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
$sql=$pdo->prepare($req);
@@ -124,12 +124,12 @@ function modifEtatAliasVirtuelsPostfix($pdo) {
/**
* Fonction de suppression d'un alias virtuel.
*/
-function supprAliasVirtuelsPostfix($pdo) {
+function supprAliasVirtuelsPostfix($pdo,$suppr_alias_virtuel) {
try {
$req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
$sql=$pdo->prepare($req);
- $sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']);
+ $sql->bindValue(':id_alias_virtuel',$suppr_alias_virtuel);
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
$sql->execute();
diff --git a/services/fonctions/bdd/domaines.php b/services/fonctions/bdd/domaines.php
index f14006d..0f3c8a7 100644
--- a/services/fonctions/bdd/domaines.php
+++ b/services/fonctions/bdd/domaines.php
@@ -73,14 +73,14 @@ function changeDomaineDefautPostfix($pdo,$choix_domaine_defaut) {
}
else {
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
- die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage());
+ die ("Erreur de requête de modification de préférence pour le domaine par défaut : ".$e->getMessage());
}
}
}
/**
- * Fonction d'ajout d'un alias virtuel.
+ * Fonction d'ajout d'un domaine.
*/
function ajoutDomainePostfix($pdo,$nom_domaine) {
try {
@@ -88,7 +88,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) {
$req='INSERT INTO postfix_domaines (domaine,defaut,active) VALUES (:domaine,0,1)';
$sql=$pdo->prepare($req);
- $sql->bindValue(':domaine',$nom_domaine);
+ $sql->bindValue(':domaine',substr(htmlspecialchars($nom_domaine),0,49));
$sql->execute();
if ($sql->rowCount() == 1){
@@ -105,7 +105,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) {
if ($code_retour[0]=="23000") {
// Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "domaine" de la table "postfix_domaines" est violée. Le domaine envoyé via le formulaire par l'administrateur a déjà été renseigné dans la base
- header ("Location: /pages/gestion/administration.php?page=domaines&erreur=3");
+ header ("Location: /pages/gestion/administration.php?page=domaines&erreur=7");
die();
}
elseif ($code_retour[0]=="HY000") {
@@ -115,7 +115,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) {
}
else {
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
- die ("Erreur de requête d'ajout d'alias virtuel : ".$e->getMessage());
+ die ("Erreur de requête d'ajout d'un domaine : ".$e->getMessage());
}
}
}
@@ -125,10 +125,10 @@ function ajoutDomainePostfix($pdo,$nom_domaine) {
* Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des domaines d'un utilisateur.
* Elle occasionnera peut-être des baisses de performance si un très grand nombre de domaines existe pour un utilisateur donné (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée).
*/
-function modifEtatDomainesPostfix($pdo) {
+function modifEtatDomainesPostfix($pdo,$retour_form) {
try {
$compteModifs=0;
- foreach ($_POST as $id_domaine => $etat_domaine) {
+ foreach ($retour_form as $id_domaine => $etat_domaine) {
$req='UPDATE postfix_domaines SET active=:etat_domaine WHERE id=:id_domaine AND defaut!=1';
$sql=$pdo->prepare($req);
@@ -148,7 +148,7 @@ function modifEtatDomainesPostfix($pdo) {
}
else {
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
- die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage());
+ die ("Erreur de requête de modification d'état pour les domaines : ".$e->getMessage());
}
}
}
@@ -156,12 +156,12 @@ function modifEtatDomainesPostfix($pdo) {
/**
* Fonction de suppression d'un domaine.
*/
-function supprDomainesPostfix($pdo) {
+function supprDomainesPostfix($pdo,$suppr_domaine) {
try {
$req='DELETE FROM postfix_domaines WHERE id=:id_domaine AND defaut!=1';
$sql=$pdo->prepare($req);
- $sql->bindValue(':id_domaine',$_GET['supprDomaine']);
+ $sql->bindValue(':id_domaine',$suppr_domaine);
$sql->execute();
if($sql->rowCount() == 1){
@@ -182,7 +182,7 @@ function supprDomainesPostfix($pdo) {
}
else {
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
- die ("Erreur de requête de suppression d'un alias virtuel : ".$e->getMessage());
+ die ("Erreur de requête de suppression d'un domaine : ".$e->getMessage());
}
}
}
diff --git a/services/fonctions/bdd/listes_noires.php b/services/fonctions/bdd/listes_noires.php
new file mode 100644
index 0000000..23b9873
--- /dev/null
+++ b/services/fonctions/bdd/listes_noires.php
@@ -0,0 +1,261 @@
+prepare($req);
+ $sql->execute();
+
+ $liste_entree_liste_noire_dst = $sql->fetchAll();
+ return $liste_entree_liste_noire_dst;
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête de selection des entrées de liste noire destinataires pour \"$base\" : ".$e->getMessage());
+ }
+}
+
+/**
+ * Fonction listant les entrées de la liste noire des expéditeurs.
+ */
+function listeEntreeListeNoireExpPostfix($pdo) {
+ try {
+ $req = 'SELECT * FROM postfix_liste_noire_expediteurs';
+
+ $sql=$pdo->prepare($req);
+ $sql->execute();
+
+ $liste_entree_liste_noire_exp = $sql->fetchAll();
+ return $liste_entree_liste_noire_exp;
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête de selection des entrées de liste noire expéditeurs pour \"$base\" : ".$e->getMessage());
+ }
+}
+
+/**
+ * Fonction d'ajout d'une entrée de liste noir destinataire.
+ */
+function ajoutEntreeListeNoireDstPostfix($pdo,$courriel_entree_liste_noire_dst,$action_entree_liste_noire_dst) {
+ try {
+ // Insertion de l'entrée de liste noire de destinataires renseignée par l'administrateur
+ $req='INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES (:courriel,:action,1)';
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_dst),0,49));
+ $sql->bindValue(':action',$action_entree_liste_noire_dst);
+ $sql->execute();
+
+ if ($sql->rowCount() == 1){
+ return true;
+ }
+
+ else {
+ return false;
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+
+ if ($code_retour[0]=="23000") {
+ // Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postfix_liste_noire_destinataires" est violée. L'adresse de destination envoyé via le formulaire par l'utilisateur a déjà été renseignée dans la base
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=12");
+ die();
+ }
+ elseif ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base de données n'est accessible qu'en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=4");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête d'ajout de l'entrée de liste noire de destinataires : ".$e->getMessage());
+ }
+ }
+}
+
+/**
+ * Fonction d'ajout d'une entrée de liste noir expéditeurs.
+ */
+function ajoutEntreeListeNoireExpPostfix($pdo,$courriel_entree_liste_noire_exp,$code_retour_entree_liste_noire_exp) {
+ try {
+ // Insertion de l'entrée de liste noire d'expéditeurs renseignée par l'administrateur
+ $req='INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES (:courriel,:code_retour,"Votre message a été rejeté par le serveur car votre adresse est en liste noire.",1)';
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_exp),0,49));
+ $sql->bindValue(':code_retour',$code_retour_entree_liste_noire_exp);
+ $sql->execute();
+
+ if ($sql->rowCount() == 1){
+ return true;
+ }
+
+ else {
+ return false;
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+ if ($code_retour[0]=="23000") {
+ // Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postfix_liste_noire_expediteurs" est violée. L'adresse de destination envoyé via le formulaire par l'utilisateur a déjà été renseignée dans la base
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=16");
+ die();
+ }
+ elseif ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base de données n'est accessible qu'en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=4");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête d'ajout de l'entrée de liste noire d'expéditeurs : ".$e->getMessage());
+ }
+ }
+}
+
+/**
+ * Fonction d'activation/désactivation d'une entrée dans la liste noire des destinataires.
+ * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des entrées de la liste noire des destinataires du serveur.
+ * Elle occasionnera peut-être des baisses de performance si un très grand d'entrées existent (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée).
+ */
+function modifEntreeListeNoireDstPostfix($pdo,$retour_form) {
+ try {
+ $compteModifs=0;
+ foreach ($retour_form as $id_entree_liste_noire_dst => $etat_entree_liste_noire_dst) {
+ $req='UPDATE postfix_liste_noire_destinataires SET active=:etat_entree_liste_noire_dst WHERE id=:id_entree_liste_noire_dst';
+
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':etat_entree_liste_noire_dst',$etat_entree_liste_noire_dst);
+ $sql->bindValue(':id_entree_liste_noire_dst',$id_entree_liste_noire_dst);
+ $sql->execute();
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+
+ if ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=10");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête de modification d'état pour l'entrée de liste noire de destinataires : ".$e->getMessage());
+ }
+ }
+}
+
+/**
+ * Fonction d'activation/désactivation d'une entrée dans la liste noire des expéditeurs.
+ * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des entrées de la liste noire des expéditeurs du serveur.
+ * Elle occasionnera peut-être des baisses de performance si un très grand d'entrées existent (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée).
+ */
+function modifEntreeListeNoireExpPostfix($pdo,$retour_form) {
+ try {
+ $compteModifs=0;
+ foreach ($retour_form as $id_entree_liste_noire_exp => $etat_entree_liste_noire_exp) {
+ $req='UPDATE postfix_liste_noire_expediteurs SET active=:etat_entree_liste_noire_exp WHERE id=:id_entree_liste_noire_exp';
+
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':etat_entree_liste_noire_exp',$etat_entree_liste_noire_exp);
+ $sql->bindValue(':id_entree_liste_noire_exp',$id_entree_liste_noire_exp);
+ $sql->execute();
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+
+ if ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=14");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête de modification d'état pour l'entrée de liste noire d'expéditeurs : ".$e->getMessage());
+ }
+ }
+}
+
+/**
+ * Fonction de suppression d'une entrée de liste noire de destinataires.
+ */
+function supprEntreeListeNoireDstPostfix($pdo) {
+ try {
+ $req='DELETE FROM postfix_liste_noire_destinataires WHERE id=:id_entree_liste_noire_dst';
+
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':id_entree_liste_noire_dst',$_GET['supprEntreeListeNoireDst']);
+ $sql->execute();
+
+ if($sql->rowCount() == 1){
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+
+ if ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=4");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête de suppression d'une entrée de liste noire de destinataires : ".$e->getMessage());
+ }
+ }
+}
+
+/**
+ * Fonction de suppression d'une entrée de liste noire d'expéditeurs.
+ */
+function supprEntreeListeNoireExpPostfix($pdo) {
+ try {
+ $req='DELETE FROM postfix_liste_noire_expediteurs WHERE id=:id_entree_liste_noire_exp';
+
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':id_entree_liste_noire_exp',$_GET['supprEntreeListeNoireExp']);
+ $sql->execute();
+
+ if($sql->rowCount() == 1){
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ catch (\Exception $e) {
+ // Récupération du code de retour de la commande SQLite
+ $code_retour=$sql->errorInfo();
+
+ if ($code_retour[0]=="HY000") {
+ // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
+ header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=4");
+ die();
+ }
+ else {
+ // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
+ die ("Erreur de requête de suppression d'une entrée de liste noire d'expéditeurs : ".$e->getMessage());
+ }
+ }
+}
+
+?>
\ No newline at end of file
diff --git a/services/fonctions/messages/messages.php b/services/fonctions/messages/messages.php
new file mode 100644
index 0000000..6d6e03b
--- /dev/null
+++ b/services/fonctions/messages/messages.php
@@ -0,0 +1,46 @@
+ array(
+ 1 => "
Succès : alias virtuel créé avec succès.
",
+ 2 => "
Succès : alias virtuel modifiés avec succès.
",
+ 3 => "
Succès : alias virtuel supprimé avec succès.
",
+ 4 => "
Succès : utilisateur changé en ".$_SESSION['pseudo_utilisateur']." avec succès.
",
+ 5 => "
Succès : domaine créé avec succès.
",
+ 6 => "
Succès : domaine modifiés avec succès.
",
+ 7 => "
Succès : domaine supprimé avec succès.
",
+ 8 => "
Succès : domaine défini par défaut avec succès.
",
+ 9 => "
Succès : l'entrée de liste noire destiataires a été créée avec succès.
",
+ 10 => "
Succès : l'état de l'entrée de liste noire destiataires a été modifié avec succès.
",
+ 11 => "
Succès : l'entrée de liste noire destinataires a été supprimée avec succès.
",
+ 12 => "
Succès : l'entrée de liste noire expéditeurs a été créée avec succès.
",
+ 13 => "
Succès : l'état de l'entrée de liste noire expéditeurs a été modifié avec succès.
",
+ 14 => "
Succès : l'entrée de liste noire expéditeurs a été supprimée avec succès.
"),
+ "erreurs" => array(
+
+ 1 => "
Erreur : aucun alias virtuel supprimé.
",
+ 2 => "
Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.
",
+ 3 => "
Erreur : L'alias virtuel est déjà existant.
",
+ 4 => "
Erreur : Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire bdd appartiennent à www-data.
",
+ 5 => "
Erreur : aucun domaine supprimé.
",
+ 6 => "
Erreur : aucun domaine créé car une donnée est erronée ou manquante.
",
+ 7 => "
Erreur : le domaine est déjà existant.
",
+ 8 => "
Erreur : le domaine par défaut n'a pas été modifié.
",
+ 9 => "
Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car une donnée est erronée ou manquante.
",
+ 10 => "
Erreur : l'état de l'entrée de liste noire destinataires n'a pas été modifié.
",
+ 11 => "
Erreur : l'entrée de liste noire destinataires n'a pas été supprimée.
",
+ 12 => "
Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car elle est déjà existante.
",
+ 13 => "
Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car une donnée est erronée ou manquante.
",
+ 14 => "
Erreur : l'état de l'entrée de liste noire expéditeurs n'a pas été modifié.
",
+ 15 => "
Erreur : l'entrée de liste noire expéditeurs n'a pas été supprimée.
",
+ 16 => "
Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car elle est déjà existante.
")
+ );
+
+ echo $liste_messages[$type_message][$num_message];
+}
+
+?>
\ No newline at end of file
diff --git a/services/gestion/alias_virtuels.php b/services/gestion/alias_virtuels.php
index defaec2..04cd6b0 100644
--- a/services/gestion/alias_virtuels.php
+++ b/services/gestion/alias_virtuels.php
@@ -61,11 +61,10 @@ _HEREDOC_;
echo "$prefixe_utilisateur";
}
?>
-
+
@
-