Comment sa marche un forum

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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>
      
      1. 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.
        1. vous avez raison j'aurait du vous expliquer . voila j'ai un probleme avec cette ligne
          merci
          case "lock":