IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création de forum :contenu du message et footer ne s'affichent pas


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Création de forum :contenu du message et footer ne s'affichent pas
    Bonjour,

    je suis le tuto "créer son forum de toutes pièces" et sur la page voirtopic.php le contenu du message ne s'affiche pas alors que toutes les autres info s'affichent correctement (auteur, titre du topic etc) (lignes 83 à 113)
    Le footer ne s'affiche pas non plus, sûrement pour la même raison j'imagine.. (lignes 182 à 196)

    Quelqu'un a t'il une idée du probleme? Merci merci d'avance!!

    voici mon code :

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    session_start();
    $titre="Voir un sujet";
    include("includes/identifiants.php");
    include("includes/debut.php");
    include("../headerWTC.php");
    include("../inc.forum_menu.php");
    include("includes/bbcode.php"); //On verra plus tard ce qu'est ce fichier
     
    //On récupère la valeur de t
    $topic = (int) $_GET['t'];
     
    //A partir d'ici, on va compter le nombre de messages pour n'afficher que les 15 premiers
    $query=$db->prepare('SELECT topic_titre, topic_post, forum_topic.forum_id, topic_last_post,
    forum_name, auth_view, auth_topic, auth_post 
    FROM forum_topic 
    LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id 
    WHERE topic_id = :topic');
    $query->bindValue(':topic',$topic,PDO:: PARAM_INT);
    $query->execute();
    $data=$query->fetch();
     
    if (!verif_auth($data['auth_view']))
    {
        erreur(ERR_AUTH_VIEW);
    }
     
     
    $forum=$data['forum_id']; 
    $totalDesMessages = $data['topic_post'] + 1;
    $nombreDeMessagesParPage = 15;
    $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
    ?>
    <?php
    echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> 
    <a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
     --> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>';
    echo '<h1>'.stripslashes(htmlspecialchars($data['topic_titre'])).'</h1><br /><br />';
    ?>
    <?php
    //Nombre de pages
    $page = (isset($_GET['page']))?intval($_GET['page']):1;
     
    //On affiche les pages 1-2-3 etc...
    echo '<p>Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        if ($i == $page) //On affiche pas la page actuelle en lien
        {
        echo $i;
        }
        else
        {
        echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'">
        ' . $i . '</a> ';
        }
    }
    echo'</p>';
     
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
     
    if (verif_auth($data['auth_post']))
    {
    //On affiche l'image répondre
    echo'<a href="./poster.php?action=repondre&amp;t='.$topic.'">
    <img src="./images/repondre.gif" alt="Répondre" title="Répondre à ce topic"></a>';
    }
     
    if (verif_auth($data['auth_topic']))
    {
    //On affiche l'image nouveau topic
    echo'<a href="./poster.php?action=nouveautopic&amp;f='.$data['forum_id'].'">
    <img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic"></a>';
    }
     
     
    $query->CloseCursor(); 
    //Enfin on commence la boucle !
    ?>
    <?php
    $query=$db->prepare('SELECT post_id, post_createur, post_texte, post_time,
    membre_id, membre_pseudo, membre_inscrit, membre_avatar, membre_localisation, membre_post, membre_signature
    FROM forum_post
    LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur
    WHERE topic_id =:topic
    ORDER BY post_id
    LIMIT : Premier, :nombre');
    $query->bindValue(':topic',$topic,PDO: : PARAM_INT);
    $query->bindValue(':premier',(int) $premierMessageAafficher,PDO:: PARAM_INT);
    $query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO:: PARAM_INT);
    $query->execute();
     
    //On vérifie que la requête a bien retourné des messages
    if ($query->rowCount()<1)
    {
            echo'<p>Il n y a aucun post sur ce topic, vérifiez l url et reessayez</p>';
    }
    else
    {
            //Si tout roule on affiche notre tableau puis on remplit avec une boucle
            ?><table>
            <tr>
            <th class="vt_auteur"><strong>Auteurs</strong></th>             
            <th class="vt_mess"><strong>Messages</strong></th>       
            </tr>
            <?php
            while ($data = $query->fetch())
            {
    ?>
    <?php
    //On commence à afficher le pseudo du créateur du message :
             //On vérifie les droits du membre
             //(partie du code commentée plus tard)
             echo'<tr><td><strong>
             <a href="./voirprofil.php?m='.$data['membre_id'].'&amp;action=consulter">
             '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td>';
     
             /* Si on est l'auteur du message, on affiche des liens pour
             Modérer celui-ci.
             Les modérateurs pourront aussi le faire, il faudra donc revenir sur
             ce code un peu plus tard ! */     
     
             if ($id == $data['post_createur'])
             {
             echo'<td id=p_'.$data['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data['post_time']).'
             <a href="./poster.php?p='.$data['post_id'].'&amp;action=delete">
             <img src="./images/supprimer.gif" alt="Supprimer"
             title="Supprimer ce message" /></a>   
             <a href="./poster.php?p='.$data['post_id'].'&amp;action=edit">
             <img src="./images/editer.gif" alt="Editer"
             title="Editer ce message" /></a></td></tr>';
             }
             else
             {
             echo'<td>
             Posté à '.date('H\hi \l\e d M y',$data['post_time']).'
             </td></tr>';
             }
     
             //Détails sur le membre qui a posté
             echo'<tr><td>
             <img src="./images/avatars/'.$data['membre_avatar'].'" alt="" />
             <br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).'
             <br />Messages : '.$data['membre_post'].'<br />
             Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</td>';
     
             //Message
             echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).'
             <br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'</td></tr>';
             } //Fin de la boucle ! \o/
             $query->CloseCursor();
     
             ?>
    </table>
    <?php
            echo '<p>Page : ';
            for ($i = 1 ; $i <= $nombreDePages ; $i++)
            {
                    if ($i == $page) //On affiche pas la page actuelle en lien
                    {
                    echo $i;
                    }
                    else
                    {
                    echo '<a href="voirtopic.php?t='.$topic.'&amp;page='.$i.'">
                    ' . $i . '</a> ';
                    }
            }
            echo'</p>';
     
            //On ajoute 1 au nombre de visites de ce topic
            $query=$db->prepare('UPDATE forum_topic
            SET topic_vu = topic_vu + 1 WHERE topic_id = :topic');
            $query->bindValue(':topic',$topic,PDO:: PARAM_INT);
            $query->execute();
            $query->CloseCursor();
     
    } //Fin du if qui vérifiait si le topic contenait au moins un message
    ?>           
    <div id="footer">
    <?php
    echo '<h2>Options de modération</h2>';
     
    $query=$db->prepare('SELECT auth_view, auth_modo, auth_post FROM forum_forum WHERE forum_id=:forum');
    $query->bindValue(':forum',$forum,PDO::PARAM_INT);
    $query->execute();
    $data=$query->fetch();
    $view = (verif_auth($data['auth_view']))? 'Vous pouvez <b>voir</b> ce topic':'Vous <i>ne</i> pouvez <i>pas</i> <b>voir</b> ce topic';
    $post = (verif_auth($data['auth_post']))? 'Vous pouvez <b>répondre</b> à ce topic':'Vous <i>ne</i> pouvez <i>pas</i> <b>répondre</b> à ce topic';
    $modo = (verif_auth($data['auth_modo']))? 'Vous pouvez <b>modérer</b> ce topic':'Vous <i>ne</i> pouvez <i>pas</i> <b>modérer</b> ce topic';
    echo '<p>'.$view.'<br />'.$post.'<br />'.$modo.'</p>';
    $query->CloseCursor();
    ?>
    </div>
    </body>
    </html>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    M'est avis que c'est cette ligne qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    code(nl2br(stripslashes(htmlspecialchars($data['post_texte']))))
    Un stripslashes sur un htmlspecialchars, ça m'a l'air moyennement une bonne idée (voire une très mauvaise idée)
    Et à quoi ressemble ta fonction code() ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Bonjour Celira,
    merci pour ta réponse.
    voici ma fonction code :

    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
    <?php
    function code($texte)
    {
    //Smileys
    $texte = str_replace(':D ', '<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" />', $texte);
    $texte = str_replace(':lol: ', '<img src="./images/smileys/lol.gif" title="lol" alt="lol" />', $texte);
    $texte = str_replace(':triste:', '<img src="./images/smileys/triste.gif" title="triste" alt="triste" />', $texte);
    $texte = str_replace(':frime:', '<img src="./images/smileys/cool.gif" title="cool" alt="cool" />', $texte);
    $texte = str_replace(':rire:', '<img src="./images/smileys/rire.gif" title="rire" alt="rire" />', $texte);
    $texte = str_replace(':s', '<img src="./images/smileys/confus.gif" title="confus" alt="confus" />', $texte);
    $texte = str_replace(':O', '<img src="./images/smileys/choc.gif" title="choc" alt="choc" />', $texte);
    $texte = str_replace(':question:', '<img src="./images/smileys/question.gif" title="?" alt="?" />', $texte);
    $texte = str_replace(':exclamation:', '<img src="./images/smileys/exclamation.gif" title="!" alt="!" />', $texte);
     
    //Mise en forme du texte
    //gras
    $texte = preg_replace('`\[g\](.+)\[/g\]`isU', '<strong>$1</strong>', $texte); 
    //italique
    $texte = preg_replace('`\[i\](.+)\[/i\]`isU', '<em>$1</em>', $texte);
    //souligné
    $texte = preg_replace('`\[s\](.+)\[/s\]`isU', '<u>$1</u>', $texte);
    //lien
    $texte = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $texte);
    //etc., etc.
    $texte = preg_replace('`\[quote auteur=([a-z0-9A-Z._-]+) \](.+)\[/quote\]`isU', '<div id="quote">Auteur : $1 </ br> $2 </div>', $texte);
     
    //On retourne la variable texte
    return $texte;
    }
     
    ?>

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    sujet résolu : le problème d'affichage venait d'une erreur toute bête : le chemin de mon include bbcode n'était pas le bon..
    Merci celira pour ton aide en tout cas!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contenu de balises <div> qui ne s'affiche pas
    Par salut22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/04/2011, 22h19
  2. Message de Chargement ne s'affiche pas si je ne mets pas d'alert
    Par Killua69 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2011, 11h28
  3. [debutant]mon message d'alerte ne s'affiche pas
    Par -Neo- dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/02/2008, 15h10
  4. [phpToPDF] Headers et footers ne s'affichent pas
    Par patrickzfr dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 23/10/2007, 13h33
  5. [MySQL] Message d'erreur ne s'affiche pas !
    Par CaLeDo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/07/2007, 01h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo