CARIA.2.0
Suite de la version 1.0.0 repo CARIA - Enormement de modification. - Restructuration du code - Optimisation - Debug . . . Phase de test en cours !
44
config/connexion_sql.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
// Connexion à la base de données
|
||||
try
|
||||
{
|
||||
$bdd = new PDO('mysql:host=IP:3307;dbname=CARIA', 'user', 'mdp',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
die('Erreur : '.$e->getMessage());
|
||||
}
|
||||
# Constantes
|
||||
define('VISITEUR',1);
|
||||
define('INSCRIT',2);
|
||||
define('MODO',3);
|
||||
define('ADMIN',4);
|
||||
define('ERR_IS_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
|
||||
session_start();
|
||||
# Connexion et initialisation des variables
|
||||
$lvl_session = isset($_SESSION['privilege_session']) ? (int)$_SESSION['privilege_session'] : 1;
|
||||
$id_session = isset($_SESSION['id_session']) ? (int)$_SESSION['id_session'] : 0;
|
||||
$pseudo_session = isset($_SESSION['pseudo_session']) ? $_SESSION['pseudo_session'] : '';
|
||||
|
||||
function verifierAcces($min_privilege_requis) {
|
||||
// Vérifier si l'utilisateur est connecté
|
||||
if (!isset($_SESSION['id_session'])) {
|
||||
// Afficher la page d'erreur en incluant le fichier de vue
|
||||
$message = "Vous devez être connecté pour accéder à cette page.";
|
||||
include 'erreur.php';
|
||||
exit(); // Arrêter l'exécution du script après affichage de l'erreur
|
||||
}
|
||||
|
||||
// Vérifier le privilège de l'utilisateur
|
||||
$privilege_utilisateur = isset($_SESSION['privilege_session']) ? (int)$_SESSION['privilege_session'] : VISITEUR;
|
||||
|
||||
// Vérifier si le privilège de l'utilisateur est suffisant pour accéder à la page
|
||||
if ($privilege_utilisateur < $min_privilege_requis) {
|
||||
// Afficher la page d'erreur en incluant le fichier de vue
|
||||
$message = "Vous n'avez pas les droits d'accès nécessaires pour accéder à cette page.";
|
||||
include 'erreur.php';
|
||||
exit(); // Arrêter l'exécution du script après affichage de l'erreur
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
BIN
config/images/CARIA.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
config/images/Thumbs.db
Normal file
BIN
config/images/bg.jpg
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
config/images/calendrier.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
config/images/favicon.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
config/images/footer.jpg
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
config/images/gallery_loading.gif
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
config/images/header.jpg
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
config/images/logo.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
82
controleur/connexion.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
// Vérification des identifiants de connexion
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
// Récupération des données du formulaire
|
||||
$pseudoCo = $_POST['pseudo_connect'] ?? '';
|
||||
$passwordCo = $_POST['password_connect'] ?? '';
|
||||
|
||||
// Vérification des identifiants
|
||||
$connexionModel = new Connexion();
|
||||
$userData = $connexionModel->check_Password($pseudoCo);
|
||||
|
||||
if ($userData && $connexionModel->checkCredentials($pseudoCo, $passwordCo)) {
|
||||
// Les identifiants sont corrects, connecter l'utilisateur
|
||||
//require_once './vue/home.html';
|
||||
// displaySuccessMessage();
|
||||
connectUser($userData);
|
||||
} else {
|
||||
// Afficher un message d'erreur en cas de connexion échouée
|
||||
require './vue/connexion.html';
|
||||
displayErrorMessage();
|
||||
}
|
||||
}
|
||||
// Fonction pour connecter l'utilisateur
|
||||
function connectUser($userData) {
|
||||
$_SESSION['pseudo_session'] = $userData['pseudo'];
|
||||
$_SESSION['privilege_session'] = $userData['privilege'];
|
||||
$_SESSION['id_session'] = $userData['id'];
|
||||
// Redirection vers la page principale
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
}
|
||||
// Fonction pour afficher un message d'erreur
|
||||
function displayErrorMessage() {
|
||||
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>Echec de la connexion</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>La combinaison du pseudo et mot de passe saisie n\'est pas correcte.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = errorMessage;
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
// Fonction pour afficher un message de succès
|
||||
function displaySuccessMessage() {
|
||||
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>Connexion réussie</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Bonjour ' . htmlspecialchars($_SESSION['pseudo_session'], ENT_QUOTES, 'UTF-8') . '.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = successMessage;
|
||||
// Redirection après un délai
|
||||
setTimeout(function() {
|
||||
window.location.href = "index.php";
|
||||
}, 3000); // 3 secondes
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
64
controleur/gestion.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
require_once './modele/profil.php';
|
||||
require_once './modele/vehicule.php';
|
||||
// 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++;
|
||||
}
|
||||
if (!empty($_FILES['image']['size'])) {
|
||||
$extension_upload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));
|
||||
if (!in_array($extension_upload, $extensions_valides)) {
|
||||
$i++;
|
||||
$image_erreur3 = "Extension de l'image incorrecte";
|
||||
}
|
||||
}
|
||||
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>';
|
||||
}
|
||||
}
|
||||
require './vue/gestion.html';
|
||||
?>
|
||||
21
controleur/home.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
require_once './modele/vehicule.php';
|
||||
require_once './modele/profil.php';
|
||||
// Initialisation des variables
|
||||
$TotalDesMembres = get_MemberCount();
|
||||
$TotalDesVehicules = get_VehiculesCount();
|
||||
$data = get_LastMember();
|
||||
$derniermembre = htmlspecialchars(stripslashes($data['pseudo']), ENT_QUOTES, 'UTF-8');
|
||||
$vehicules = get_CarsInfo();
|
||||
// Vérification de la session utilisateur
|
||||
if (isset($id_session) && $id_session != 0) {
|
||||
require './vue/home.html';
|
||||
} else {
|
||||
// Afficher la page d'accueil ou le formulaire de connexion
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
require 'connexion.php';
|
||||
} else {
|
||||
require './vue/connexion.html';
|
||||
}
|
||||
}
|
||||
?>
|
||||
135
controleur/inscription.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
require_once './modele/profil.php';
|
||||
// Fonction pour vérifier si le pseudo est disponible
|
||||
function isPseudoAvailable($pseudo) {
|
||||
$pseudo_free = get_checkPseudo();
|
||||
if (!$pseudo_free) {
|
||||
return false; // Pseudo non disponible
|
||||
}
|
||||
return true; // Pseudo disponible
|
||||
}
|
||||
// Fonction pour vérifier si l'email est disponible
|
||||
function isEmailAvailable($email) {
|
||||
$mail_free = get_checkMail();
|
||||
if (!$mail_free) {
|
||||
return false; // Email non disponible
|
||||
}
|
||||
return true; // Email disponible
|
||||
}
|
||||
// Fonction pour vérifier l'extension de l'avatar
|
||||
function isValidAvatarExtension($filename, $extensions_valides) {
|
||||
$extension_upload = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
|
||||
return in_array($extension_upload, $extensions_valides);
|
||||
}
|
||||
// Fonction pour inscrire l'utilisateur
|
||||
function inscriptionUser($userData) {
|
||||
global $bdd;
|
||||
// Enregistrement de l'utilisateur
|
||||
post_Registre();
|
||||
// Définition des variables de session
|
||||
$_SESSION['pseudo_session'] = $userData['pseudo'];
|
||||
$_SESSION['id_session'] = $bdd->lastInsertId(); // Assurez-vous d'avoir accès à $bdd ici
|
||||
$_SESSION['privilege_session'] = 2;
|
||||
}
|
||||
// Traitement de l'inscription
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$errors = [];
|
||||
// On récupère les variables
|
||||
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
|
||||
$pseudo = $_POST['pseudo'];
|
||||
$email = $_POST['email'];
|
||||
$localisation = $_POST['localisation'];
|
||||
$prenom = $_POST['prenom'];
|
||||
$nom = $_POST['nom'];
|
||||
$pass = md5($_POST['password']);
|
||||
$confirm = md5($_POST['confirm']);
|
||||
// Validation du pseudo
|
||||
if (!isPseudoAvailable($pseudo)) {
|
||||
$errors[] = "Votre pseudo est déjà utilisé par un membre.";
|
||||
}
|
||||
// Validation du mot de passe
|
||||
if ($pass !== $confirm || empty($confirm) || empty($pass)) {
|
||||
$errors[] = "Votre mot de passe et la confirmation sont différents, ou sont vides.";
|
||||
}
|
||||
// Validation de l'email
|
||||
if (!isEmailAvailable($email)) {
|
||||
$errors[] = "Votre adresse email est déjà utilisée par un membre.";
|
||||
}
|
||||
// Validation de l'avatar s'il est uploadé
|
||||
if (!empty($_FILES['avatar']['size'])) {
|
||||
if (!isValidAvatarExtension($_FILES['avatar']['name'], $extensions_valides)) {
|
||||
$errors[] = "Extension de l'avatar incorrecte.";
|
||||
}
|
||||
}
|
||||
if (empty($errors)) {
|
||||
$userData = [
|
||||
'pseudo' => $pseudo,
|
||||
'email' => $email,
|
||||
// Autres champs du formulaire
|
||||
];
|
||||
require_once './vue/inscription.html';
|
||||
inscriptionUser($userData);
|
||||
displayInscriptionSuccessMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
// Affichage du formulaire d'inscription avec les éventuelles erreurs
|
||||
require_once './vue/inscription.html';
|
||||
if (!empty($errors)) {
|
||||
displayInscriptionErrorMessage($errors);
|
||||
}
|
||||
// Fonction pour afficher un message d'erreur
|
||||
function displayInscriptionErrorMessage($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>Echec de l\'inscription</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Erreur(s) dans le formulaire d\'inscription :</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 displayInscriptionSuccessMessage() {
|
||||
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>Inscription terminée</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Bienvenue ' . htmlspecialchars($_POST['pseudo'], ENT_QUOTES, 'UTF-8') . '<br><br> vous êtes maintenant inscrit sur la plateforme!</h5><br>
|
||||
<p>Cliquez <a href="./index.php">ici</a> pour revenir à l\'acceuil</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = successMessage;
|
||||
// Redirection après un délai
|
||||
setTimeout(function() {
|
||||
window.location.href = "index.php";
|
||||
}, 5000); // 5 secondes
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
147
controleur/profil.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
require_once './modele/profil.php';
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_client'])) {
|
||||
$id = (int)$_SESSION['id_session'];
|
||||
post_RemoveClient($id);
|
||||
header("Location: index.php"); // Redirigez vers la page appropriée après la suppression
|
||||
displayDeleteProfilSuccessMessage();
|
||||
exit();
|
||||
}
|
||||
$vehicules = get_ProfilsInfo();
|
||||
// On récupère la valeur de nos variables passées par URL
|
||||
$action = isset($_GET['action']) ? htmlspecialchars($_GET['action']) : 'consulter';
|
||||
$membre = isset($_GET['m']) ? (int)$_GET['m'] : '';
|
||||
|
||||
switch($action){
|
||||
case "consulter":
|
||||
// On affiche les infos sur le membre
|
||||
$data = get_MemberInfo();
|
||||
require './vue/profile_view.html';
|
||||
break;
|
||||
case "modifier":
|
||||
handleProfileModification();
|
||||
break;
|
||||
default:
|
||||
echo '<p>Cette action est impossible</p>';
|
||||
}
|
||||
function handleProfileModification(){
|
||||
if (empty($_POST['sent'])) {
|
||||
// On commence par s'assurer que le membre est connecté
|
||||
// if ($id == 0) erreur(ERR_IS_NOT_CO);
|
||||
// Les infos du membre
|
||||
$data = get_MemberInfoId();
|
||||
require './vue/edit_profile_view.html';
|
||||
} else {
|
||||
$i = 0;
|
||||
$pass = /*md5*/($_POST['password']);
|
||||
$confirm = /*md5*/($_POST['confirm']);
|
||||
$email = $_POST['email'];
|
||||
$localisation = $_POST['localisation'];
|
||||
$phone = $_POST['phone'];
|
||||
$pseudo = $_SESSION['pseudo_session'];
|
||||
$extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
|
||||
// Vérification des champs du formulaire
|
||||
if ($pass != $confirm || empty($confirm) || empty($pass)) {
|
||||
$mdp_erreur = "Votre mot de passe et la confirmation sont différents ou sont vides";
|
||||
$i++;
|
||||
}
|
||||
if (!empty($_FILES['avatar']['size'])) {
|
||||
$extension_upload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
|
||||
if (!in_array($extension_upload, $extensions_valides)) {
|
||||
$i++;
|
||||
$avatar_erreur3 = "Extension de l'avatar incorrecte";
|
||||
}
|
||||
}
|
||||
if ($i == 0) {
|
||||
if (isset($_POST['delete'])) {
|
||||
post_RemoveAvatar($pseudo);
|
||||
}
|
||||
// On modifie la table
|
||||
post_UpdateProfile($pseudo, $pass, $email, $localisation, $phone);
|
||||
$data = get_MemberInfoId(); // Récupérer les informations mises à jour
|
||||
require_once './vue/edit_profile_view.html';
|
||||
displayModificationProfilSuccessMessage();
|
||||
exit;
|
||||
} else {
|
||||
$data = get_MemberInfoId(); // Récupérer les informations mises à jour
|
||||
require_once './vue/edit_profile_view.html';
|
||||
displayModificationProfilErrorMessage($i, $avatar_erreur3 ?? null, $mdp_erreur ?? null);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Fonction pour afficher un message de succès
|
||||
function displayModificationProfilSuccessMessage() {
|
||||
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">
|
||||
<h2>Modification de profil terminée</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Votre profil a été modifié avec succès !</h5>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = successMessage;
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
function displayModificationProfilErrorMessage($i, $avatar_erreur3 = null, $mdp_erreur = null) {
|
||||
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">
|
||||
<h2>Modification de profil interrompue</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Nous avons rencontré ' . $i . ' erreur(s) lors de la modification de votre profil :</h5><br>
|
||||
<ul style="list-style-type:none;">';
|
||||
if (isset($avatar_erreur3)) {
|
||||
echo '<li>' . $avatar_erreur3 . '</li>';
|
||||
}
|
||||
if (isset($mdp_erreur)) {
|
||||
echo '<li>' . $mdp_erreur . '</li>';
|
||||
}
|
||||
echo ' </ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = errorMessage;
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
function displayDeleteProfilSuccessMessage() {
|
||||
echo '<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var messageDiv = document.getElementById("message");
|
||||
var errorMessage = `
|
||||
<div class="alert alert-success">
|
||||
<section id="content" class="page-content">
|
||||
<div class="card text-center">
|
||||
<div class="card-header">
|
||||
<h2>Suppression de compte confirmée</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Votre compte a été supprimé avec succès. Nous vous remercions pour votre utilisation de notre service.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
`;
|
||||
messageDiv.innerHTML = errorMessage;
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
26
controleur/send_mail.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
// NOT WORKING - Activation email server necessaire
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Récupérer les données du formulaire
|
||||
$name = htmlspecialchars($_POST['name']);
|
||||
$email = htmlspecialchars($_POST['email']);
|
||||
$subject = htmlspecialchars($_POST['subject']);
|
||||
$message = htmlspecialchars($_POST['message']);
|
||||
|
||||
// Destinataire du mail
|
||||
$to = "contact@cunatbrule.fr";
|
||||
$headers = "From: $email" . "\r\n" .
|
||||
"Reply-To: $email" . "\r\n" .
|
||||
"X-Mailer: PHP/" . phpversion();
|
||||
|
||||
// Composer le contenu de l'email
|
||||
$body = "Nom: $name\nEmail: $email\nSujet: $subject\n\nMessage:\n$message";
|
||||
|
||||
// Envoyer l'email
|
||||
if (mail($to, $subject, $body, $headers)) {
|
||||
echo "Votre message a été envoyé avec succès.";
|
||||
} else {
|
||||
echo "Une erreur est survenue lors de l'envoi de votre message.";
|
||||
}
|
||||
}
|
||||
?>
|
||||
19
controleur/send_position.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
// Préparer la requête SQL pour la mise à jour des données existantes
|
||||
$stmt = $bdd->prepare("UPDATE Vehicules SET latitude = :latitude, longitude = :longitude WHERE id = :id");
|
||||
// Liage des valeurs des données POST aux paramètres de la requête SQL
|
||||
$stmt->bindParam(':id', $_POST['id']);
|
||||
$stmt->bindParam(':latitude', $_POST['latitude']);
|
||||
$stmt->bindParam(':longitude', $_POST['longitude']);
|
||||
// Exécution de la requête SQL
|
||||
$stmt->execute();
|
||||
echo "Données POST mises à jour avec succès dans la base de données.";
|
||||
// Fermeture de la connexion à la base de données
|
||||
$bdd = null;
|
||||
// Sauvegarde des données POST dans un fichier
|
||||
$file_path = 'logs/post_data_location.txt';
|
||||
$post_data = json_encode($_POST);
|
||||
$file_handle = fopen($file_path, 'a');
|
||||
fwrite($file_handle, $post_data . PHP_EOL);
|
||||
fclose($file_handle);
|
||||
?>
|
||||
61
controleur/vehicule.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
require_once './modele/vehicule.php';
|
||||
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 plaque est déjà utilisée par un vehicule";
|
||||
$i++;
|
||||
}
|
||||
if (strlen($plaque) < 7 || strlen($plaque) > 9) {
|
||||
$plaque_erreur2 = "Votre plaque est soit trop grande, soit trop petite";
|
||||
$i++;
|
||||
}
|
||||
if (!empty($_FILES['image']['size'])) {
|
||||
$extension_upload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));
|
||||
if (!in_array($extension_upload, $extensions_valides)) {
|
||||
$i++;
|
||||
$image_erreur3 = "Extension de l'image incorrecte";
|
||||
}
|
||||
}
|
||||
if ($i == 0) {
|
||||
// Affichage du message de réussite
|
||||
echo '
|
||||
<div class="container">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<hr><h2 style="color: green;">Ajout du véhicule terminé</h2><br>
|
||||
<h5 style="color: green;">Le véhicule ' . stripslashes(htmlspecialchars($_POST['plaque'])) . ' a été ajouté au véhicule de la compagnie</h5><hr><br>
|
||||
</div>
|
||||
</section>
|
||||
</div>';
|
||||
// Inclure à nouveau le formulaire pour permettre à l'utilisateur de ressaisir des valeurs
|
||||
post_RegistreCars();
|
||||
} else {
|
||||
// Affichage des erreurs et lien pour retourner au formulaire
|
||||
echo '
|
||||
<div class="container"><section id="content" class="page-content"><div class="container text-center">
|
||||
<hr><h2>Ajout du véhicule interrompu</h2><br>
|
||||
<h5>' . $i . ' erreurs se sont produites lors de l\'ajout du véhicule</h5><br>
|
||||
<ul>';
|
||||
if ($plaque_erreur1) echo "<p>$plaque_erreur1</p>";
|
||||
if ($plaque_erreur2) echo "<p>$plaque_erreur2</p>";
|
||||
if ($image_erreur3) echo "<p>$image_erreur3</p>";
|
||||
echo '
|
||||
</ul><hr><br>
|
||||
</div></section></div>';
|
||||
}
|
||||
}
|
||||
require './vue/vehicule.html';
|
||||
?>
|
||||
17
css/style.css
Normal file
@@ -0,0 +1,17 @@
|
||||
.bg1 {
|
||||
background:#E8F2F9;
|
||||
/*background-image: url(../config/images/bg.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
background-attachment: scroll;*/
|
||||
}
|
||||
.disponible {
|
||||
color: green;
|
||||
}
|
||||
.indisponible {
|
||||
color: red;
|
||||
}
|
||||
#map{ /* la carte DOIT avoir une hauteur sinon elle n'apparaît pas */
|
||||
height:400px;
|
||||
}
|
||||
16
deconnexion.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
?>
|
||||
<section id="content" class="page-content text-center py-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h2>Déconnexion réussie!</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4>A bientôt</h4>
|
||||
<p>Vous êtes à présent déconnecté</p>
|
||||
<p><a href="./index.php">Revenir à l'écran principal</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
4
erreur.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
require_once 'config/connexion_sql.php';
|
||||
require_once 'vue/erreur.html';
|
||||
?>
|
||||
5
gestion.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
require_once 'config/connexion_sql.php';
|
||||
verifierAcces(VISITEUR);
|
||||
require_once 'controleur/gestion.php';
|
||||
?>
|
||||
BIN
images/avatars/Thumbs.db
Normal file
BIN
images/avatars/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/sa/Thumbs.db
Normal file
BIN
images/avatars/sa/img_user.jpg
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
images/avatars/utilisateur1/Thumbs.db
Normal file
BIN
images/avatars/utilisateur1/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur10/Thumbs.db
Normal file
BIN
images/avatars/utilisateur10/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur11/Thumbs.db
Normal file
BIN
images/avatars/utilisateur11/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur12/Thumbs.db
Normal file
BIN
images/avatars/utilisateur12/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur13/Thumbs.db
Normal file
BIN
images/avatars/utilisateur13/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur14/Thumbs.db
Normal file
BIN
images/avatars/utilisateur14/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur15/Thumbs.db
Normal file
BIN
images/avatars/utilisateur15/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur16/Thumbs.db
Normal file
BIN
images/avatars/utilisateur16/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur17/Thumbs.db
Normal file
BIN
images/avatars/utilisateur17/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur18/Thumbs.db
Normal file
BIN
images/avatars/utilisateur18/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur19/Thumbs.db
Normal file
BIN
images/avatars/utilisateur19/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur2/Thumbs.db
Normal file
BIN
images/avatars/utilisateur2/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur20/Thumbs.db
Normal file
BIN
images/avatars/utilisateur20/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur3/Thumbs.db
Normal file
BIN
images/avatars/utilisateur3/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur4/Thumbs.db
Normal file
BIN
images/avatars/utilisateur4/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur5/Thumbs.db
Normal file
BIN
images/avatars/utilisateur5/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur6/Thumbs.db
Normal file
BIN
images/avatars/utilisateur6/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur7/Thumbs.db
Normal file
BIN
images/avatars/utilisateur7/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur8/Thumbs.db
Normal file
BIN
images/avatars/utilisateur8/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/utilisateur9/Thumbs.db
Normal file
BIN
images/avatars/utilisateur9/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/vehicules/AA123AA/Thumbs.db
Normal file
BIN
images/vehicules/AA123AA/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/BB456BB/Thumbs.db
Normal file
BIN
images/vehicules/BB456BB/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/CC789CC/Thumbs.db
Normal file
BIN
images/vehicules/CC789CC/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/DD012DD/Thumbs.db
Normal file
BIN
images/vehicules/DD012DD/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/EE345EE/Thumbs.db
Normal file
BIN
images/vehicules/EE345EE/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/FF678FF/Thumbs.db
Normal file
BIN
images/vehicules/FF678FF/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/GG901GG/Thumbs.db
Normal file
BIN
images/vehicules/GG901GG/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/GH209RH/img_voiture.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
images/vehicules/HH234HH/Thumbs.db
Normal file
BIN
images/vehicules/HH234HH/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/II567II/Thumbs.db
Normal file
BIN
images/vehicules/II567II/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/IO334PO/img_voiture.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
images/vehicules/JJ890JJ/Thumbs.db
Normal file
BIN
images/vehicules/JJ890JJ/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/KK123KK/Thumbs.db
Normal file
BIN
images/vehicules/KK123KK/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/LL456LL/Thumbs.db
Normal file
BIN
images/vehicules/LL456LL/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/MM789MM/Thumbs.db
Normal file
BIN
images/vehicules/MM789MM/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/NN012NN/Thumbs.db
Normal file
BIN
images/vehicules/NN012NN/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/OO345OO/Thumbs.db
Normal file
BIN
images/vehicules/OO345OO/img_voiture.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/vehicules/PH940OP/img_voiture.png
Normal file
|
After Width: | Height: | Size: 53 KiB |