Probleme de connexion ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de connexion ...

Re: Probleme de connexion ...

par two3d » 04 mars 2024, 16:33

Comme le dit "or 1", header() ne doit jamais être utilisé après du code HTML.

Mets ton code PHP tout en haut, enregistre tes retour dans une variable pour les afficher plus loin dans la page.

Re: Probleme de connexion ...

par remy2906 » 03 mars 2024, 19:32

Meme en ajoutant, ca ne fonctionne pas :(

Re: Probleme de connexion ...

par or 1 » 03 mars 2024, 19:17

https://www.php.net/manual/fr/function.header.php
"N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP."

Probleme de connexion ...

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