Déplacement de la gestion des préfixes dans la base + préparation des requêtes SQL SELECT + nettoyage de code

pull/5/head
ycharbi 3 years ago
parent b5a6527830
commit 188e401688

@ -11,7 +11,7 @@ require_once($_SERVER["DOCUMENT_ROOT"]."/services/sessions/privileges.php");
testPrivileges(); testPrivileges();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
if (isset($_POST['prefix_alias']) && isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) { if (isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) {
ajoutAliasVirtuelsPostfix($pdo); ajoutAliasVirtuelsPostfix($pdo);
header ("Location: /pages/gestion/administration.php?page=alias&succes=3"); header ("Location: /pages/gestion/administration.php?page=alias&succes=3");
die(); die();

@ -7,15 +7,38 @@
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/sessions/privileges.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/sessions/privileges.php");
/**
* Fonction listant le préfixe de l'utilisateur courant.
*/
function retournePrefixeUtilisateurPostfix($pdo) {
try {
$req = 'SELECT prefixe FROM postfix_utilisateurs WHERE utilisateur=:utilisateur';
$sql=$pdo->prepare($req);
$sql->bindValue(':utilisateur',$_SESSION['pseudo_utilisateur']);
$sql->execute();
$prefixe_utilisateur=$sql->fetchAll();
return $prefixe_utilisateur[0]['prefixe'];
}
catch (\Exception $e) {
die ("Erreur de requête de selection des alias virtuels : ".$e->getMessage());
}
}
/** /**
* Fonction listant les alias virtuels. * Fonction listant les alias virtuels.
*/ */
function listeAliasVirtuelsPostfix($pdo) { function listeAliasVirtuelsPostfix($pdo) {
try { try {
// Filtre des alias virtuels de l'utilisateur courant // Filtre des alias virtuels de l'utilisateur courant
$req = $pdo->query('SELECT * FROM postfix_alias_virtuels WHERE destination='."\"$_SESSION[pseudo_utilisateur]\""); $req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination';
$sql=$pdo->prepare($req);
$sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']);
$sql->execute();
$liste_alias_virtuels = array(); $liste_alias_virtuels = array();
foreach ($req as $alias_virtuels_bdd => $alias_virtuels) { foreach ($sql->fetchAll() as $alias_virtuels_bdd => $alias_virtuels) {
array_push($liste_alias_virtuels,$alias_virtuels); array_push($liste_alias_virtuels,$alias_virtuels);
} }
return $liste_alias_virtuels; return $liste_alias_virtuels;
@ -35,17 +58,7 @@ function ajoutAliasVirtuelsPostfix($pdo) {
$sql=$pdo->prepare($req); $sql=$pdo->prepare($req);
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']); $sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
$sql->bindValue(':alias_virtuel',retournePrefixeUtilisateurPostfix($pdo).$_POST['nom_alias']."@".$_POST['choix_domaine_alias']);
// Si l'utilisateur spécifie un préfixe à son alias, un "." est ajouté pour lé séparé du reste afin d'avoir "préfixe.alias@NdD"
if (!empty($_POST['prefix_alias'])) {
$separateur_prefix_alias=".";
}
// Permet de ne pas renvoyer le message "Notice: Undefined variable: separateur_prefix_alias" lors de lexécution du "bindValue" suivant
else {
$separateur_prefix_alias="";
}
$sql->bindValue(':alias_virtuel',$_POST['prefix_alias'].$separateur_prefix_alias.$_POST['nom_alias']."@".$_POST['choix_domaine_alias']);
$sql->execute(); $sql->execute();
if($sql->rowCount() == 1){ if($sql->rowCount() == 1){
@ -116,15 +129,13 @@ function modifEtatAliasVirtuelsPostfix($pdo) {
*/ */
function supprAliasVirtuelsPostfix($pdo) { function supprAliasVirtuelsPostfix($pdo) {
try { try {
//$req = $pdo->query('DELETE FROM postfix_alias_virtuels WHERE id='."$_GET[supprAliasVirtuel]".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)');
$req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur'; $req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
//$req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND courriel=:pseudo_utilisateur||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
$sql=$pdo->prepare($req); $sql=$pdo->prepare($req);
//$sql->bindParam(':id',$_GET['supprAliasVirtuel'],':pseudo_utilisateur',$_SESSION['pseudo_utilisateur]',':@','@');
$sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']); $sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']);
//$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@");
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']); $sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
$sql->execute(); $sql->execute();
if($sql->rowCount() == 1){ if($sql->rowCount() == 1){
return true; return true;
} }

@ -11,11 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
*/ */
function listeDomainesPostfix($pdo) { function listeDomainesPostfix($pdo) {
try { try {
$req = $pdo->query('SELECT domaine FROM postfix_domaines ORDER BY defaut DESC'); $req = 'SELECT domaine FROM postfix_domaines ORDER BY defaut DESC';
$liste_domaines = array(); $sql=$pdo->prepare($req);
foreach ($req as $domaine_bdd => $domaine) { $sql->execute();
array_push($liste_domaines,$domaine);
} $liste_domaines = $sql->fetchAll();
return $liste_domaines; return $liste_domaines;
} }
catch (\Exception $e) { catch (\Exception $e) {
@ -26,12 +26,14 @@ function listeDomainesPostfix($pdo) {
/** /**
* Fonction affichant le domaine par défaut. * Fonction affichant le domaine par défaut.
*/ */
function afficheDomaineDefautPostfix($pdo) { function retourneDomaineDefautPostfix($pdo) {
try { try {
$req = $pdo->query('SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1'); $req = 'SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1';
foreach ($req as $domaine_bdd => $domaine_defaut) { $sql=$pdo->prepare($req);
} $sql->execute();
return $domaine_defaut['domaine'];
$domaine_defaut = $sql->fetchAll();
return $domaine_defaut[0]['domaine'];
} }
catch (\Exception $e) { catch (\Exception $e) {
die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage()); die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());

@ -11,11 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
*/ */
function listeUtilisateursPostfix($pdo) { function listeUtilisateursPostfix($pdo) {
try { try {
$req = $pdo->query('SELECT utilisateur FROM postfix_utilisateurs'); $req = 'SELECT utilisateur FROM postfix_utilisateurs';
$liste_utilisateurs = array(); $sql=$pdo->prepare($req);
foreach ($req as $utilisateur_bdd => $utilisateur) { $sql->execute();
array_push($liste_utilisateurs,$utilisateur);
} $liste_utilisateurs = $sql->fetchAll();
return $liste_utilisateurs; return $liste_utilisateurs;
} }
catch (\Exception $e) { catch (\Exception $e) {

@ -11,7 +11,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
$liste_utilisateurs = listeUtilisateursPostfix($pdo); $liste_utilisateurs = listeUtilisateursPostfix($pdo);
$liste_domaines = listeDomainesPostfix($pdo); $liste_domaines = listeDomainesPostfix($pdo);
$liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo); $liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo);
/** /**
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur. * Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
*/ */
@ -51,10 +51,14 @@ _HEREDOC_;
<div> <div>
<form action="/services/actions/ajoutAliasVirtuels.php" method="post"> <form action="/services/actions/ajoutAliasVirtuels.php" method="post">
<h1>Ajouter un alias virtuel</h1> <h1>Ajouter un alias virtuel</h1>
<label for="prefix_alias">Prefix</label> <?php
<input type="text" name="prefix_alias"> $prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo);
<label for="nom_alias">alias*</label> if (!empty($prefixe_utilisateur)) {
<input type="text" id="nom_alias" name="nom_alias" onkeyup="filtreAliasVirtuels();" required> echo "<span>$prefixe_utilisateur</span>";
}
?>
<input type="text" id="nom_alias" name="nom_alias" placeholder="alias*" onkeyup="filtreAliasVirtuels();" required>
<span>@</span>
<select name="choix_domaine_alias"> <select name="choix_domaine_alias">
<?php <?php

Loading…
Cancel
Save