PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 11-02-2012 20:39:07

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

site avec forum intégrer

Bonsoir,
Mon problème est que quand je souhaite écrire sur mon forum, on ne peut pas voir l'auteur ni par qui...  Voici un lien vous montrant le souci ICI
La personne qui à poster est bien inscrite.
Voici le code du forum:

<?php
$member_level=(isset($_SESSION['lvl']))?$_SESSION['lvl']:0;

$requete = mysql_query('SELECT * FROM forum_cat ORDER BY place');
while($donnees = mysql_fetch_object($requete))
{
  if($member_level >= $donnees->lvl)
  {
  $_test1=$donnees;
 
  echo''
  .'<table cellspacing="0" cellpadding="0" style="width:100%;text-align:center;">'
  .'<tr>'
  .'<td colspan="4" align="center" style="'.STYLE_TITRE.'padding-top:2px;padding-bottom:2px;"><b>'.$donnees->titre.'</b></td>'
  .'</tr>'
  .'<tr>'
  .'<td style="width:45%;'.STYLE_TITRE.'">'.FORUM.'</td>'
  .'<td style="width:15%;'.STYLE_TITRE.'">'.SUJETS.'</td>'
  .'<td style="width:15%;'.STYLE_TITRE.'">'.MESSAGES.'</td>'
  .'<td style="width:25%;'.STYLE_TITRE.'">'.LAST_MESSAGE.'</td>'
  .'</tr>'
  ;
 
  $color_num=1;
  $requete2 = mysql_query('SELECT * FROM forum_scat WHERE cat_id="'.$donnees->id.'" ORDER BY place');
  while($donnees2 = mysql_fetch_object($requete2))
  {
    $cocolor=($color_num == 1)?$_color[3]:$_color[4];
    if($member_level >= $donnees2->lvl)
    {
    $_test2=$donnees2;
    $scat_id=$donnees2->id;
     
    $requete3 = mysql_query('SELECT COUNT(*) AS nb_entree FROM forum_topic WHERE scat_id="'.$scat_id.'"');
    $nb_entree = mysql_fetch_array($requete3);
    $nb_topic = $nb_entree['nb_entree'];
   
    $requete4 = mysql_query('SELECT COUNT(*) AS nb_entree FROM forum_messages WHERE scat_id="'.$scat_id.'"');
    $nb_entree2 = mysql_fetch_array($requete4);
    $nb_messages = $nb_entree2['nb_entree'];
     
    if($nb_messages  > 0)
    {
   
    $requete5 = mysql_query('SELECT * FROM forum_messages WHERE scat_id="'.$scat_id.'" ORDER BY date DESC LIMIT 1');
    $donnees5 = mysql_fetch_object($requete5);
   
    $date1 = date('d/m/Y' ,$donnees5->date);
    $date2 = date('d/m/Y' ,time());
     
    if($date1 == $date2)
    {
      $auteur=$donnees5->auteur;
      $date = TODAY.' '.A.' '.date('H\:i' ,$donnees5->date);
      $dernier_message = PAR.' <b>'.$auteur.'</b><br /><i>'. $date.'</i>';
    }
    else
    {
      $auteur=$donnees5->auteur;
      $date = LE.' : '.date('d/m/Y' ,$donnees5->date).' '.A.' '.date('H\:i' ,$donnees5->date);
      $dernier_message = PAR.' <b>'.$auteur.'</b><br /><i>'. $date.'</i>';
    }
   
    }
     
    if($nb_messages == 0)
    {
      $nb_topic = '-';
      $nb_messages = '-';
      $dernier_message = '-';
    }
   
    echo''
    .'<tr>'
    .'<td align="left" style="background-color:'.$cocolor.';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding-left:5px;padding-top:10px;padding-bottom:10px;"><b><a href="index.php?page=Forum&page_name=topics&scat='.$scat_id.'">'.$donnees2->titre.'</a></b></td>'
    .'<td style="background-color:'.$cocolor.';border:1px solid '.$_color[2].';border-top:none;border-right:none;border-left:none;">'.$nb_topic.'</td>'
    .'<td style="background-color:'.$cocolor.';border:1px solid '.$_color[2].';border-top:none;border-right:none;border-left:none;">'.$nb_messages.'</td>'
    .'<td style="background-color:'.$cocolor.';border:1px solid '.$_color[2].';border-top:none;border-left:none;">'.$dernier_message.'</td>'
    .'</tr>'
    ;
   
    $color_num=($color_num == 2)?0:$color_num;
    $color_num++;
    }
  }
  if(empty($_test2))
  {
    echo'<tr><td colspan="4" style="text-align:center;padding:3px;">- '.NO_SOUS_CATEGORIES.' -</td></tr>';
  }
 
  echo''
  .'</table>'
  .'<br />'
  ;
  }
 
  $_test2='';
}
if(empty($_test1))
{
  echo'<div style="text-align:center;">- '.NO_CATEGORIES.' -</div>';
}
?>
 

Merci pour votre aide...

Hors ligne

#2 11-02-2012 21:35:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : site avec forum intégrer

Bonsoir,

Ca existe encore les forums écrits en procédural? ...


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 12-02-2012 00:40:36

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : site avec forum intégrer

comme tu vois c'est un site que j'ai acheter y'a quelques semaines

Hors ligne

#4 12-02-2012 00:50:26

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : site avec forum intégrer

Bien je te souhaite bien du courage... j'espère que tu ne l'as pas acheté bien cher, car il risque de te coûter pas mal en maintenance et en mise à jour. De plus il n'utilise pas PDO, donc question compatibilité PHP6 etc, pas top.

Ensuite pour ton problème, le fait qu'il y est fait une utilisation abusive du SELECT *, question pertinence des noms de colonnes aucun moyen de vérifier sans voir la base de données...

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 12-02-2012 13:29:57

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : site avec forum intégrer

ça va 50€ mais si tu connais un code me permettant d'introduire un forum dans un site comme celui-ci n'hésite pas ^^
pour le problème


SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Structure de la table `forum_cat`
--

CREATE TABLE IF NOT EXISTS `forum_cat` (
  `id` int(11) NOT NULL auto_increment,
  `place` int(10) NOT NULL default '0',
  `titre` varchar(60) NOT NULL,
  `lvl` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `titre` (`titre`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;


--
-- Structure de la table `forum_messages`
--

CREATE TABLE IF NOT EXISTS `forum_messages` (
  `id` int(11) NOT NULL auto_increment,
  `topic_id` int(11) NOT NULL default '0',
  `Scat_id` int(11) NOT NULL default '0',
  `auteur` varchar(25) NOT NULL default '',
  `titre` varchar(60) NOT NULL default '',
  `message` text NOT NULL,
  `date` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;

--
-- Structure de la table `forum_scat`
--

CREATE TABLE IF NOT EXISTS `forum_scat` (
  `id` int(11) NOT NULL auto_increment,
  `cat_id` int(11) NOT NULL default '0',
  `place` int(10) NOT NULL default '0',
  `titre` varchar(60) NOT NULL,
  `lvl` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Structure de la table `forum_topic`
--

CREATE TABLE IF NOT EXISTS `forum_topic` (
  `id` int(11) NOT NULL auto_increment,
  `Scat_id` int(11) NOT NULL default '0',
  `titre` varchar(60) NOT NULL,
  `auteur` varchar(25) NOT NULL,
  `date` int(11) NOT NULL default '0',
  `date2` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
 

Hors ligne

Pied de page des forums