Bonjour,
voila je fais un script d'espace membre communautaire, messagerie privé, consultation de profils d'autres membres etc.. et j'ai une page (profils.php) qui permet au membre connecté de consulter le profil d'un autre membre, cette page fonctionne bien (je n'ai aucune erreur et aucun bug) mais j'aimerai savoir si une optimisation est possible et surtout si j'utilise bien la syntaxe qu'il faut etc..
En effet, je n'ai pas une longue expérience en php/mysql mais je me débrouille. au fait, j'aimerai une "relecture" de mon code pour mon apprentissage. Je ne sais pas si c'est possible ? ou bien au moins de la page profils.php, je met cette page ici si vous êtes d'accord pour me donner vos suggestion
Je vous remercie pour votre relecture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 <?php require 'inc/functions.php'; logged_only(); // controle si le membre est connecté // formate la variable au cas ou.. $idmbr = (int) $_GET['idmbr']; // Connexion à la base de données require_once 'inc/db.php'; $user_id = $_SESSION['auth']->id; // Récupération du profil et contrôle si le membre existe bien. $req = $pdo->prepare('SELECT id, nom, prenom, date_naissance, confirmed_at FROM users WHERE id = :idmbr AND confirmed_at IS NOT NULL'); $req->execute(['idmbr' => $idmbr]); $donnees = $req->fetch(); // Si le membre ($idmbr) n'existe pas alors je redirige le membre vers une autre page avec un message d'erreur. if($donnees == FALSE){ $_SESSION['flash']['danger'] = "Ce membre n'existe pas ou n'a pas encore validé son compte"; header('Location: account.php'); exit(); } // Bloquer un membre // Je pense que c'est inutile de faire une requête préparée ici, car je contrôle déjà les deux variables nécessaires plus haut. if (isset($_GET["blocage"]) && $_GET["blocage"] == "oui"){ $pdo->exec('INSERT INTO blocage_users (idmbr, idmbr_blocage, date_blocage) VALUES('.$user_id.', '.$idmbr.', NOW())'); $_SESSION['flash']['success'] = 'Le membre vient d\'être bloqué. Il ne peut plus vous envoyez de messages.'; } // déblocage if (isset($_GET["blocage"]) && $_GET["blocage"] == "non"){ $pdo->exec('DELETE FROM blocage_users WHERE idmbr='.$user_id.' AND idmbr_blocage='.$idmbr.''); $_SESSION['flash']['success'] = 'Le membre vient d\'être débloqué. Il peut à nouveau vous envoyez des messages.'; } // Vérifie si le membre a déjà été bloqué pour afficher le lien qui correspond. $reponse = $pdo->query('SELECT * FROM blocage_users WHERE idmbr='.$user_id.' AND idmbr_blocage='.$idmbr.''); $donnees_exist = $reponse->fetch(); // Si le membre n'a pas été bloqué alors j'affiche un lien pour le bloquer sinon un lien pour le débloquer. if($donnees_exist == FALSE){ $lien_blocage = "<a href=\"profils.php?idmbr=$idmbr&blocage=oui\">Bloquer ce membre</a>"; }else{ $lien_blocage = "<a href=\"profils.php?idmbr=$idmbr&blocage=non\">Débloquer ce membre</a>"; } ?> <?php require 'inc/header.php'; ?> <h1>Profil de <?php echo htmlspecialchars($donnees->prenom); ?> <?php echo htmlspecialchars($donnees->nom{0}); ?></h1> <?php echo $lien_blocage ?> <?php $req->closeCursor(); // on libère le curseur pour la prochaine requête ?> <?php require 'inc/footer.php'; ?>








Répondre avec citation
Partager