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();
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);
header ("Location: /pages/gestion/administration.php?page=alias&succes=3");
die();

@ -7,15 +7,38 @@
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.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.
*/
function listeAliasVirtuelsPostfix($pdo) {
try {
// 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();
foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
foreach ($sql->fetchAll() as $alias_virtuels_bdd => $alias_virtuels) {
array_push($liste_alias_virtuels,$alias_virtuels);
}
return $liste_alias_virtuels;
@ -35,17 +58,7 @@ function ajoutAliasVirtuelsPostfix($pdo) {
$sql=$pdo->prepare($req);
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
// 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->bindValue(':alias_virtuel',retournePrefixeUtilisateurPostfix($pdo).$_POST['nom_alias']."@".$_POST['choix_domaine_alias']);
$sql->execute();
if($sql->rowCount() == 1){
@ -116,15 +129,13 @@ function modifEtatAliasVirtuelsPostfix($pdo) {
*/
function supprAliasVirtuelsPostfix($pdo) {
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 courriel=:pseudo_utilisateur||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
$sql=$pdo->prepare($req);
//$sql->bindParam(':id',$_GET['supprAliasVirtuel'],':pseudo_utilisateur',$_SESSION['pseudo_utilisateur]',':@','@');
$sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']);
//$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@");
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
$sql->execute();
if($sql->rowCount() == 1){
return true;
}

@ -11,11 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
*/
function listeDomainesPostfix($pdo) {
try {
$req = $pdo->query('SELECT domaine FROM postfix_domaines ORDER BY defaut DESC');
$liste_domaines = array();
foreach ($req as $domaine_bdd => $domaine) {
array_push($liste_domaines,$domaine);
}
$req = 'SELECT domaine FROM postfix_domaines ORDER BY defaut DESC';
$sql=$pdo->prepare($req);
$sql->execute();
$liste_domaines = $sql->fetchAll();
return $liste_domaines;
}
catch (\Exception $e) {
@ -26,12 +26,14 @@ function listeDomainesPostfix($pdo) {
/**
* Fonction affichant le domaine par défaut.
*/
function afficheDomaineDefautPostfix($pdo) {
function retourneDomaineDefautPostfix($pdo) {
try {
$req = $pdo->query('SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1');
foreach ($req as $domaine_bdd => $domaine_defaut) {
}
return $domaine_defaut['domaine'];
$req = 'SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1';
$sql=$pdo->prepare($req);
$sql->execute();
$domaine_defaut = $sql->fetchAll();
return $domaine_defaut[0]['domaine'];
}
catch (\Exception $e) {
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) {
try {
$req = $pdo->query('SELECT utilisateur FROM postfix_utilisateurs');
$liste_utilisateurs = array();
foreach ($req as $utilisateur_bdd => $utilisateur) {
array_push($liste_utilisateurs,$utilisateur);
}
$req = 'SELECT utilisateur FROM postfix_utilisateurs';
$sql=$pdo->prepare($req);
$sql->execute();
$liste_utilisateurs = $sql->fetchAll();
return $liste_utilisateurs;
}
catch (\Exception $e) {

@ -51,10 +51,14 @@ _HEREDOC_;
<div>
<form action="/services/actions/ajoutAliasVirtuels.php" method="post">
<h1>Ajouter un alias virtuel</h1>
<label for="prefix_alias">Prefix</label>
<input type="text" name="prefix_alias">
<label for="nom_alias">alias*</label>
<input type="text" id="nom_alias" name="nom_alias" onkeyup="filtreAliasVirtuels();" required>
<?php
$prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo);
if (!empty($prefixe_utilisateur)) {
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">
<?php

Loading…
Cancel
Save