par
remy2906 » 03 mars 2024, 19:05
Hello,
J'ai créé une page de connexion, mais quand je clique sur la page, ca ne va pas vers ma page "Profil"
Avez vous une idée ?
Page de connexion :
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page de connexion</title>
<link href="boostrap">
<style>
body {
background-color: #f8f9fa;
}
.login-container {
max-width: 400px;
margin: 0 auto;
padding: 40px;
background-color: #fff;
border-radius: 5px;
margin-top: 50px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6 offset-md-3">
<div class="login-container">
<h3 class="mb-4">Connexion</h3>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
<div class="mb-3">
<label for="email" class="form-label">Adresse Email</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Mot de passe</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Se connecter</button>
</form>
<?php
// Démarrer la session
session_start();
// Connexion à la base de données
$host = "localhost"; // Adresse du serveur MySQL
$username = "$$$"; // Nom d'utilisateur MySQL
$password = "$$$"; // Mot de passe MySQL
$database = "$$$"; // Nom de la base de données
try {
$connexion = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("La connexion a échoué : " . $e->getMessage());
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST["email"];
$password = $_POST["password"];
// Utilisation de requête préparée pour éviter les injections SQL
$requete = "SELECT * FROM users WHERE email = :email";
$stmt = $connexion->prepare($requete);
$stmt->bindParam(':email', $email);
try {
$stmt->execute();
$utilisateur = $stmt->fetch(PDO::FETCH_ASSOC);
if ($utilisateur) {
if (password_verify($password, $utilisateur["password"])) {
// Mettre à jour le champ is_loggedin dans la base de données à 1
$updateStmt = $connexion->prepare("UPDATE users SET is_loggedin = 1 WHERE email = :email");
$updateStmt->bindParam(':email', $email);
$updateStmt->execute();
// Définir la variable de session indiquant que l'utilisateur est connecté
$_SESSION['loggedin'] = true;
// Rediriger l'utilisateur vers la page de profil
header("Location: profil.php");
exit;
} else {
echo "<div class='alert alert-danger mt-3'>Mot de passe incorrect</div>";
}
} else {
echo "<div class='alert alert-danger mt-3'>Adresse email incorrecte</div>";
}
} catch(PDOException $e) {
die("Erreur lors de l'exécution de la requête : " . $e->getMessage());
}
}
$connexion = null;
?>
</div>
</div>
</div>
</div>
</body>
</html>
Page profil :
Code : Tout sélectionner
<?php
// Démarrer la session
session_start();
// Vérifier la connexion dans la base de données
$dsn = 'mysql:host=localhost;dbname=$$$;charset=utf8';
$user = '$$$';
$password = '$$$';
try {
// Créer une instance PDO
$db = new PDO($dsn, $user, $password);
// Définir le mode d'erreur de PDO sur Exception
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
// En cas d'erreur de connexion, afficher l'erreur
echo 'Connexion échouée : ' . $e->getMessage();
}
// Inclure le menu
include 'include/menu.php';
// Vérifier si l'utilisateur est connecté
if (isset($_SESSION['user_id'])) {
// Récupérer les informations de l'utilisateur en utilisant une requête préparée pour éviter les injections SQL
$query = $db->prepare("SELECT * FROM users WHERE id = ?");
$query->execute([$_SESSION['user_id']]);
$user = $query->fetch(PDO::FETCH_ASSOC);
} else {
// Rediriger l'utilisateur vers la page de connexion s'il n'est pas connecté
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Profil</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdncom/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h2>Profil de <?php echo htmlspecialchars($user['prenom']) . ' ' . htmlspecialchars($user['nom']); ?></h2>
<form action="traitement_modification.php" method="post">
<div class="form-group">
<label for="nom">Nom :</label>
<input type="text" class="form-control" id="nom" name="nom" value="<?php echo htmlspecialchars($user['nom']); ?>" required>
</div>
<div class="form-group">
<label for="prenom">Prénom :</label>
<input type="text" class="form-control" id="prenom" name="prenom" value="<?php echo htmlspecialchars($user['prenom']); ?>" required>
</div>
<div class="form-group">
<label for="email">Email :</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($user['email']); ?>" required>
</div>
<div class="form-group">
<label for="telephone">Numéro de téléphone :</label>
<input type="tel" class="form-control" id="telephone" name="telephone" value="<?php echo htmlspecialchars($user['telephone']); ?>" required>
</div>
<div class="form-group">
<label for="sexe">Sexe :</label>
<select class="form-control" id="sexe" name="sexe" required>
<option value="homme" <?php if ($user['sexe'] == 'homme') echo 'selected'; ?>>Homme</option>
<option value="femme" <?php if ($user['sexe'] == 'femme') echo 'selected'; ?>>Femme</option>
<option value="autre" <?php if ($user['sexe'] == 'autre') echo 'selected'; ?>>Autre</option>
</select>
</div>
<div class="form-group">
<label for="date_naissance">Date de naissance :</label>
<input type="date" class="form-control" id="date_naissance" name="date_naissance" value="<?php echo htmlspecialchars($user['date_naissance']); ?>" required>
</div>
<button type="submit" class="btn btn-primary">Enregistrer les modifications</button>
</form>
</div>
<script src=" ootstrap></script>
</body>
</html>
Merci d'avance pour votre aide
Hello,
J'ai créé une page de connexion, mais quand je clique sur la page, ca ne va pas vers ma page "Profil" :(
Avez vous une idée ?
Page de connexion : [code]<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page de connexion</title>
<link href="boostrap">
<style>
body {
background-color: #f8f9fa;
}
.login-container {
max-width: 400px;
margin: 0 auto;
padding: 40px;
background-color: #fff;
border-radius: 5px;
margin-top: 50px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6 offset-md-3">
<div class="login-container">
<h3 class="mb-4">Connexion</h3>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
<div class="mb-3">
<label for="email" class="form-label">Adresse Email</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Mot de passe</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Se connecter</button>
</form>
<?php
// Démarrer la session
session_start();
// Connexion à la base de données
$host = "localhost"; // Adresse du serveur MySQL
$username = "$$$"; // Nom d'utilisateur MySQL
$password = "$$$"; // Mot de passe MySQL
$database = "$$$"; // Nom de la base de données
try {
$connexion = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("La connexion a échoué : " . $e->getMessage());
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST["email"];
$password = $_POST["password"];
// Utilisation de requête préparée pour éviter les injections SQL
$requete = "SELECT * FROM users WHERE email = :email";
$stmt = $connexion->prepare($requete);
$stmt->bindParam(':email', $email);
try {
$stmt->execute();
$utilisateur = $stmt->fetch(PDO::FETCH_ASSOC);
if ($utilisateur) {
if (password_verify($password, $utilisateur["password"])) {
// Mettre à jour le champ is_loggedin dans la base de données à 1
$updateStmt = $connexion->prepare("UPDATE users SET is_loggedin = 1 WHERE email = :email");
$updateStmt->bindParam(':email', $email);
$updateStmt->execute();
// Définir la variable de session indiquant que l'utilisateur est connecté
$_SESSION['loggedin'] = true;
// Rediriger l'utilisateur vers la page de profil
header("Location: profil.php");
exit;
} else {
echo "<div class='alert alert-danger mt-3'>Mot de passe incorrect</div>";
}
} else {
echo "<div class='alert alert-danger mt-3'>Adresse email incorrecte</div>";
}
} catch(PDOException $e) {
die("Erreur lors de l'exécution de la requête : " . $e->getMessage());
}
}
$connexion = null;
?>
</div>
</div>
</div>
</div>
</body>
</html>
[/code]
Page profil :
[code]<?php
// Démarrer la session
session_start();
// Vérifier la connexion dans la base de données
$dsn = 'mysql:host=localhost;dbname=$$$;charset=utf8';
$user = '$$$';
$password = '$$$';
try {
// Créer une instance PDO
$db = new PDO($dsn, $user, $password);
// Définir le mode d'erreur de PDO sur Exception
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
// En cas d'erreur de connexion, afficher l'erreur
echo 'Connexion échouée : ' . $e->getMessage();
}
// Inclure le menu
include 'include/menu.php';
// Vérifier si l'utilisateur est connecté
if (isset($_SESSION['user_id'])) {
// Récupérer les informations de l'utilisateur en utilisant une requête préparée pour éviter les injections SQL
$query = $db->prepare("SELECT * FROM users WHERE id = ?");
$query->execute([$_SESSION['user_id']]);
$user = $query->fetch(PDO::FETCH_ASSOC);
} else {
// Rediriger l'utilisateur vers la page de connexion s'il n'est pas connecté
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Profil</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdncom/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h2>Profil de <?php echo htmlspecialchars($user['prenom']) . ' ' . htmlspecialchars($user['nom']); ?></h2>
<form action="traitement_modification.php" method="post">
<div class="form-group">
<label for="nom">Nom :</label>
<input type="text" class="form-control" id="nom" name="nom" value="<?php echo htmlspecialchars($user['nom']); ?>" required>
</div>
<div class="form-group">
<label for="prenom">Prénom :</label>
<input type="text" class="form-control" id="prenom" name="prenom" value="<?php echo htmlspecialchars($user['prenom']); ?>" required>
</div>
<div class="form-group">
<label for="email">Email :</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($user['email']); ?>" required>
</div>
<div class="form-group">
<label for="telephone">Numéro de téléphone :</label>
<input type="tel" class="form-control" id="telephone" name="telephone" value="<?php echo htmlspecialchars($user['telephone']); ?>" required>
</div>
<div class="form-group">
<label for="sexe">Sexe :</label>
<select class="form-control" id="sexe" name="sexe" required>
<option value="homme" <?php if ($user['sexe'] == 'homme') echo 'selected'; ?>>Homme</option>
<option value="femme" <?php if ($user['sexe'] == 'femme') echo 'selected'; ?>>Femme</option>
<option value="autre" <?php if ($user['sexe'] == 'autre') echo 'selected'; ?>>Autre</option>
</select>
</div>
<div class="form-group">
<label for="date_naissance">Date de naissance :</label>
<input type="date" class="form-control" id="date_naissance" name="date_naissance" value="<?php echo htmlspecialchars($user['date_naissance']); ?>" required>
</div>
<button type="submit" class="btn btn-primary">Enregistrer les modifications</button>
</form>
</div>
<script src=" ootstrap></script>
</body>
</html>
[/code]
Merci d'avance pour votre aide