Bonjour,

Je suis en train de faire un forum pour ma formation, mon forum fonctionne bien mais j'ai besoin de vos avis sur mon code, propreté, code commenté correctement, syntaxe.. etc (bien-sur je n'utilise pas le MVC ni de POO juste du php basic pour le moment..)

(Je compte distribuer mon forum en libre téléchargement dans quelques jours)

Je mets uniquement une page pour le moment, histoire d'avoir vos avis progressivement :
Note : Je suis conscient que vous n'avez pas le reste des pages pour le moment, ni la structure des tables mais je ne demande pas un jugement poussé, simplement savoir si mon code est lisible par le plus grand nombre.

voici la page de création de topic, nouveau.php

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
63
64
65
66
67
68
69
<?php
require '../../inc/functions.php';
logged_only();
require_once '../../inc/db.php';
 
$idsalon = (int) $_GET['idsalon'];
 
if(!empty($_POST)){
 
    if(empty($_POST['sujet'])){
        $_SESSION['flash']['danger'] = 'Veuillez renseigner un sujet';
    }
 
    if(empty($_POST['message'])){
        $_SESSION['flash']['danger'] = 'Votre message est trop court';
    }
 
    if(!isset($_SESSION['flash'])){
        // On enregistre le sujet dans la table forum_sujets
        $req = $pdo->prepare("INSERT INTO forum_sujets SET sujet = ?, idsalon = ?, idmbr = ?, idmbr_dernier = ?, derniermsg = NOW(), etat = 1");
        $sujet = htmlspecialchars($_POST['sujet']);
        $user_id = $_SESSION['auth']->id;
        $req->execute([$sujet, $idsalon, $user_id, $user_id]);
        $idsujet = $pdo->lastInsertId();
        $req->closeCursor(); // On libère le curseur pour la prochaine requête
 
        // On enregistre le message dans la table forum_messages
        $req = $pdo->prepare("INSERT INTO forum_messages SET idsujet = ?, message = ?, idmbr = ?, dateheure = NOW()");
        $message = trim(htmlspecialchars(stripslashes($_POST['message'])));
        $req->execute([$idsujet, $message, $user_id]);
        $req->closeCursor(); // On libère le curseur pour la prochaine requête
 
        // table forum_profils
        $req = $pdo->query('SELECT * FROM forum_profils WHERE idmbr = '.$user_id.'');
        $user = $req->fetch();
 
        // On vérifie si le membre a déjà posté un message sur le forum pour pouvoir choisir entre update ou insert
        if($user){
            // Si un enregistrement a ete trouvé alors on update le nombre de messages postés par le membre
            $nbmsg_new = ++$user->nbmsg; // on ajoute 1 au nombre de messages postés
            $pdo->exec('UPDATE forum_profils SET nbmsg = '.$nbmsg_new.' WHERE idmbr = '.$user_id.'');
        }else{
            // Si c'est le premier message du membre alors on utilise insert
            $pdo->exec('INSERT INTO forum_profils (idmbr, nbmsg) VALUES('.$user_id.', 1)');
        }
 
        $_SESSION['flash']['success'] = 'Votre message a bien été envoyé';
        header('Location: sujet.php?idsujet='.$idsujet.'');
        exit();
    }
}
 
require '../../inc/header.php';
?>
    <h1>Nouveau sujet</h1>
 
    <form action="" method="POST">
        <div class="form-group">
            <label for="sujet">Sujet</label>
            <input type="text" name="sujet" class="form-control" id="sujet" placeholder="Mon sujet...">
        </div>
        <div class="form-group">
            <label for="message">Votre message</label>
            <textarea name="message" class="form-control" id="message" rows="6"></textarea>
        </div>
        <button type="submit" class="btn btn-primary">Envoyer</button>
    </form>
 
<?php require '../../inc/footer.php'; ?>
MERCI a vous