Comment sa marche un forum

badboys54 -  
 badboys54 -
Bonjour,
pouver vous m'espliquer svp comment sa marche un forum comme celui si . je suis en train d'en crée un et il ne marche pas .
j'ai deja poser la question mais on ne ma pas repondu
merci
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. haardom Messages postés 95 Statut Membre 20
     
    s'est asses compliquer je te consiel de lire ce tuto sa tedera a comprendre (au moin le 1er chapitre qui est l'explication de base)

    http://www.siteduzero.com/tutoriel-3-10017-creer-son-forum-de-toutes-pieces.html
    0
  2. badboys54
     
    mer j'ai lu et j'en suis presque a la fin et maitenant j'ai un asser gros probleme c'est que j'ai une erreur et je ne la trouve pas
    merci de m'aider . c urgent je galere depuis pas mal de temps
    mon code
    <?php
    //Cette fonction doit être appelée avant tout code html
    session_start();
    
    //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
    $titre = "Poster";
    include("includes/debut.php");
    ?>
    <body>
    <div id="banniere"></div>
    <div id="corps_forum">
    
    <?php
    //Maintenant, on se connecte à la base de données
    include("includes/identifiants.php");
    mysql_connect($adresse, $nom, $motdepasse);
    mysql_select_db($database);
    //On récupère la valeur de la variable action
    $action = htmlspecialchars($_GET['action']);
    
    // Si le membre n'est pas connecté, il est arivé ici par erreur
    if (!isset($_SESSION['pseudo']))
    {
    echo'<p>Erreur : Vous n êtes plus connecté</p>';
    }
    else //Sinon on lance la suite
    {
    ?>
    <?php
    switch($action)
    {
    //Premier cas : nouveau topic
    case "nouveautopic":
    //On passe le message dans une série de fonction
    $message = mysql_real_escape_string($_POST['message']);
    $mess = mysql_real_escape_string($_POST['mess']);
    
    //Pareil pour le titre
    $titre = mysql_real_escape_string($_POST['titre']);
    
    //ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable f
    $forum = (int) $_GET['f'];
    $temps = time();
    
    if (empty($message) || empty($titre))
    {
    echo'<p>Votre message ou votre titre est vide, cliquez <a href="./poster.php?action=nouveautopic&amp;f='.$forum.'">ici</a> pour recommencer</p>';
    }
    else //Si jamais le message n'est pas vide
    {
    ?>
    <?php
    //On entre le topic dans la base de donnée en laissant
    //le champ topic_last_post à 0
    mysql_query("INSERT INTO forum_topic
    (forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre, topic_last_post, topic_post)
    VALUES('".$forum."', '".$titre."', '".intval($_SESSION['id'])."', '1', '".$temps."','".$mess."', '0', '0'  )")
    or die ("Un problème est survenu lors de l'envoi du message");
    
    $nouveautopic = mysql_insert_id();
    
    //Puis on entre le message
    mysql_query("INSERT INTO forum_post
    (post_id, post_createur, post_texte, post_time, topic_id, post_forum_id)
    VALUES(',' ,'".intval($_SESSION['id'])."', '".$message."', '".$temps."', '".$nouveautopic."', '".$forum."')")
    or die ("Un problème est survenu lors de l'envoi du message");
    
    $nouveaupost = mysql_insert_id();
    
    //Ici on update comme prévu la valeur de topic_last_post et de topic_first_post
    mysql_query("UPDATE forum_topic
    SET topic_last_post = '".$nouveaupost."',
    topic_first_post = '".$nouveaupost."'
    WHERE topic_id = '".$nouveautopic."'")
    or die ("Un problème est survenu lors de l'envoi du message");
    
    
    //Enfin on met à jour les tables forum_forum et forum_membres
    mysql_query("UPDATE forum_forum
    SET forum_post = forum_post + 1 ,
    forum_topic = forum_topic + 1,
    forum_last_post_id = '".$nouveaupost."'
    WHERE forum_id = '".$forum."'")
    or die ("Un problème est survenu lors de l'envoi du message");
    
    mysql_query("UPDATE forum_membres
    SET membre_post = membre_post + 1
    WHERE membre_id = '".intval($_SESSION['id'])."'")
    or die ("Un problème est survenu lors de l'envoi du message");
    
    //Et un petit message
    echo'<p>Votre message a bien été ajouté!<br /><br />Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />Cliquez <a href="./voirtopic.php?t='.$nouveautopic.'">ici</a> pour le voir</p>';
    }
    break; //Houra !
    ?>
    <?
    //Deuxième cas : répondre
    case "repondre":
    //On passe le message dans une série de fonction
    $message = mysql_real_escape_string($_POST['message']);
    
    
    //ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable t
    $topic = (int) $_GET['t'];
    $temps = time();
    
    if (empty($message))
    {
    echo'<p>Votre message est vide, cliquez <a href="./poster.php?action=repondre&amp;t='.$topic.'">ici</a> pour recommencer</p>';
    }
    else //Sinon, si le message n'est pas vide
    {
    
    //On récupère l'id du forum
    $requete2 = mysql_query('SELECT forum_id, topic_post
    FROM forum_topic
    WHERE topic_id = "'.$topic.'"');
    
    $data2= mysql_fetch_assoc($requete2) or die ("Une erreur semble être survenue lors de l'envoi du message");
    $forum = $data2['forum_id'];
    
    //Puis on entre le message
    mysql_query("INSERT INTO forum_post
    (post_id, post_createur, post_texte, post_time, topic_id, post_forum_id)
    VALUES(',' ,'".intval($_SESSION['id'])."', '".$message."', '".$temps."', '".$topic."', '".$forum."')")
    or die ("Une erreur semble avoir survenu lors de l'envoi du message");
    
    $nouveaupost = mysql_insert_id();
    
    //On change un peu la table forum_topic
    mysql_query("UPDATE forum_topic
    SET topic_post = topic_post + 1,
    topic_last_post = '".$nouveaupost."'
    WHERE topic_id ='".$topic."'")
    or die ("Une erreur semble avoir survenu lors de l'envoi du message");
    
    //Puis même combat sur les 2 autres tables
    mysql_query("UPDATE forum_forum
    SET forum_post = forum_post + 1 ,
    forum_last_post_id = '".$nouveaupost."'
    WHERE forum_id = '".$forum."'")
    or die ("Une erreur semble avoir survenu lors de l'envoi du message");
    
    mysql_query("UPDATE forum_membres
    SET membre_post = membre_post + 1
    WHERE membre_id = '".intval($_SESSION['id'])."'")
    or die ("Une erreur semble avoir survenu lors de l'envoi du message");
    
    //Et un petit message
    $nombreDeMessagesParPage = 15;
    $nbr_post = $data2['topic_post']+1;
    $page = ceil($nbr_post / $nombreDeMessagesParPage);
    echo'<p>Votre message a bien été ajouté!<br /><br />
    Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
    Cliquez <a href="./voirtopic.php?t='.$topic.'&amp;page='.$page.'#p_'.$nouveaupost.'">ici</a> pour le voir</p>';
    }
    break;
    ?>
    <?
    default;
    echo'<p>Cette action est impossible</p>';
    } //Fin du Switch
    } //Fin du else, le membre est connecté
    mysql_close();
    ?>
    </div>
    </body>
    </html>
    
    0
  3. chupa23 Messages postés 152 Statut Membre 28
     
    Envoi encore plus de code , sans aucune explication , ça pourra que nous aider!
    Explique ce qui se passe , pas le courage de lire 95lignes de php.
    0
  4. badboys54
     
    vous avez raison j'aurait du vous expliquer . voila j'ai un probleme avec cette ligne
    merci
    case "lock":
    
    0