TitouanPrs
Messages postés47Date d'inscriptiondimanche 30 juillet 2017StatutMembreDernière intervention27 juin 2019
-
Modifié le 11 juil. 2018 à 13:04
jordane45
Messages postés38430Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention20 février 2025
-
11 juil. 2018 à 14:26
Bonjour,
Je suis actuellement entrain de concevoir un site web avec un espace membre à l'aide de PHP et MySQL.
J'ai réussi à réaliser :
- L'inscription des utilisateurs au site,
- L'envoi de mail pour confirmer leur inscription : lorsque les utilisateurs cliquent sur le lien envoyé par mail, il sont redirigés vers leur espace membre. Le "header" change alors pour afficher un bouton Déconnexion au lieu du formulaire de connexion.
- La connexion des utilisateurs au site. Mais lorsque les utilisateurs se connectent au site, le "header" ne se change pas. Je souhaiterez donc qu'il se modifie afin qu'il affiche un bouton Déconnexion à la place du formulaire de connexion.
if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])) { $errors['username'] = "Le pseudonyme que vous avez indiqué n'est pas valide."; } else { $req = $pdo->prepare('SELECT id FROM users WHERE username = ?'); $req->execute([$_POST['username']]); $user = $req->fetch(); if($user) { $errors['username'] = "Ce pseudo est déjà utilisé."; } }
if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errors['email'] = "L'email que vous avez indiqué n'est pas valide."; } else { $req = $pdo->prepare('SELECT id FROM users WHERE email = ?'); $req->execute([$_POST['email']]); $user = $req->fetch(); if($user) { $errors['email'] = "Cet email est déjà utilisé."; } }
if(empty($_POST['password']) || $_POST['password'] == $_POST['username']) { $errors['password'] = "Le mot de passe que vous avez indiqué n'est pas valide."; }
if(empty($errors)) { $req = $pdo->prepare('INSERT INTO users SET username = ?, email = ?, password = ?, confirmation_token = ?'); $password = password_hash($_POST['password'], PASSWORD_BCRYPT); $token = str_random(60); $req->execute([$_POST['username'], $_POST['email'], $password, $token]); $user_id = $pdo->lastInsertId(); mail($_POST['email'], "Confirmation de votre compte Burger Quiz", "Afin de valider votre compte, veuillez cliquez sur le lien suivant :\n\nhttp://localhost/Tutoriel_Grafikart/confirm.php?id=$user_id&token=$token"); $_SESSION['flash']['success'] = "Un email de confirmation vous a été envoyé afin de valider votre compte."; header('Location: index.php'); exit(); }
jordane45
Messages postés38430Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention20 février 20254 735 11 juil. 2018 à 14:26
Bonjour
Lorsque les utilisateurs se connectent au site, le "header" ne se change pas. Je souhaiterez donc qu'il se modifie afin qu'il affiche un bouton Déconnexion à la place du formulaire de connexion.
As tu vérifié si ta variable de session contenait bien quelque chose ,
print_r($_SESSION);
NB: A l'avenir, lorsque tu postes du code, merci d'y préciser le LANGAGE afin d'avoir la coloration syntaxique et l'indentation.