CARIA.2.3

Update for the final presentation.
This commit is contained in:
ccunatbrule
2024-09-03 12:06:00 +02:00
parent 062ebe64d7
commit 37d596cfb3
42 changed files with 121 additions and 73 deletions

View File

@@ -1,44 +1,44 @@
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=HOST:3307;dbname=DB', '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
}
}
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=nasccb:3307;dbname=CARIA', 'christian', 'fYUYWc5rSyC!',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
}
}
?>

View File

@@ -18,6 +18,7 @@ switch($action){
case "consulter":
// Afficher les informations du membre
$userData = get_MemberInfo($membreId);
setlocale(LC_TIME, 'fr_FR.UTF-8', 'fra'); // Ajustez selon votre système
if ($userData === false) {
$message = "Impossible de récupérer les informations de l'utilisateur où il n'existe pas.";
require_once './vue/erreur.html';
@@ -32,6 +33,18 @@ switch($action){
echo '<p>Cette action est impossible</p>';
}
// Fonction pour obtenir le texte correspondant au privilège
function getPrivilegeText($privilege) {
$privilegeMap = [
1 => 'Visiteur',
2 => 'Utilisateur',
3 => 'Modérateur',
4 => 'Administrateur',
];
return isset($privilegeMap[$privilege]) ? $privilegeMap[$privilege] : 'Privilège inconnu';
}
function handleProfileModification() {
if (empty($_POST['sent'])) {
$userData = get_MemberInfoId();

View File

@@ -1,5 +1,5 @@
<?php
require_once 'config/connexion_sql.php';
verifierAcces(VISITEUR);
verifierAcces(ADMIN);
require_once 'controleur/gestion.php';
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -55,18 +55,14 @@ $(document).ready(function () {
function eventClickFunction(event) {
// Afficher une pop-up avec les détails de l'événement
alert(
event.title +
" : \n" +
event.vehicule +
" pour le client " +
event.utilisateur +
"\n" +
"\n" +
"Période de réservation : " +
"\n" +
event.start.format("dddd DD MMMM YYYY HH:mm") +
" --> " +
event.end.format("dddd DD MMMM YYYY HH:mm")
event.title + " - " + event.vehicule + " pour le client " + event.utilisateur + "\n" +
"\n" + "Date et lieu de début : " +
"\n" + event.start.format("dddd DD MMMM YYYY HH:mm") +
"\n" + event.adresse +"\n" +
"\n" + "Date et lieu de fin : " +
"\n" + event.end.format("dddd DD MMMM YYYY HH:mm") +
"\n" + event.adresse
);
}

View File

@@ -48,3 +48,5 @@
{"id":"1","latitude":"48.6757215","longitude":"2.3862465","datetime":"17-05-2024 22.25"}
{"id":"1","latitude":"48.6757256","longitude":"2.3862458","datetime":"17-05-2024 22.30"}
{"id":"1","latitude":"48.6779999","longitude":"2.3875904","datetime":"18-05-2024 00.49"}
{"id":"1","latitude":"48.8184344","longitude":"2.2759596","datetime":"19-06-2024 10.20"}
{"id":"1","latitude":"48.6757095","longitude":"2.3862128","datetime":"20-06-2024 09.50"}

View File

@@ -2,14 +2,16 @@
require '../../config/connexion_sql.php';
global $bdd;
$json = array();
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id ORDER BY res.id";
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo, usr.adresse FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id ORDER BY res.id";
$stmt = $bdd->query($sqlQuery);
$eventArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($eventArray as &$event) {
$event['vehicule'] = $event['marque'] . ' ' . $event['modele']; // Supposons que le nom du véhicule est stocké dans 'marque'
$event['vehicule'] = $event['marque'] . ' ' . $event['modele'];
}
foreach ($eventArray as &$event) {
$event['utilisateur'] = $event['pseudo']; // Supposons que le nom du véhicule est stocké dans 'marque'
$event['utilisateur'] = $event['pseudo'];
$event['adresse'] = $event['adresse'];
}
echo json_encode($eventArray);
$bdd = null;

View File

@@ -3,16 +3,17 @@ require '../../config/connexion_sql.php';
global $bdd;
$id = $_SESSION['id_session'];
$json = array();
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id WHERE res.id_user = :id ORDER BY res.id";
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo, usr.adresse FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id WHERE res.id_user = :id ORDER BY res.id";
$stmt = $bdd->prepare($sqlQuery);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$eventArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($eventArray as &$event) {
$event['vehicule'] = $event['marque'] . ' ' . $event['modele']; // Supposons que le nom du véhicule est stocké dans 'marque'
$event['vehicule'] = $event['marque'] . ' ' . $event['modele'];
}
foreach ($eventArray as &$event) {
$event['utilisateur'] = $event['pseudo']; // Supposons que le nom du véhicule est stocké dans 'marque'
$event['utilisateur'] = $event['pseudo'];
$event['adresse'] = $event['adresse'];
}
echo json_encode($eventArray);
$bdd = null;

View File

@@ -30,7 +30,7 @@ class Connexion {
$id=(isset($_SESSION['id_session']))?(int) $_SESSION['id_session']:0;
//On prend les infos du membre
$req = $bdd->prepare('SELECT pseudo, mdp, email, avatar, adresse, prenom, nom, phone, dateenregistre FROM Clients WHERE id=:id');
$req = $bdd->prepare('SELECT pseudo, mdp, email, avatar, adresse, prenom, nom, phone, dateenregistre, privilege FROM Clients WHERE id=:id');
$req->bindValue(':id',$id,PDO::PARAM_INT);
$req->execute();
$userData = $req->fetch();
@@ -67,7 +67,7 @@ function get_MemberInfoId(){
$id=(isset($_SESSION['id_session']))?(int) $_SESSION['id_session']:0;
//On prend les infos du membre
$req = $bdd->prepare('SELECT pseudo, mdp, email, avatar, adresse, prenom, nom, phone, dateenregistre FROM Clients WHERE id=:id');
$req = $bdd->prepare('SELECT pseudo, mdp, email, avatar, adresse, prenom, nom, phone, dateenregistre, privilege FROM Clients WHERE id=:id');
$req->bindValue(':id',$id,PDO::PARAM_INT);
$req->execute();
$userData = $req->fetch();
@@ -198,8 +198,8 @@ function edit_avatar($image, $pseudo) {
$defaultDirImagePath = "./images/avatars/img_user.jpg";
$dirImagePath = "./images/avatars/" . $pseudo . "/img_user.jpg";
$imagePath = "/images/avatars/" . $pseudo . "/img_user.jpg";
$newWidth = 300;
$newHeight = 300;
$newWidth = 100;
$newHeight = 100;
list($width, $height) = getimagesize($image['tmp_name']);
$imageResized = imagecreatetruecolor($newWidth, $newHeight);

Binary file not shown.

View File

@@ -1,4 +1,5 @@
<?php
require_once 'config/connexion_sql.php';
verifierAcces(INSCRIT);
require_once 'controleur/profil.php';
?>

View File

@@ -1,5 +1,20 @@
<?php include 'header.html'; ?>
<section id="content" class="page-content text-center py-3">
<div class="row justify-content-center py-3">
<div class="col-lg-9">
<div class="card">
<div class="card-header">
<h3>A propos de Caria</h3>
</div>
<div class="card-body">
<p>Votre plateforme de référence pour la réservation de véhicules entièrement autonomes.<br>
En quelques clics, réservez un véhicule autonome adapté à vos besoins.<br>
Profitez d'une expérience de mobilité moderne et sans stress grâce à nos technologies avancées de conduite autonome.<br>
Connectez-vous dès maintenant pour explorer toutes les fonctionnalités et services exclusifs réservés à nos utilisateurs.</p>
</div>
</div>
</div>
</div>
<div class="row justify-content-center py-3">
<div class="col-lg-5">
<div class="card">
@@ -31,7 +46,7 @@
<div class="col">
<div class="card">
<div class="card-header">
<h3>Véhicule actuellement en circulation</h3>
<h3>Véhicules actuellement en circulation</h3>
</div>
<div class="card-body">
<div id="map"></div>

View File

@@ -45,7 +45,7 @@
</div>
</fieldset>
<fieldset>
<legend>Informations personnelles</legend>
<legend>Informations personnelles <?php echo stripslashes(getPrivilegeText($userData['privilege'])); ?></legend>
<div class="mb-3 row">
<label for="pseudo" class="col-sm-4 col-form-label">Pseudo</label>
<div class="col-sm-8">

View File

@@ -28,9 +28,11 @@
<li class="nav-item px-5">
<a class="nav-link" href="./index.php">Accueil</a>
</li>
<li class="nav-item px-5">
<a class="nav-link" href="gestion.php">Gestion</a>
</li>
<?php if($_SESSION['privilege_session'] == 4) { ?>
<li class="nav-item px-5">
<a class="nav-link" href="gestion.php">Gestion</a>
</li>
<?php } ?>
<li class="nav-item px-5">
<a class="nav-link" href="./profil.php?action=modifier">Modifier mes informations</a>
</li>

View File

@@ -1,10 +1,26 @@
<?php include 'header.html'; ?>
<section id="content" class="page-content text-center py-3">
<div class="row justify-content-center py-3">
<div class="col lg-9">
<div class="card">
<div class="card-header">
<h3>A propos de Caria</h3>
</div>
<div class="card-body">
<p>Votre plateforme innovante pour la réservation de véhicules entièrement autonomes.<br>
Vous avez accès à une interface personnalisée qui vous permet de réserver facilement un véhicule autonome en quelques clics.<br>
Profitez d'une expérience de mobilité avancée, où sécurité, confort et efficacité sont au cœur de notre service.<br>
Explorez les fonctionnalités exclusives, suivez vos réservations en temps réel, et bénéficiez d'un support client dédié.<br>
Merci de nous faire confiance pour vos besoins en mobilité autonome.</p>
</div>
</div>
</div>
</div>
<div class="row py-3">
<div class="col">
<div class="card">
<div class="card-header">
<h3>Véhicule actuellement en circulation</h3>
<h3>Véhicules actuellement en circulation</h3>
</div>
<div class="card-body">
<div id="map"></div>
@@ -16,7 +32,7 @@
<div class="col">
<div class="card">
<div class="card-header">
<h3>Réservation instantané d'un véhicule</h3>
<h3>Réservation instantanée d'un véhicule</h3>
</div>
<div class="card-body">
<form id="eventMyForm">