CARIA.2.1
MAJ 2.1 Formulaires : - Ajout mutliple conditions de validation BACK-END - Amélioration des conditions de réservations de véhicule - MAJ Front-End - Modification des règles pour les caractères accépté dans l'inscription - bug d'enregistrement d'image résolu DB : - Modification des règles dans réservations - Ajout de nouvelles entrée en base General : - Ajout de nouveaux messages d'erreurs possible - Deplacement du bloc de visualisation des utilisateurs - Ajout carte des vehicule sur la page de connexion - Ajout de nouvelles images au véhicules - Ajout des mentions légals --- Résolution de bugs...
This commit is contained in:
@@ -1,64 +1,180 @@
|
||||
<?php
|
||||
require_once './modele/profil.php';
|
||||
require_once './modele/vehicule.php';
|
||||
// Gestion des requêtes POST pour la suppression des véhicules
|
||||
require_once './modele/profil.php';
|
||||
require_once './modele/vehicule.php';
|
||||
// Récupérer les informations sur les véhicules et les utilisateurs
|
||||
// Initialisation des variables
|
||||
$TotalDesMembres = get_MemberCount();
|
||||
$TotalDesVehicules = get_VehiculesCount();
|
||||
$data = get_LastMember();
|
||||
$derniermembre = htmlspecialchars(stripslashes($data['pseudo']), ENT_QUOTES, 'UTF-8');
|
||||
$vehicules = get_CarsInfo();
|
||||
$cars = get_CarsInfo();
|
||||
$users = get_ProfilsInfo();
|
||||
$errors = [];
|
||||
// Gestion des requêtes POST pour la suppression des véhicules
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_vehicule'])) {
|
||||
$id = (int)$_POST['vehicule_id'];
|
||||
post_RemoveVehicule($id);
|
||||
header("Location: gestion.php"); // Redirigez vers la page appropriée après la suppression
|
||||
exit();
|
||||
}
|
||||
####################
|
||||
# Liste des véhicules de la compagnie #
|
||||
$cars = get_CarsInfo(); // Récupère les informations sur les vehicules depuis le modèle pour afficher toutes les voitures
|
||||
$users = get_ProfilsInfo(); // Récupère les informations sur les vehicules depuis le modèle pour afficher toutes les voitures
|
||||
####################
|
||||
# Formulaire pour les nouveaux véhicules #
|
||||
if (empty($_POST['plaque'])) { // Si la variable est vide, on peut considérer qu'on est sur la page de formulaire
|
||||
} else { // On est dans le cas traitement
|
||||
$plaque_erreur1 = NULL;
|
||||
$plaque_erreur2 = NULL;
|
||||
$image_erreur3 = NULL;
|
||||
// On récupère les variables
|
||||
$i = 0;
|
||||
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
|
||||
$plaque = $_POST['plaque'];
|
||||
$marque = $_POST['marque'];
|
||||
$modele = $_POST['modele'];
|
||||
$annee = $_POST['annee'];
|
||||
// Vérification des champs du formulaire
|
||||
$plaque_free = get_checkPlaque();
|
||||
if (!$plaque_free) {
|
||||
$plaque_erreur1 = "Votre immatriculation est déjà utilisée par un vehicule";
|
||||
$i++;
|
||||
try {
|
||||
// Assurez-vous que vehicule_id est défini et est un nombre valide
|
||||
if (!isset($_POST['vehicule_id']) || !is_numeric($_POST['vehicule_id'])) {
|
||||
throw new Exception("ID de véhicule invalide.");
|
||||
}
|
||||
// Convertir l'ID en entier de manière sécurisée
|
||||
$id = (int)$_POST['vehicule_id'];
|
||||
// Suppression du véhicule
|
||||
post_RemoveVehicule($id);
|
||||
// Inclure le fichier de vue et afficher le message de succès
|
||||
require_once './vue/gestion.html';
|
||||
displayDeleteVehiculeSuccessMessage();
|
||||
exit();
|
||||
} catch (Exception $e) {
|
||||
// En cas d'erreur, inclure le fichier de vue et afficher le message d'erreur
|
||||
require_once './vue/gestion.html';
|
||||
displayAddVehiculeErrorMessage(["Une erreur est survenue lors de la suppression du véhicule : " . $e->getMessage()]);
|
||||
}
|
||||
}
|
||||
// Formulaire pour les nouveaux véhicules
|
||||
if (!empty($_POST['plaque'])) {
|
||||
try {
|
||||
$plaque = $_POST['plaque'];
|
||||
$marque = $_POST['marque'];
|
||||
$modele = $_POST['modele'];
|
||||
$annee = $_POST['annee'];
|
||||
|
||||
// Validation des champs du formulaire
|
||||
if (empty($plaque) || strlen($plaque) < 7 || strlen($plaque) > 9) {
|
||||
$errors[] = "L'immatriculation doit comporter entre 7 et 9 caractères.";
|
||||
}
|
||||
|
||||
if (empty($marque) || strlen($marque) < 2 || strlen($marque) > 50) {
|
||||
$errors[] = "La marque doit comporter entre 2 et 50 caractères.";
|
||||
}
|
||||
|
||||
if (empty($modele) || strlen($modele) < 2 || strlen($modele) > 50) {
|
||||
$errors[] = "Le modèle doit comporter entre 2 et 50 caractères.";
|
||||
}
|
||||
|
||||
if (empty($annee) || !preg_match('/^\d{4}$/', $annee)) {
|
||||
$errors[] = "L'année doit être un nombre de 4 chiffres.";
|
||||
}
|
||||
|
||||
if (!get_checkPlaque()) {
|
||||
$errors[] = "Votre immatriculation est déjà utilisée par un véhicule.";
|
||||
}
|
||||
|
||||
if (!empty($_FILES['image']['size'])) {
|
||||
$extension_upload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));
|
||||
// Vérification de la taille maximale du fichier (par exemple, 5 Mo)
|
||||
$maxFileSize = 5 * 1024 * 1024; // 5 Mo en octets
|
||||
if ($_FILES['image']['size'] > $maxFileSize) {
|
||||
$errors[] = "La taille de l'image dépasse la limite autorisée de 5 Mo.";
|
||||
}
|
||||
// Vérification de l'extension du fichier
|
||||
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
|
||||
$extension_upload = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
|
||||
if (!in_array($extension_upload, $extensions_valides)) {
|
||||
$i++;
|
||||
$image_erreur3 = "Extension de l'image incorrecte";
|
||||
$errors[] = "Extension de l'image incorrecte. Seules les extensions JPG, JPEG, GIF et PNG sont autorisées.";
|
||||
}
|
||||
// Vérification du type MIME du fichier
|
||||
$allowedMimeTypes = array('image/jpeg', 'image/png', 'image/gif');
|
||||
$fileMimeType = mime_content_type($_FILES['image']['tmp_name']);
|
||||
if (!in_array($fileMimeType, $allowedMimeTypes)) {
|
||||
$errors[] = "Type de fichier non pris en charge. Veuillez télécharger une image au format JPG, JPEG, GIF ou PNG.";
|
||||
}
|
||||
}
|
||||
if ($i == 0) {
|
||||
// Message de réussite
|
||||
echo '
|
||||
<script>
|
||||
alert("Ajout du véhicule terminé.\n\n Le véhicule ' . addslashes(htmlspecialchars($_POST['plaque'])) . ' a été ajouté au véhicule de la plateforme.");
|
||||
</script>';
|
||||
// Inclure à nouveau le formulaire pour permettre à l'utilisateur de ressaisir des valeurs
|
||||
post_RegistreCar();
|
||||
header("Location: gestion.php"); // Redirigez vers la page appropriée après la suppression
|
||||
exit();
|
||||
} else {
|
||||
// Affichage des erreurs
|
||||
$errorMessages = '';
|
||||
if ($plaque_erreur1) $errorMessages .= "$plaque_erreur1";
|
||||
if ($image_erreur3) $errorMessages .= "$image_erreur3";
|
||||
echo '
|
||||
<script>
|
||||
alert("' . $i . ' erreurs s\'est produites lors de l\'ajout du véhicule.\n\n' . addslashes($errorMessages) . '");
|
||||
</script>';
|
||||
if (empty($errors)) {
|
||||
// Enregistrement du véhicule
|
||||
post_RegistreCar();
|
||||
require_once './vue/gestion.html';
|
||||
displayAddVehiculeSuccessMessage();
|
||||
exit();
|
||||
} else {
|
||||
require_once './vue/gestion.html';
|
||||
displayAddVehiculeErrorMessage($errors);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
// Afficher les messages d'erreur
|
||||
require_once './vue/gestion.html';
|
||||
displayAddVehiculeErrorMessage(["Une erreur est survenue lors de l'enregistrement du véhicule."]);
|
||||
}
|
||||
}
|
||||
require './vue/gestion.html';
|
||||
// Fonction pour afficher un message de succès
|
||||
function displayDeleteVehiculeSuccessMessage() {
|
||||
echo '<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var messageDiv = document.getElementById("message");
|
||||
var successMessage = `
|
||||
<div class="alert alert-success">
|
||||
<section id="content" class="page-content">
|
||||
<div class="card text-center">
|
||||
<div class="card-header">
|
||||
<h3>Suppression du véhicule terminé</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Le véhicule ' . addslashes(htmlspecialchars($_POST['plaque'])) . ' a été supprimé de la plateforme.</h5><br>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = successMessage;
|
||||
// Redirection après un délai
|
||||
setTimeout(function() {
|
||||
window.location.href = "gestion.php";
|
||||
}, 2000); // 2 secondes
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
// Fonction pour afficher un message d'erreur
|
||||
function displayAddVehiculeErrorMessage($errors) {
|
||||
echo '<script>document.addEventListener("DOMContentLoaded", function() {
|
||||
var messageDiv = document.getElementById("message");
|
||||
var errorMessage = `<div class="alert alert-danger">
|
||||
<section id="content" class="page-content">
|
||||
<div class="card text-center">
|
||||
<div class="card-header">
|
||||
<h3>Ajout du véhicule interrompu</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Erreur(s) dans le formulaire d\'ajout de véhicule :</p>
|
||||
<ul style="list-style-type:none;">'; // Début de la liste d'erreurs
|
||||
foreach ($errors as $error) {
|
||||
echo "<li>" . htmlspecialchars($error, ENT_QUOTES, 'UTF-8') . "</li>"; // Ajout de chaque erreur à la liste
|
||||
}
|
||||
echo ' </ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = errorMessage;
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
// Fonction pour afficher un message de succès
|
||||
function displayAddVehiculeSuccessMessage() {
|
||||
echo '<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var messageDiv = document.getElementById("message");
|
||||
var successMessage = `
|
||||
<div class="alert alert-success">
|
||||
<section id="content" class="page-content">
|
||||
<div class="card text-center">
|
||||
<div class="card-header">
|
||||
<h3>Ajout du véhicule terminé</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Le véhicule ' . addslashes(htmlspecialchars($_POST['plaque'])) . ' a été ajouté au véhicule de la plateforme.</h5><br>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = successMessage;
|
||||
// Redirection après un délai
|
||||
setTimeout(function() {
|
||||
window.location.href = "gestion.php";
|
||||
}, 2000); // 3 secondes
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
require_once './vue/gestion.html';
|
||||
?>
|
||||
Reference in New Issue
Block a user