begin process at 2012 05 27 21:28:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FORUM PERSO EN PHP

FORUM PERSO EN PHP


 Information sur la source

Note :
4 / 10 - par 1 personne
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :Forum, gestion compte, php Niveau :Débutant Date de création :10/07/2011 Date de mise à jour :18/07/2011 22:55:55 Vu / téléchargé :4 605 / 643

Auteur : David78390

Ecrire un message privé
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voila déja qque foi que l'on me solicite pour que je file un coup de main à faire un forum en PHP.

Donc voila la source de base (que j'adapte en fonction des sites des un ou des autres)

Le principe est simple:
- 1 admin ayant tout les droits, 2 utilisateurs (dont 1 pour le quel on pourrait donner plus de privilèges), et 1 banni du fofo
- la possibilité de créer son propre compte

Améliorations à venir:
- une partie administration pour créer automatiquement la base,
- chiader un peu plus l'aspect graphique (mais en général ca dépend pas mal du site existant)

A voir si c'est utile:
- et gérer via le compte admin les autres comptes,
- vérifier les champs remplis dans le formulaire.

Source

  • Le tout est dans le zip,
  • mais voila la principale :
  • <?php
  • $DOC_TITLE = "forumPerso";
  • if(!isset($_REQUEST['type'])) $_REQUEST['type']='voir';
  • if (est_identifie()){
  • switch ($_REQUEST['type'])
  • {
  • case 'voir':
  • affiche_forum();
  • break;
  • case 'voir_sujet':
  • affiche_sujet();
  • break;
  • case 'ajout_sujet':
  • ajouter_sujet();
  • break;
  • case 'ajout_post' :
  • ajouter_post();
  • break;
  • case 'supp_sujet' :
  • supprimer_sujet();
  • affiche_forum();
  • break;
  • case 'censure_post' :
  • censurer_post();
  • break;
  • case 'supp_post' :
  • supprimer_post();
  • break;
  • case 'bannir' :
  • bannir_membre();
  • break;
  • default :
  • //affiche_forum();
  • }
  • }else echo "<br><br><br><p align=\"center\" class=\"txt\" >vous devez etre <a href=\"index.php?m=utilisateurs&l=membre.php\">identifié</a> pour accéder au forum. </p>";
  • /******************************************************************************
  • * FONCTIONS
  • *****************************************************************************/
  • function affiche_forum()
  • {
  • Global $wwwroot;
  • echo "<br><br><br><p align=\"center\"><a href=\"".$wwwroot."index.php?m=Forum&l=forum.php\">FORUM</a></p><br><br><br>";
  • echo 'Bienvenue '.$_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille'];
  • echo '...[';
  • echo '<a href="'.$wwwroot.'index.php?m=utilisateurs&l=change_params.php" alt="Accéder à votre compte" title="Accéder à votre compte">x</a>/';
  • echo '<a href="'.$wwwroot.'index.php?m=utilisateurs&l=change_mot_passe.php" alt="Modifier mot de passe" title="Modifier mot de passe">x</a>]';
  • echo '<br><br>';
  • if(isset($_REQUEST['id_sujet']))
  • {
  • $tmp=$_REQUEST['id_sujet'];
  • $int_sujet = mysql_query("SELECT * FROM forumperso_sujet WHERE id_sujet='$tmp' ORDER BY id_sujet ");
  • }
  • else $int_sujet = mysql_query("SELECT * FROM forumperso_sujet ORDER BY id_sujet ");
  • if (mysql_num_rows($int_sujet)!=0)
  • {
  • while ($recup_sujet = mysql_fetch_array($int_sujet))
  • { ?>
  • <table cellpadding="0" cellspacing="0" height="100%" width="100%" border="0"">
  • <tr>
  • <td height="50" width="100%" valign="bottom">
  • <ul id="forumsujet">
  • <li>
  • <A href="<?php echo $_SERVER['PHP_SELF']; ?>?m=Forum&l=forum.php&type=voir_sujet&id_sujet=<?php echo $recup_sujet['id_sujet'];?> "><?php echo $recup_sujet['nom_sujet']; ?></A>
  • <?php
  • if($_SESSION['utilisateur']['priv']=="admin")
  • {
  • echo "<a onClick=\"Javascript:return confirm('Êtes-vous sûr de vouloir supprimer le Sujet Completement ?');\" title=\"Supprimer\" href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=supp_sujet&idsuj=".$recup_sujet['id_sujet']."\">";
  • echo "<img src=\"fonctions/images/trash-48.gif\" border=\"0\" width=\"25\" height=\"25\" alt=\"Supprimer\" />";
  • echo "</a>";
  • }
  • ?>
  • <br>
  • </li>
  • </ul>
  • </td>
  • </tr>
  • </table>
  • <?php
  • }
  • }
  • if($_REQUEST['type']=='voir')
  • {
  • echo "<br><br><br>";
  • echo "<FORM method=post action=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=ajout_sujet\">";
  • echo "<p align=\"center\"><INPUT type=\"submit\" value=\"Nouveau Sujet\" ></p>";
  • echo "</FORM>";
  • }
  • }
  • function affiche_sujet()
  • {
  • GLOBAL $wwwroot;
  • affiche_forum(); //affiche le sujet en question
  • $tmp=$_REQUEST['id_sujet'];
  • //recuperer les post en rapport avec ce sujet
  • $int_post = mysql_query("SELECT id_post FROM forumperso_sujet_post WHERE id_sujet='$tmp' ORDER BY id_post ");
  • if (mysql_num_rows($int_post)!=0)
  • {
  • while ($recup_post = mysql_fetch_array($int_post))
  • {
  • $tmp2=$recup_post['id_post'];
  • $aff_post = mysql_query("SELECT * FROM forumperso_post WHERE id_post='$tmp2' ORDER BY id_post ");
  • mysql_num_rows($aff_post);
  • $affiche_post = mysql_fetch_array($aff_post);
  • echo "<table width=\"80%\" border=\"2\" class=\"txt\" align=\"center\">";
  • echo "<tr>";
  • echo "<td>";
  • echo "Posté par ".$affiche_post['nom_reponse'];
  • if(a_priv('admin'))
  • {
  • echo'&nbsp;&nbsp;<a href="'.$wwwroot.'index.php?m=Forum&l=forum.php&type=bannir&Abannir='.$affiche_post['nom_reponse'].'" title="BANNIR CE MEMBRE"><img src="fonctions/images/ban.gif" border="no"></a>';
  • }
  • echo "</td>";
  • if(a_priv("admin")) echo "<td width=\"20%\">";
  • else echo "<td width=\"25%\">";
  • echo " Le ".$affiche_post['date_reponse'];
  • echo "</td>";
  • if(a_priv("admin"))
  • {
  • echo "<td width=\"5%\">";
  • echo "<a href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=censure_post&id_sujet=".$_REQUEST['id_sujet']."&post=".$affiche_post['id_post']."\" title=\"Censurer le message\"><img src=\"fonctions/images/b_drop.png\" border=\"no\"></a> ";
  • echo "</td>";
  • echo "<td width=\"5%\">";
  • echo "<a href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=supp_post&id_sujet=".$_REQUEST['id_sujet']."&post=".$affiche_post['id_post']."\" title=\"Detruire le message\"><img src=\"fonctions/images/trash-48.gif\" width=\"25\" heigth=\"25\" border=\"no\"></a> ";
  • echo "</td>";
  • }
  • echo "</tr>";
  • echo "<tr>";
  • echo "<td colspan=\""; if(a_priv("admin")){echo "4";}else{echo "2";} echo "\">";
  • //remplacer les ;) :D :) .....
  • $bd="<img src=\"Forum/ico/"; $bf="\" width=\"25\">"; $bf2="\">";
  • $Old_txt=array( ':??:' , ':OO:' , ':Lum:' , ':)' , ';)' , ':p' , ':D' , ':o_O:' , ';P;' , ':8):' , ':cry:' , ';(' , ':(' , ':grr:' , '?:' , ':O:' , ':zz:' , ':beurk:' , ':smack:' , 'MDR' , 'LOL' , ':out:' );
  • $New_txt=array($bd.'what.gif'.$bf,$bd.'nerd.gif'.$bf,$bd.'light.gif'.$bf,$bd.'happy.gif'.$bf,$bd.'nice.gif'.$bf,$bd.'fool.gif'.$bf,$bd.'eclat.gif'.$bf,$bd.'horny.gif'.$bf,$bd.'clown.gif'.$bf,$bd.'cool.gif'.$bf,$bd.'crying.gif'.$bf,$bd.'bad.gif'.$bf,$bd.'scared.gif'.$bf,$bd.'angry.gif'.$bf,$bd.'inlove.gif'.$bf,$bd.'saint.gif'.$bf,$bd.'sleepy.gif'.$bf,$bd.'ill.gif'.$bf,$bd.'smack.gif'.$bf,$bd.'mdr.gif'.$bf2,$bd.'lol.gif'.$bf2,$bd.'sors.gif'.$bf2);
  • $affiche_post['texte'] = str_replace ( $Old_txt , $New_txt , $affiche_post['texte'] );
  • echo stripslashes($affiche_post['texte']);
  • echo "<br>";
  • echo "<br>";
  • echo "</td>";
  • echo "</tr>";
  • echo "</table><br>";
  • }
  • echo "<FORM method=post action=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=ajout_post&id_sujet=".$tmp."\">";
  • echo "<p align=\"center\"><INPUT type=\"submit\" value=\"Repondre\" ></p>";
  • echo "</FORM>";
  • }else{echo "aucun message sur ce sujet";}
  • }
  • function ajouter_sujet()
  • {
  • if(!isset($_REQUEST['id_sujet'])) //Si pas de variable id_sujet , on laisse l'utilisateur creer son sujet
  • {
  • ?>
  • <FORM method="post" action="<?php $_SERVER['PHP_SELF'];?>?m=Forum&l=forum.php&type=ajout_sujet&id_sujet=new">
  • <p class="txt">Titre du sujet : </p>
  • <input type="text" maxlenght="50" name="sujet" value="<?php if(isset($_REQUEST['sujet'])) echo $_REQUEST['sujet']; ?>"/>
  • <?php if(isset($_REQUEST['erreursujet'])) echo "<font color=\"red\">&lt;= Vous devez mettre un titre</font>"; ?>
  • <p class="txt" >Message : </p>
  • <input type="hidden" value="html" name="p_format" tabindex="1" id="p_format" />
  • <p>
  • <textarea style="width:100%" rows="10" name="texte" id="texte"><?php if(isset($_REQUEST['texte'])) echo $_REQUEST['texte']; ?></textarea>
  • <?php if(isset($_REQUEST['erreurtexte'])) echo "<font color=\"red\">&lt;= Vous devez remplir ce champ texte</font>"; ?>
  • </p>
  • <script src="fonctions/toolbar.js" type="text/javascript"></script>
  • <script type="text/javascript">
  • if (document.getElementById)
  • {
  • var tb = new dcToolBar(document.getElementById('texte'),
  • document.getElementById('p_format'),'fonctions/images/');
  • tb.btStrong('Forte emphase');
  • tb.btEm('Emphase');
  • tb.btIns('Inséré');
  • tb.btDel('Supprimé');
  • tb.btQ('Citation en ligne');
  • tb.addSpace(10);
  • tb.btCode('Code');
  • tb.addSpace(10);
  • tb.btBquote('Bloc de citation');
  • tb.addSpace(10);
  • tb.btLink('Lien',
  • 'URL ?',
  • 'Langue ?',
  • 'fr');
  • tb.btImgLink('Image externe',
  • 'URL ?');
  • tb.addSpace(10);
  • tb.draw('Vous pouvez utiliser les raccourcis suivants pour enrichir votre présentation.');
  • var tbico = new dcToolBar(document.getElementById('texte'),
  • document.getElementById('p_format'),'Forum/ico/');
  • tbico.insIco(':??:','what.gif');
  • tbico.insIco(':OO:','nerd.gif');
  • tbico.insIco(':Lum:','light.gif');
  • tbico.insIco(':)','happy.gif');
  • tbico.insIco(';)','nice.gif');
  • tbico.insIco(':p','fool.gif');
  • tbico.insIco(':D','eclat.gif');
  • tbico.insIco(':o_O:','horny.gif');
  • tbico.insIco(';P;','clown.gif');
  • tbico.insIco(':8):','cool.gif');
  • tbico.insIco(':cry:','crying.gif');
  • tbico.insIco(';(','bad.gif');
  • tbico.insIco(':(','scared.gif');
  • tbico.insIco(':grr:','angry.gif');
  • tbico.insIco('?:','inlove.gif');
  • tbico.insIco(':O:','saint.gif');
  • tbico.insIco(':zz:','sleepy.gif');
  • tbico.insIco(':beurk:','ill.gif');
  • tbico.insIco(':smack:','smack.gif');
  • tbico.insIco('MDR','mdr.gif');
  • tbico.insIco('LOL','lol.gif');
  • tbico.insIco(':out:','sors.gif');
  • tbico.draw('Vous pouvez utiliser les icones suivantes.');
  • }
  • </script>
  • <p align="center"><INPUT type="submit" value="Ajouter" ></p>
  • </FORM>
  • <?php
  • }
  • else if($_REQUEST['id_sujet']=='new') //Si y'a une variable id_sujet qui est new, on verifie les champ remplis
  • {
  • if(($_REQUEST['sujet']!='') && ($_REQUEST['texte']!='')) //les 2 champs sont rempli, ont enregistre
  • {
  • //Qui et quand en est l'auteur:
  • $Auteur = $_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille']['0'].$_SESSION['utilisateur']['nom_famille']['1'].$_SESSION['utilisateur']['nom_famille']['2'];
  • $date =date("Y")."-".date("n")."-".date("d");
  • //rechercher le dernier sujet créé
  • $search_sujet = mysql_query("SELECT * FROM forumperso_sujet ORDER BY id_sujet DESC ");
  • if (mysql_num_rows($search_sujet)!=0) $recup_sujet = mysql_fetch_array($search_sujet);
  • $nbs_sujet = $recup_sujet['id_sujet']+1;
  • $sujet = $_REQUEST['sujet'];
  • //Mise a jour ssi il n'est pas banni:
  • if($_SESSION['utilisateur']['priv']!='banni')
  • {
  • //de la table sujet:
  • $qid = mysql_query(" INSERT INTO forumperso_sujet( id_sujet , nom_sujet , createur , date_crea )
  • VALUES ('$nbs_sujet','$sujet' , '$Auteur', '$date')");
  • //idem pour les post
  • $search_post = mysql_query("SELECT * FROM forumperso_post ORDER BY id_post DESC ");
  • if (mysql_num_rows($search_post)!=0) $recup_post = mysql_fetch_array($search_post);
  • $nbs_post = $recup_post['id_post']+1;
  • $post = addslashes($_REQUEST['texte']);
  • $post = nl2br($post); // pour les retour ligne du message
  • //MAJ
  • $qid = mysql_query(" INSERT INTO forumperso_post ( id_post , texte , nom_reponse , date_reponse)
  • VALUES ('$nbs_post','$post', '$Auteur' , '$date' )");
  • //et enfin la table de liaison
  • $qid = mysql_query(" INSERT INTO forumperso_sujet_post ( id_sujet , id_post )
  • VALUES ( '$nbs_sujet' ,'$nbs_post' )");
  • }
  • //echo '<script language="javascript">window.location="index.php?m=Forum&l=forum.php";</script>';
  • echo "<br><br> <p class=\"txt\">Votre nouveau sujet a été correctement enregistré</p><br>";
  • echo "<a href=\"javascript:history.go(-2)\">Retour</a>";
  • }
  • else // il manque un des 2 champs, on recharge la page en demandant a l'utilisateur de remplir les champs manquant
  • {
  • $msg_erreur="index.php?m=Forum&l=forum.php&type=ajout_sujet";
  • if(($_REQUEST['sujet']=='')) $msg_erreur=$msg_erreur."&erreursujet=1";
  • if(($_REQUEST['texte']=='')) $msg_erreur=$msg_erreur."&erreurtexte=1";
  • $msg_erreur=$msg_erreur."&sujet=".$_REQUEST['sujet']."&texte=".$_REQUEST['texte'];
  • echo '<script language="javascript">window.location="',$msg_erreur,'";</script>';
  • }
  • }
  • else echo"erreur de traitement";
  • }
  • function ajouter_post()
  • {
  • GLOBAL $wwwroot;
  • affiche_sujet();
  • if(!isset($_REQUEST['id_post'])) //Si pas de variable id_sujet , on laisse l'utilisateur creer son sujet
  • {
  • ?>
  • <FORM method="post" action="<?php $_SERVER['PHP_SELF'];?>?m=Forum&l=forum.php&type=ajout_post&id_sujet=<?php echo $_REQUEST['id_sujet']; ?>&id_post=new">
  • <p class=txt>Reponse : </p>
  • <input type="hidden" value="html" name="p_format" tabindex="1" id="p_format" />
  • <p>
  • <textarea style="width:100%" rows="10" name="texte" id="texte"><?php if(isset($_REQUEST['texte'])) echo $_REQUEST['texte']; ?></textarea>
  • <?php if(isset($_REQUEST['erreurtexte'])) echo "<font color=\"red\">&lt;= Vous devez remplir ce champ texte</font>"; ?>
  • </p>
  • <script src="fonctions/toolbar.js" type="text/javascript"></script>
  • <script type="text/javascript">
  • if (document.getElementById)
  • {
  • var tb = new dcToolBar(document.getElementById('texte'),
  • document.getElementById('p_format'),'fonctions/images/');
  • var tbico = new dcToolBar(document.getElementById('texte'),
  • document.getElementById('p_format'),'fonctions/images/');
  • tb.btStrong('Forte emphase');
  • tb.btEm('Emphase');
  • tb.btIns('Inséré');
  • tb.btDel('Supprimé');
  • tb.btQ('Citation en ligne');
  • tb.addSpace(10);
  • tb.btCode('Code');
  • tb.addSpace(10);
  • tb.btBquote('Bloc de citation');
  • tb.addSpace(10);
  • tb.btLink('Lien',
  • 'URL ?',
  • 'Langue ?',
  • 'fr');
  • tb.btImgLink('Image externe',
  • 'URL ?');
  • tb.addSpace(10);
  • tb.draw('Vous pouvez utiliser les raccourcis suivants pour enrichir votre présentation.');
  • var tbico = new dcToolBar(document.getElementById('texte'),
  • document.getElementById('p_format'),'Forum/ico/');
  • tbico.insIco(':??:','what.gif');
  • tbico.insIco(':OO:','nerd.gif');
  • tbico.insIco(':Lum:','light.gif');
  • tbico.insIco(':)','happy.gif');
  • tbico.insIco(';)','nice.gif');
  • tbico.insIco(':p','fool.gif');
  • tbico.insIco(':D','eclat.gif');
  • tbico.insIco(':o_O:','horny.gif');
  • tbico.insIco(';P;','clown.gif');
  • tbico.insIco(':8):','cool.gif');
  • tbico.insIco(':cry:','crying.gif');
  • tbico.insIco(';(','bad.gif');
  • tbico.insIco(':(','scared.gif');
  • tbico.insIco(':grr:','angry.gif');
  • tbico.insIco('?:','inlove.gif');
  • tbico.insIco(':O:','saint.gif');
  • tbico.insIco(':zz:','sleepy.gif');
  • tbico.insIco(':beurk:','ill.gif');
  • tbico.insIco(':smack:','smack.gif');
  • tbico.insIco('MDR','mdr.gif');
  • tbico.insIco('LOL','lol.gif');
  • tbico.insIco(':out:','sors.gif');
  • tbico.draw('Vous pouvez utiliser les icones suivantes.');
  • }
  • </script>
  • <p align="center"><INPUT type="submit" value="Valider" ></p>
  • </FORM>
  • <?php
  • }
  • else if($_REQUEST['id_post']=='new') //Si y'a une variable id_post qui est new, on verifie les champ remplis
  • {
  • if($_REQUEST['texte']!='') //le champ texte est rempli, ont enregistre
  • {
  • //Qui et quand y repond:
  • $Auteur = $_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille']['0'].$_SESSION['utilisateur']['nom_famille']['1'].$_SESSION['utilisateur']['nom_famille']['2'];
  • $date =date("Y")."-".date("n")."-".date("d");
  • //on conait deja le sujet grace à id_sujet
  • $num_sujet=$_REQUEST['id_sujet'];
  • //on recherche le dernier post créé
  • $search_post = mysql_query("SELECT * FROM forumperso_post ORDER BY id_post DESC ");
  • if (mysql_num_rows($search_post)!=0) $recup_post = mysql_fetch_array($search_post);
  • $nbs_post = $recup_post['id_post']+1;
  • $post = addslashes($_REQUEST['texte']);
  • $post = nl2br($post); // pour les retour ligne du message
  • //MAJ ssi il n'est pas bannis
  • if($_SESSION['utilisateur']['priv']!='banni')
  • {
  • //du post
  • $qid = mysql_query(" INSERT INTO forumperso_post ( id_post , texte , nom_reponse , date_reponse)
  • VALUES ('$nbs_post','$post', '$Auteur' , '$date' )");
  • //et la table de liaison
  • $qid = mysql_query(" INSERT INTO forumperso_sujet_post ( id_sujet , id_post )
  • VALUES ( '$num_sujet' ,'$nbs_post' )");
  • }
  • echo '<script language="javascript">window.location="index.php?m=Forum&l=forum.php&type=voir_sujet&id_sujet='.$_REQUEST['id_sujet'].'";</script>';
  • echo "Votre réponse a été correctement enregistrée";
  • }
  • else // il manque un des 2 champs, on recharge la page en demandant a l'utilisateur de remplir les champs manquant
  • {
  • $msg_erreur="index.php?m=Forum&l=forum.php&type=ajout_post&id_sujet=".$_REQUEST['id_sujet'];;
  • if(($_REQUEST['texte']=='')) $msg_erreur=$msg_erreur."&erreurtexte=1";
  • echo '<script language="javascript">window.location="',$msg_erreur,'";</script>';
  • }
  • }
  • else echo"erreur de traitement";
  • }
  • function censurer_post()
  • {
  • $censure = "CENSURé PAR L\'ADMINISTRATEUR";
  • $post=$_REQUEST['post'];
  • $qid = mysql_query("UPDATE forumperso_post SET
  • texte = '".$censure."' WHERE id_post = '".$post."'");
  • affiche_sujet();
  • }
  • function supprimer_post()
  • {
  • $post_a_virer=$_REQUEST['post'];
  • //supprime le post
  • $qid = mysql_query("DELETE FROM forumperso_post WHERE id_post ='$post_a_virer'");
  • //puis la liaison
  • $qid = mysql_query("DELETE FROM forumperso_sujet_post WHERE id_post ='$post_a_virer'");
  • echo "<font color=\"red\"><br><br>Le post a été supprimé !<br><br></font><br>";
  • echo "<a href=\"javascript:history.go(-1)\">Retour</a>";
  • }
  • function supprimer_sujet()
  • {
  • $sujet_a_virer=$_REQUEST['idsuj'];
  • //avant on verifie les post associés
  • $qid = mysql_query("SELECT id_post FROM forumperso_sujet_post WHERE id_sujet='$sujet_a_virer'");
  • if (mysql_num_rows($qid)!=0)
  • {
  • while ($post = mysql_fetch_array($qid))
  • {
  • $num_post=$post['id_post'];
  • $post_a_virer = mysql_query("DELETE FROM forumperso_post WHERE id_post ='$num_post'");
  • $liason_a_virer = mysql_query("DELETE FROM forumperso_sujet_post WHERE id_post ='$num_post'");
  • }
  • }
  • $qid = mysql_query("DELETE FROM forumperso_sujet WHERE id_sujet ='$sujet_a_virer'");
  • echo "<font color=\"red\"><br><br>Le sujet et tous les posts associées ont été supprimés !<br><br></font>";
  • }
  • function bannir_membre()
  • {
  • GLOBAL $wwwroot;
  • //fonction utile pour bannir un menbre (BUG!!! si plusieurs personnes ont le même prémon et leur nom de famille qui commence par les 3 mêmes lettre, on est alors pas sur de bannir la bon!!!)
  • //celui ci pourra continuer à ecrire, mais son message ne sera pas sauvegardé
  • //c'est encore le meilleur moyen de ne pas etre trop emerdé par les robots
  • $recup=$_REQUEST['Abannir'];
  • $recup=explode(" ",$recup); //recup contient en 0 le prenom, et en 1 le nom de famille
  • $recupLog=mysql_query("SELECT * FROM forumperso_utilisateur WHERE prenom='$recup[0]'");
  • if (mysql_num_rows($recupLog)!=0)
  • {
  • while ($NomTrouve = mysql_fetch_array($recupLog))
  • {
  • if($recup[1]==($NomTrouve['nom_famille']['0'].$NomTrouve['nom_famille']['1'].$NomTrouve['nom_famille']['2']))
  • { //si les 3 1er lettre du nom de familles correspondent
  • $Degage=$NomTrouve['id_utilisateur'];
  • $qid = mysql_query("UPDATE forumperso_utilisateur SET
  • priv = 'banni' WHERE id_utilisateur = '".$Degage."'");
  • echo $NomTrouve['prenom']." ".$NomTrouve['nom_famille']." vient d'être bannis du forum !!!";
  • echo '<br><a href="'.$wwwroot.'index.php">Retour</a>';
  • }
  • }
  • }
  • }
  • ?>
Le tout est dans le zip,
mais voila la principale :

<?php

$DOC_TITLE = "forumPerso";
if(!isset($_REQUEST['type'])) $_REQUEST['type']='voir';

if (est_identifie()){
switch ($_REQUEST['type'])
  {
	case 'voir':
    affiche_forum();
    break;
	case 'voir_sujet':
    affiche_sujet();
    break;
	case 'ajout_sujet':
    ajouter_sujet();
    break;
	case 'ajout_post' :
    ajouter_post();
    break;
	case 'supp_sujet' :
    supprimer_sujet();
    affiche_forum();
    break;
	case 'censure_post' :
    censurer_post();
    break;
	case 'supp_post' :
    supprimer_post();
    break;
	case 'bannir' :
    bannir_membre();
    break;
	default :
     //affiche_forum();
	}
}else echo "<br><br><br><p align=\"center\" class=\"txt\" >vous devez etre <a href=\"index.php?m=utilisateurs&l=membre.php\">identifié</a> pour accéder au forum. </p>";


/******************************************************************************
 * FONCTIONS
 *****************************************************************************/

function affiche_forum()
  {
  Global $wwwroot;
  echo "<br><br><br><p align=\"center\"><a href=\"".$wwwroot."index.php?m=Forum&l=forum.php\">FORUM</a></p><br><br><br>";
  echo 'Bienvenue '.$_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille'];
  echo '...[';
  echo '<a href="'.$wwwroot.'index.php?m=utilisateurs&l=change_params.php" alt="Accéder à votre compte" title="Accéder à votre compte">x</a>/';
  echo '<a href="'.$wwwroot.'index.php?m=utilisateurs&l=change_mot_passe.php" alt="Modifier mot de passe" title="Modifier mot de passe">x</a>]';
  echo '<br><br>';
  if(isset($_REQUEST['id_sujet']))
    {
    $tmp=$_REQUEST['id_sujet'];
    $int_sujet = mysql_query("SELECT * FROM forumperso_sujet WHERE id_sujet='$tmp' ORDER BY id_sujet ");
    }
    else $int_sujet = mysql_query("SELECT * FROM forumperso_sujet ORDER BY id_sujet ");
  if (mysql_num_rows($int_sujet)!=0)
    {
    while ($recup_sujet = mysql_fetch_array($int_sujet))
      { ?>
      <table cellpadding="0" cellspacing="0" height="100%" width="100%" border="0"">
  		  <tr>
          <td height="50" width="100%" valign="bottom">
            <ul id="forumsujet">
              <li>
                <A  href="<?php echo $_SERVER['PHP_SELF']; ?>?m=Forum&l=forum.php&type=voir_sujet&id_sujet=<?php echo $recup_sujet['id_sujet'];?> "><?php echo $recup_sujet['nom_sujet']; ?></A>
                <?php
                if($_SESSION['utilisateur']['priv']=="admin")
                  {
                  echo "<a onClick=\"Javascript:return confirm('Êtes-vous sûr de vouloir supprimer le Sujet Completement ?');\" title=\"Supprimer\" href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=supp_sujet&idsuj=".$recup_sujet['id_sujet']."\">";
                    echo "<img src=\"fonctions/images/trash-48.gif\" border=\"0\"  width=\"25\" height=\"25\" alt=\"Supprimer\" />";
                  echo "</a>";
                  }
                ?>
                <br>
						  </li>
            </ul>
				  </td>
        </tr>
      </table>
      <?php
      }
    }
    if($_REQUEST['type']=='voir')
      {
      echo "<br><br><br>";
      echo "<FORM method=post action=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=ajout_sujet\">";
      echo "<p align=\"center\"><INPUT type=\"submit\" value=\"Nouveau Sujet\" ></p>";
      echo "</FORM>";
      }
  }

function affiche_sujet()
  {
  GLOBAL $wwwroot;
  affiche_forum(); //affiche le sujet en question
  $tmp=$_REQUEST['id_sujet'];
  //recuperer les post en rapport avec ce sujet
  $int_post = mysql_query("SELECT id_post FROM forumperso_sujet_post WHERE id_sujet='$tmp' ORDER BY id_post ");
  if (mysql_num_rows($int_post)!=0)
    {
    while ($recup_post = mysql_fetch_array($int_post))
      {
      $tmp2=$recup_post['id_post'];
      $aff_post = mysql_query("SELECT * FROM forumperso_post WHERE id_post='$tmp2' ORDER BY id_post ");
      mysql_num_rows($aff_post);
      $affiche_post = mysql_fetch_array($aff_post);
      echo "<table width=\"80%\" border=\"2\" class=\"txt\" align=\"center\">";
        echo "<tr>";
          echo "<td>";
            echo "Posté par ".$affiche_post['nom_reponse'];
            if(a_priv('admin'))
            {
            echo'&nbsp;&nbsp;<a href="'.$wwwroot.'index.php?m=Forum&l=forum.php&type=bannir&Abannir='.$affiche_post['nom_reponse'].'" title="BANNIR CE MEMBRE"><img src="fonctions/images/ban.gif" border="no"></a>';
            }
          echo "</td>";
          if(a_priv("admin")) echo "<td width=\"20%\">";
            else echo "<td width=\"25%\">";
            echo " Le ".$affiche_post['date_reponse'];
          echo "</td>";
          if(a_priv("admin"))
          {
          echo "<td  width=\"5%\">";
            echo "<a href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=censure_post&id_sujet=".$_REQUEST['id_sujet']."&post=".$affiche_post['id_post']."\" title=\"Censurer le message\"><img src=\"fonctions/images/b_drop.png\" border=\"no\"></a>   ";
          echo "</td>";
          echo "<td  width=\"5%\">";
            echo "<a href=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=supp_post&id_sujet=".$_REQUEST['id_sujet']."&post=".$affiche_post['id_post']."\" title=\"Detruire le message\"><img src=\"fonctions/images/trash-48.gif\" width=\"25\" heigth=\"25\" border=\"no\"></a>   ";
          echo "</td>";
          }
        echo "</tr>";
        echo "<tr>";
          echo "<td colspan=\""; if(a_priv("admin")){echo "4";}else{echo "2";} echo "\">";
           //remplacer les ;) :D :) .....
            $bd="<img src=\"Forum/ico/"; $bf="\" width=\"25\">"; $bf2="\">";
            $Old_txt=array(      ':??:'      ,     ':OO:'       ,     ':Lum:'       ,       ':)'        ,     ';)'         ,      ':p'        ,     ':D'          ,       ':o_O:'     ,     ';P;'         ,       ':8):'     ,        ':cry:'     ,       ';('      ,     ':('           ,        ':grr:'    ,      '?:'          ,       ':O:'       ,       ':zz:'       ,    ':beurk:'    ,     ':smack:'     ,      'MDR'       ,      'LOL'       ,      ':out:'      );
            $New_txt=array($bd.'what.gif'.$bf,$bd.'nerd.gif'.$bf,$bd.'light.gif'.$bf,$bd.'happy.gif'.$bf,$bd.'nice.gif'.$bf,$bd.'fool.gif'.$bf,$bd.'eclat.gif'.$bf,$bd.'horny.gif'.$bf,$bd.'clown.gif'.$bf,$bd.'cool.gif'.$bf,$bd.'crying.gif'.$bf,$bd.'bad.gif'.$bf,$bd.'scared.gif'.$bf,$bd.'angry.gif'.$bf,$bd.'inlove.gif'.$bf,$bd.'saint.gif'.$bf,$bd.'sleepy.gif'.$bf,$bd.'ill.gif'.$bf,$bd.'smack.gif'.$bf,$bd.'mdr.gif'.$bf2,$bd.'lol.gif'.$bf2,$bd.'sors.gif'.$bf2);
            $affiche_post['texte'] = str_replace ( $Old_txt , $New_txt , $affiche_post['texte'] );
            echo stripslashes($affiche_post['texte']);
            echo "<br>";
            echo "<br>";
          echo "</td>";
        echo "</tr>";
      echo "</table><br>";
      }
    echo "<FORM method=post action=\"".$wwwroot."index.php?m=Forum&l=forum.php&type=ajout_post&id_sujet=".$tmp."\">";
    echo "<p align=\"center\"><INPUT type=\"submit\" value=\"Repondre\" ></p>";
    echo "</FORM>";
    }else{echo "aucun message sur ce sujet";}
  }



function ajouter_sujet()
  {

  if(!isset($_REQUEST['id_sujet'])) //Si pas de variable id_sujet , on laisse l'utilisateur creer son sujet
    {
    ?>
    <FORM method="post" action="<?php $_SERVER['PHP_SELF'];?>?m=Forum&l=forum.php&type=ajout_sujet&id_sujet=new">
      <p class="txt">Titre du sujet : </p>
      <input type="text" maxlenght="50" name="sujet" value="<?php if(isset($_REQUEST['sujet'])) echo $_REQUEST['sujet']; ?>"/>
      <?php if(isset($_REQUEST['erreursujet'])) echo "<font color=\"red\">&lt;= Vous devez mettre un titre</font>"; ?>

      <p class="txt" >Message : </p>
      <input type="hidden" value="html" name="p_format" tabindex="1" id="p_format" />
      <p>
        <textarea style="width:100%" rows="10" name="texte" id="texte"><?php if(isset($_REQUEST['texte'])) echo $_REQUEST['texte']; ?></textarea>
      <?php if(isset($_REQUEST['erreurtexte'])) echo "<font color=\"red\">&lt;= Vous devez remplir ce champ texte</font>"; ?>
      </p>
      <script src="fonctions/toolbar.js" type="text/javascript"></script>
        <script type="text/javascript">
          if (document.getElementById)
            {
      		  var tb = new dcToolBar(document.getElementById('texte'),
      		  document.getElementById('p_format'),'fonctions/images/');
      		  tb.btStrong('Forte emphase');
      		  tb.btEm('Emphase');
      		  tb.btIns('Inséré');
      		  tb.btDel('Supprimé');
      		  tb.btQ('Citation en ligne');
        		tb.addSpace(10);
      		  tb.btCode('Code');
        		tb.addSpace(10);
        		tb.btBquote('Bloc de citation');
        		tb.addSpace(10);
        		tb.btLink('Lien',
        			'URL ?',
        			'Langue ?',
        			'fr');
        		tb.btImgLink('Image externe',
        			'URL ?');
        		tb.addSpace(10);
        		tb.draw('Vous pouvez utiliser les raccourcis suivants pour enrichir votre présentation.');

      		  var tbico = new dcToolBar(document.getElementById('texte'),
      		  document.getElementById('p_format'),'Forum/ico/');
    	   		tbico.insIco(':??:','what.gif');
      			tbico.insIco(':OO:','nerd.gif');
			      tbico.insIco(':Lum:','light.gif');
            tbico.insIco(':)','happy.gif');
            tbico.insIco(';)','nice.gif');
      			tbico.insIco(':p','fool.gif');
            tbico.insIco(':D','eclat.gif');
            tbico.insIco(':o_O:','horny.gif');
            tbico.insIco(';P;','clown.gif');
            tbico.insIco(':8):','cool.gif');
            tbico.insIco(':cry:','crying.gif');
            tbico.insIco(';(','bad.gif');
            tbico.insIco(':(','scared.gif');
            tbico.insIco(':grr:','angry.gif');
            tbico.insIco('?:','inlove.gif');
            tbico.insIco(':O:','saint.gif');
            tbico.insIco(':zz:','sleepy.gif');
            tbico.insIco(':beurk:','ill.gif');
            tbico.insIco(':smack:','smack.gif');
      			tbico.insIco('MDR','mdr.gif');
      			tbico.insIco('LOL','lol.gif');
      			tbico.insIco(':out:','sors.gif');
            tbico.draw('Vous pouvez utiliser les icones suivantes.');

      		  }
      	</script>
      <p align="center"><INPUT type="submit" value="Ajouter" ></p>
    </FORM>

    <?php
    }
    else if($_REQUEST['id_sujet']=='new') //Si y'a une variable id_sujet qui est new, on verifie les champ remplis
      {
      if(($_REQUEST['sujet']!='') && ($_REQUEST['texte']!='')) //les 2 champs sont rempli, ont enregistre
        {
        //Qui et quand en est l'auteur:
        $Auteur = $_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille']['0'].$_SESSION['utilisateur']['nom_famille']['1'].$_SESSION['utilisateur']['nom_famille']['2'];
        $date =date("Y")."-".date("n")."-".date("d");
        //rechercher le dernier sujet créé
        $search_sujet = mysql_query("SELECT * FROM forumperso_sujet ORDER BY id_sujet DESC ");
        if (mysql_num_rows($search_sujet)!=0) $recup_sujet = mysql_fetch_array($search_sujet);
        $nbs_sujet = $recup_sujet['id_sujet']+1;
        $sujet = $_REQUEST['sujet'];
        //Mise a jour ssi il n'est pas banni:
        if($_SESSION['utilisateur']['priv']!='banni')
          {
          //de la table sujet:
        	$qid = mysql_query("	INSERT INTO forumperso_sujet( id_sujet , nom_sujet , createur , date_crea )
                                                     VALUES ('$nbs_sujet','$sujet' , '$Auteur',	'$date')");
          //idem pour les post
          $search_post = mysql_query("SELECT * FROM forumperso_post ORDER BY id_post DESC ");
          if (mysql_num_rows($search_post)!=0) $recup_post = mysql_fetch_array($search_post);
          $nbs_post = $recup_post['id_post']+1;
          $post = addslashes($_REQUEST['texte']);
          $post = nl2br($post); // pour les retour ligne du message
          //MAJ
        	$qid = mysql_query("	INSERT INTO forumperso_post ( id_post		, texte	, nom_reponse , date_reponse)
                                                     VALUES ('$nbs_post','$post', '$Auteur'   ,	'$date'	)");
          //et enfin la table de liaison
         	$qid = mysql_query("	INSERT INTO forumperso_sujet_post (  id_sujet		, id_post	)
          VALUES (		'$nbs_sujet'		,'$nbs_post'	)");
          }
        //echo '<script language="javascript">window.location="index.php?m=Forum&l=forum.php";</script>';
        echo "<br><br> <p class=\"txt\">Votre nouveau sujet a été correctement enregistré</p><br>";
        echo "<a href=\"javascript:history.go(-2)\">Retour</a>";
        }
        else // il manque un des 2 champs, on recharge la page en demandant a l'utilisateur de remplir les champs manquant
          {
          $msg_erreur="index.php?m=Forum&l=forum.php&type=ajout_sujet";
          if(($_REQUEST['sujet']=='')) $msg_erreur=$msg_erreur."&erreursujet=1";
          if(($_REQUEST['texte']=='')) $msg_erreur=$msg_erreur."&erreurtexte=1";
          $msg_erreur=$msg_erreur."&sujet=".$_REQUEST['sujet']."&texte=".$_REQUEST['texte'];
          echo '<script language="javascript">window.location="',$msg_erreur,'";</script>';
          }
      }
      else echo"erreur de traitement";
  }



function ajouter_post()
  {
  GLOBAL $wwwroot;
  affiche_sujet();
  if(!isset($_REQUEST['id_post'])) //Si pas de variable id_sujet , on laisse l'utilisateur creer son sujet
    {
    ?>
    <FORM method="post" action="<?php $_SERVER['PHP_SELF'];?>?m=Forum&l=forum.php&type=ajout_post&id_sujet=<?php echo $_REQUEST['id_sujet']; ?>&id_post=new">
      <p class=txt>Reponse : </p>
      <input type="hidden" value="html" name="p_format" tabindex="1" id="p_format" />
      <p>
        <textarea style="width:100%" rows="10" name="texte" id="texte"><?php if(isset($_REQUEST['texte'])) echo $_REQUEST['texte']; ?></textarea>
      <?php if(isset($_REQUEST['erreurtexte'])) echo "<font color=\"red\">&lt;= Vous devez remplir ce champ texte</font>"; ?>
      </p>
      <script src="fonctions/toolbar.js" type="text/javascript"></script>
        <script type="text/javascript">
          if (document.getElementById)
            {
      		  var tb = new dcToolBar(document.getElementById('texte'),
      		  document.getElementById('p_format'),'fonctions/images/');
      		  var tbico = new dcToolBar(document.getElementById('texte'),
      		  document.getElementById('p_format'),'fonctions/images/');
      		  tb.btStrong('Forte emphase');
      		  tb.btEm('Emphase');
      		  tb.btIns('Inséré');
      		  tb.btDel('Supprimé');
      		  tb.btQ('Citation en ligne');
        		tb.addSpace(10);
      		  tb.btCode('Code');
        		tb.addSpace(10);
        		tb.btBquote('Bloc de citation');
        		tb.addSpace(10);
        		tb.btLink('Lien',
        			'URL ?',
        			'Langue ?',
        			'fr');
        		tb.btImgLink('Image externe',
        			'URL ?');
        		tb.addSpace(10);
            tb.draw('Vous pouvez utiliser les raccourcis suivants pour enrichir votre présentation.');

      		  var tbico = new dcToolBar(document.getElementById('texte'),
      		  document.getElementById('p_format'),'Forum/ico/');
    	   		tbico.insIco(':??:','what.gif');
      			tbico.insIco(':OO:','nerd.gif');
			      tbico.insIco(':Lum:','light.gif');
            tbico.insIco(':)','happy.gif');
            tbico.insIco(';)','nice.gif');
      			tbico.insIco(':p','fool.gif');
            tbico.insIco(':D','eclat.gif');
            tbico.insIco(':o_O:','horny.gif');
            tbico.insIco(';P;','clown.gif');
            tbico.insIco(':8):','cool.gif');
            tbico.insIco(':cry:','crying.gif');
            tbico.insIco(';(','bad.gif');
            tbico.insIco(':(','scared.gif');
            tbico.insIco(':grr:','angry.gif');
            tbico.insIco('?:','inlove.gif');
            tbico.insIco(':O:','saint.gif');
            tbico.insIco(':zz:','sleepy.gif');
            tbico.insIco(':beurk:','ill.gif');
            tbico.insIco(':smack:','smack.gif');
      			tbico.insIco('MDR','mdr.gif');
      			tbico.insIco('LOL','lol.gif');
      			tbico.insIco(':out:','sors.gif');
            tbico.draw('Vous pouvez utiliser les icones suivantes.');
            }
      	</script>
      <p align="center"><INPUT type="submit" value="Valider" ></p>
    </FORM>

    <?php
    }
    else if($_REQUEST['id_post']=='new') //Si y'a une variable id_post qui est new, on verifie les champ remplis
      {
      if($_REQUEST['texte']!='') //le champ texte est rempli, ont enregistre
        {
        //Qui et quand y repond:
        $Auteur = $_SESSION['utilisateur']['prenom']." ".$_SESSION['utilisateur']['nom_famille']['0'].$_SESSION['utilisateur']['nom_famille']['1'].$_SESSION['utilisateur']['nom_famille']['2'];
        $date =date("Y")."-".date("n")."-".date("d");
        //on conait deja le sujet grace à id_sujet
        $num_sujet=$_REQUEST['id_sujet'];
        //on recherche le dernier post créé
        $search_post = mysql_query("SELECT * FROM forumperso_post ORDER BY id_post DESC ");
          if (mysql_num_rows($search_post)!=0) $recup_post = mysql_fetch_array($search_post);
          $nbs_post = $recup_post['id_post']+1;
          $post = addslashes($_REQUEST['texte']);
          $post = nl2br($post); // pour les retour ligne du message
          //MAJ ssi il n'est pas bannis
         if($_SESSION['utilisateur']['priv']!='banni')
          {
          //du post
        	$qid = mysql_query("	INSERT INTO forumperso_post ( id_post		, texte	, nom_reponse , date_reponse)
                                                     VALUES ('$nbs_post','$post', '$Auteur'   ,	'$date'	)");
          //et la table de liaison
        	$qid = mysql_query("	INSERT INTO forumperso_sujet_post (  id_sujet		, id_post	)
          VALUES (		'$num_sujet'		,'$nbs_post'	)");
          }
         echo '<script language="javascript">window.location="index.php?m=Forum&l=forum.php&type=voir_sujet&id_sujet='.$_REQUEST['id_sujet'].'";</script>';
         echo "Votre réponse a été correctement enregistrée";

        }
        else // il manque un des 2 champs, on recharge la page en demandant a l'utilisateur de remplir les champs manquant
          {
          $msg_erreur="index.php?m=Forum&l=forum.php&type=ajout_post&id_sujet=".$_REQUEST['id_sujet'];;
          if(($_REQUEST['texte']=='')) $msg_erreur=$msg_erreur."&erreurtexte=1";
          echo '<script language="javascript">window.location="',$msg_erreur,'";</script>';
          }
      }
      else echo"erreur de traitement";

  }

function censurer_post()
  {
  $censure = "CENSURé PAR L\'ADMINISTRATEUR";
  $post=$_REQUEST['post'];
	$qid = mysql_query("UPDATE forumperso_post SET
    texte  = '".$censure."' WHERE id_post = '".$post."'");
  affiche_sujet();
  }
  
function supprimer_post()
  {
  $post_a_virer=$_REQUEST['post'];
  //supprime le post
  $qid = mysql_query("DELETE FROM forumperso_post WHERE id_post ='$post_a_virer'");
  //puis la liaison
  $qid = mysql_query("DELETE FROM forumperso_sujet_post WHERE id_post ='$post_a_virer'");

  echo "<font color=\"red\"><br><br>Le post a été supprimé !<br><br></font><br>";
  echo "<a href=\"javascript:history.go(-1)\">Retour</a>";
  }

function supprimer_sujet()
  {
  $sujet_a_virer=$_REQUEST['idsuj'];
  //avant on verifie les post associés
  $qid = mysql_query("SELECT id_post FROM forumperso_sujet_post  WHERE id_sujet='$sujet_a_virer'");
  if (mysql_num_rows($qid)!=0)
    {
    while ($post = mysql_fetch_array($qid))
      {
      $num_post=$post['id_post'];
      $post_a_virer = mysql_query("DELETE FROM forumperso_post  WHERE id_post ='$num_post'");
      $liason_a_virer = mysql_query("DELETE FROM forumperso_sujet_post   WHERE id_post ='$num_post'");
      }
    }
  $qid = mysql_query("DELETE FROM forumperso_sujet WHERE id_sujet ='$sujet_a_virer'");
  echo "<font color=\"red\"><br><br>Le sujet et tous les posts associées ont été supprimés !<br><br></font>";
  }
  
  
function bannir_membre()
  {
  GLOBAL $wwwroot;
  //fonction utile pour bannir un menbre (BUG!!! si plusieurs personnes ont le même prémon et leur nom de famille qui commence par les 3 mêmes lettre, on est alors pas sur de bannir la bon!!!)
  //celui ci pourra continuer à ecrire, mais son message ne sera pas sauvegardé
  //c'est encore le meilleur moyen de ne pas etre trop emerdé par les robots
  $recup=$_REQUEST['Abannir'];
  $recup=explode(" ",$recup); //recup contient en 0 le prenom, et en 1 le nom de famille
  $recupLog=mysql_query("SELECT * FROM forumperso_utilisateur WHERE prenom='$recup[0]'");
  if (mysql_num_rows($recupLog)!=0)
    {
    while ($NomTrouve = mysql_fetch_array($recupLog))
      {
      if($recup[1]==($NomTrouve['nom_famille']['0'].$NomTrouve['nom_famille']['1'].$NomTrouve['nom_famille']['2']))
        { //si les 3 1er lettre du nom de familles correspondent
        $Degage=$NomTrouve['id_utilisateur'];
        $qid = mysql_query("UPDATE forumperso_utilisateur SET
            priv   = 'banni' WHERE id_utilisateur  = '".$Degage."'");
        echo $NomTrouve['prenom']." ".$NomTrouve['nom_famille']." vient d'être bannis du forum !!!";
        echo '<br><a href="'.$wwwroot.'index.php">Retour</a>';
        }
      
      }
       
    }
  }
?>

 Conclusion

A vous de me dire ce que vous en pensez

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 juillet 2011 22:55:57 :
Mise à jour de la BDD

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
Source avec Zip Source avec une capture FORUM EN PHP + FICHIERS TEXTES ET SONDAGE + MYSQL par syllebreton

Commentaires et avis

Commentaire de Romano58 le 11/07/2011 11:52:23

Bonjour! Je vois que vous avez beaucoup travaillé la dessus, et je ne veux pas troller pour vous décourager. Seulement, pourquoi ne pas utiliser des templates pour séparer le code HTML du code PHP? Il s'agit d'un script qui va devenir de plus en plus complet (frontend, backend, gestion des utilisateurs), le maintenir va devenir une vrai galére.

Le moteur de template PHPBB est vraiment très simple d'utilisation, et en plus, c'est étudié pour faire des forums ^^ (Mais bon, je l'utilise également pour construire de petits site).

Bon courage pour la suite.

Commentaire de stay le 11/07/2011 14:04:16

Bonjour à tous,

@David78390, pourquoi tu as mis "Niveau : Initié" ?

Commentaire de David78390 le 11/07/2011 20:18:16

Pour le initié, autant pour moi, il y a eu un miss-clic,
c'est vrai que c'est plus débutant/confirmé.

Romano58 qu'entends-tu par des template?
Je pensais avoir codé ca assez proprement via des sous fonction, non?

Commentaire de stay le 11/07/2011 23:01:23

Très bon conseil @Romano58.

@David78390, (initié, il y a 6 ans voir plus) PHPBB fonctionne en MVC, il y a un moteur de Template pour séparer le modèle de la vue.

Exemple :
---------

Le controller :
---------------
/**
  * Assigne les différentes URL
  *
  * @author Stay
  * @access private
  * @param array $data
  * @return void
  */
private function assignDataRows($data)
{
    for($i=0;$i<count($data);$i++) {
        $this->o_template->assign_block_vars('optionsRows', array(
    "id" => $data[$i]["page_id"],
    "url" => utf8_encode($data[$i]["page_url"])
));
    }
}

La view :
---------
<select id="translation-pages" name="translation[pages]">
    <option value="null">aucun</option>
    <!-- BEGIN optionsRows-->
    <option value="{optionsRows.id}">{optionsRows.url}</option>
    <!-- END optionsRows-->
</select>

En paramètre dans la fonction assignDataRows du controller, (array) $data est un retour d'une requête dans un modèle.
Tu pourras constater que dans la view, optionsRows est générique.
C'est très puissant.

Autre exemple : http://wiki.phpbb.com/Template.assign_block_vars

Commentaire de David78390 le 11/07/2011 23:54:42

Si je comprend bien,
l'idée est d'avoir 1 fichier de code purement html,
qui appelle des fonctions php qui sont dans 1 autre fichier
(voir plusieurs autres fichiers)

Si c'est bien ca, le soucis c'est que l'on se retrouve des sous programmes qui font tous des requetes, mais dans des bases differentes et avec des reours differents, donc une multitude de sous prog php?

Ou j'ai pas bien suivit qque choses ???

Commentaire de Romano58 le 12/07/2011 09:51:49

@David78390:

Concrétement, l'utilisation d'un moteur de template et du modele MVC te permet:

1- D'avoir un (ou plusieurs) "templates" de page, ce que l'on appelle la vue, que tu écris comme n'importe quel page html, avec juste une petite syntaxe à rajouter pour remplacer des mots clef par des données.

2- D'avoir plusieurs fichier PHP, car une application php ne devrais pas ce résumer à un seul et unique script. Dans chacun de ces fichiers php tu fais le traitement voulu (ce sont des controleurs), qui à la fin des traitement irons chercher le modele de page (petit 1-) et afficherons le resultats sur la page de ton navigateur.

3- Un sous ensemble d'objet (le modele), qui s'occupe des données à enregistrer/récupérer dans la base. Souvent ce sont un sous ensemble de classe reflétant l'architecture de ta base de données (tables, relations, etc.). C'est ici en quelques sortes que tu a des sous fonctions qui traiterons les entrée/sortie de ta base.

Je te conseil vraiment d'aller chercher quelques tutoriaux sur internet. A propos du modele MVC, ainsi que sur la programmation orienté objets en PHP.

Bonne continuation.

Commentaire de stay le 12/07/2011 11:09:49

@David78390:

Sinon, sur ton application, le code HTML n'est pas top.
Ta DOCTYPE, HTML 4.0 Transitional//EN">
Tu devrais passer en : XHTML 1.0 Transitional//EN", ...
Bientôt, tout les navigateurs supporteront l'HTML5, qui sera une évolution pour le CSS3, les tag HTML auront une nomenclature logique et le flash disparu.

Commentaire de stay le 12/07/2011 22:20:36

Ce que tu as créé, c'est bien, mais l'informatique évolue.

Dépasser ses limites dans ses connaissances en informatique.
La difficulté chez un autodidacte, c'est d'ouvrir sont esprit sur quelque chose de différents et de recommencer à zéro.
Quand tu l'as fait une première fois, recommencer pour une nouveau langage ou une application est un plaisir.
Il faut avoir le temps.
C'est pourquoi, aujourd'hui, j'ai aucune grande préférences dans les méthodes de travailles pour évoluer sans grande difficulté car tout m'intéresse.

Coder avec un Framework Zend ou PHPBB.
J'ai même combiné Smarty à Zend Framework.
C'est cool.

Si tu as des questions n'hésites pas :)

Commentaire de David78390 le 12/07/2011 23:39:48

Hola, la tu commene à me perdre ;)

En effet j'ai commencé l'html y'a une dizaine d'année,
puis assez rapidement au JS pour faire qques anim,
et enfin le PHP depuis 2/3 ans.
Deja avec l'arrivé de FirFox, à l'époque j'ai compris qu'il y avait plein de choses qui marchaient mais qui en réalité étaient de la bidouille made in microsoft (une foi de plus ils avaient le monopole et se sont assi sur pas mal de principe basique du code)
Avec les WC3, ca a été la remise en cause de pas mal de mes codes (remise en forme des balises), mais malheureusement, j'avoue etre resté un auto didacte et en me demerdant à faire fonctionner mes codes par mes propres moyen, du coup y'a effectivement pas mal de choses qui ne sont pas top optimisées

Commentaire de stay le 13/07/2011 10:37:31

Oui, je ne m'étais pas trompé.
Comme le code en procédural est très bien maitrisé et que par rapport à la DTD, l'HTML est respecté.
C'est pour cela que j'ai été directement à l'essentiel pour te critiqué.

Mais tu connais déjà les réponses.

Commentaire de Romano58 le 13/07/2011 17:59:28

Je n'ose même pas imaginer les failles de sécurités qu'il y a dans ce code. Et bonjour le bordel pour changer ne serai-ce qu'un seul élément de la page par la suite... Je pense VRAIMENT que l'essentiel, c'est de passer par un modèle MVC (ou autre) pour écrire une application en PHP (J'ai bien dis une application, pas un script bidon qui affiche l'heure). On ne va pas être pointilleux sur le doctype du document (ça date..), et la programmation procédurale... ouai, pourquoi pas, mais surement pas dans ces conditions (UN seul script pour gérer un application de gestion d'un forum... faut pas déconner!). En php on peux séparer les fichiers, faire des includes, etc.

@David78390:
Tu a certainement passer beaucoup de temps à écrire ce script, mais je ne me cacherais pas pour dire que c'est vraiment pas un beau code (Et je suis moi même loin d'être un codeur talentueux). Va chercher des tutos sur la POO en php et sur le modèle MVC, tu a tout à y gagner. Rien ne t'oblige à te servir de ces méthodes par la suite, mais au moins, tu évoluera, et tu gagnera en compétences... tu verra d'autres façon de faire avec le même langage.
En faite, ce que je souhaite exprimer, c'est qu'un code qui fonctionne, n'est pas forcément "beau" ni "propre" ni "fonctionnel".

Bon courage, et ne t'indigne pas a cause de mes propos ;) Bonne continuation.

Commentaire de Romano58 le 13/07/2011 18:01:37

Edit: Ok, tu n'utilise pas qu'un seul script, autant pour moi :) (Mais ça ne change en rien ce que je dis ci-dessus)

Commentaire de stay le 14/07/2011 10:16:35

@Romano58, c'est dommage, tu es parti avec un bon fond et par la suite, tu pètes un câble.
On ne dit pas, tu dois mais, tu devrais :)
"Et bonjour le bordel", moi avec une phrase pareil, j'ai même plus envie de voir le coté positif de ton post.

La motivation que tu as à bien coder est bonne.
Mais pour la partager. Je crois que tu dois changer quelque chose.

Tu ne dois pas oublier que @David78390 à 30 ans et qu'il est possible qu'il travaille dans le domaine du web.
De plus cette explication à son dernier post est cohérente et montre bien qu'il maitrise une conversation pro.
Pour moi, il est intégrateur et il touche au PHP. Mais je peux me tromper.

Commentaire de Romano58 le 15/07/2011 10:05:12

LOL. C'étais pas méchant ce que je disais. Ca me fais marrer ce forum. Si vous voulez coder de la merde, c'est votre probléme après tout.

Là, c'étais pas gentil. bye

Commentaire de Romano58 le 15/07/2011 10:08:56

De plus, si je rend un source comme ça en milieu pro, je crois que je me fais jeter de ma boîte sans sommation.

Commentaire de stay le 15/07/2011 10:18:53

@Romano58, Ouai, MDR, lol.
C'est trop de la bal ce forum.
--------------------

Je te signal, par rapport à ton premier post, j'ai dit :
Très bon conseil @Romano58.

Et de plus, j'ai même donnée un exemple PHPBB.

Donc, je ne comprend pas cette phrase : "Si vous voulez coder de la merde, c'est votre probléme après tout".
Tu peux expliquer ?

Commentaire de stay le 15/07/2011 10:24:04

Je vais me répéter mais,
Les conseils donnés, doivent être à prendre ou à laisser.
Sans obligation direct, de plus, d'autres personnes peuvent être intéresser et prendre tes conseils.

Commentaire de Romano58 le 15/07/2011 10:45:26

@STAY: je te cite: "Comme le code en procédural est très bien maitrisé et que par rapport à la DTD, l'HTML est respecté."

Ne lui dis pas que son code procédural est bien, et encore moins qu'il bosse peut être en milieu pro alors! Excuse moi, mais tu met ce code en prod et le jour ou quelqu'un le lis bah tu te prend une soufflante. Je vois pas en quoi mon commentaire du 13/07 n'étais pas constructif. Je vais pas lui dire que c'est un super bon code juste pour lui faire plaisir. Je lui ai expliqué le pourquoi du comment, j'ai pas violé un membre de ça famille, et je ne l'ai pas sauvagement insulté à ce que je sache?

A force de sortir votre science et de faire les super savants, de pas dire au gens quand leurs codent sont pas térrible (je ne vois pas en quoi c'est dégradent), on ce retrouve avec des gars qui prétende détécter des pixels mort de façon "logicielle", comme je l'ai déjà vu sur vbfrance, non mais merci quoi.

Je ne réagirais plus a ce thread.

Commentaire de stay le 15/07/2011 11:25:20

@David78390 dit : En effet j'ai commencé l'html y'a une dizaine d'année et enfin le PHP depuis 2/3 ans.

@Romano58,

Donc, si aujourd'hui, il code encore, j'ai supposé qu'il travaille comme intégrateur.
Je suis parti sur le principe de respecté sont travail fait, il y a plusieurs années.
Et bien sur l'influencé à changer.
Le dernier post de David78390 montre bien qu'il en est conscient et que les termes qu'il à utilisé sont forcément d'une personne initié en HTML.
-----------

@Romano58 : Je ne réagirais plus a ce thread.

Si tu veux.

Commentaire de David78390 le 17/07/2011 20:59:02

Désolé de ne pas avoir réagit plus tot, mais je n'avais pas de ternet pdt le pont.

Merci pour vos conseils les gars, mais ne vous faites pas une guerre via ma source ;).
Au contraire, je suis prêt a prendre tout les conseils d'améliorations possibles.


Pour en revenir à la source, en fait j'ai fait le site de mon taff; car tout le monde critiquais le site réaliser par une boite externe, mais personne ne voulait s'y coller sérieusement.
Certes je suis parti d'une base existante, et c'est a ce moment que j'ai du me mettre au php.
Je viens de rentrer donc je regarderais vous conseils d'evolutions via les normes cités dés demain.
P.S: je suis à la base de formation electronique +1 an de formation en info indus, (donc c'est clair que coté "webmastoring" ;D ce n'est pas mon domaine originel)

Coté sécurité, c'est clair que la source mise ici est trés limite.
Mais ce que j'ais mis ici est le plus simple pour pouvoir fonctionner directement via un easyPHP.
En général, j'adapte ce script a la demande des mecs, et je masque bcp plus les liasons à la BDD. Par contre je pense (enfin j'espere) que coté taff, j'ai pas trop mal assuré ( @ Romano58 merci de me le confirmer: www.didalab.fr )


Merci les gars ;)

Commentaire de emilia123 le 18/07/2011 08:46:25

Bonjour,

Je vais la faire courte, car je n'ai pas beaucoup de temps :

Il ne faut JAMAIS faire ca :
---------------------------------------
$tmp=$_REQUEST['id_sujet'];
$int_sujet = mysql_query("SELECT * FROM forumperso_sujet WHERE id_sujet='$tmp' ORDER BY id_sujet ");
---------------------------------------
On ne doit JAMAIS utiliser une variable utilisateur directement dans une requete SQL. En faisant cela, tu donnes la possibilité à un attaquant de récupérer toutes les informations qu'il veut dans ta base.
- Si le champ est un numérique, TOUJOURS utiliser intval(...)
- Si le champ est du texte utiliser (en fonction de la situation):
    > à minima htmlspecialchars(...)
    > addslashes(...)
    > mysql_real_escape_string(...) (en cas d'utilisation de mysql)


idem :
---------------------------------------
$num_post=$post['id_post'];
$post_a_virer = mysql_query("DELETE FROM forumperso_post WHERE id_post ='$num_post'");
---------------------------------------
si dans id_post je passe : "1' or '1'='1" je peux vider la table en question.


Du pareil au meme:
Il ne faut JAMAIS faire ca :
---------------------------------------
echo $_REQUEST['sujet'];
---------------------------------------
Cela permet à un attaquant d'afficher ce qu'il veut dans la page comme par exemple ajouter du javascript qui va rediriger sur un site malveillant, ou récupérer des informations de l'internaute.
Il faut, à minima, utiliser la fonction "htmlspecialchars(...)" pour qu'aucun caractère ne soit interprétable par le navigateur de l'internaute..






Conseil : il vaut  mieux, pour une question de relecture du code, faire cela
mysql_query('SELECT * FROM forumperso_sujet WHERE id_sujet=".$tmp.' ORDER BY id_sujet ')
1) ca devrait etre plus rapide en execution
2) tu repères rapidement qu'il y a une variable au milieu de ta chaine de caractère.



ca c'était pour du générique sur le code PHP.

Apres une lecture rapidement en diagonale, je me demande ce qui m'empecherait, techniquement, de supprimer tous les posts du forum?
si j'appelle manuellement l'url suivante je vide le sujet 1, sans aucune vérification pour savoir si j'ai les droits.
---------------------------------------
index.php?m=Forum&l=forum.php&type=supp_sujet&idsuj=1
---------------------------------------
Au niveau sécurité, il faut imaginer que l'attaquant possède le code source et qu'il essaye de faire tout ce qui est possible. Ici il est possible de tout supprimer, sans meme utiliser de faille SQL/PHP, car le script ne vérifie pas si l'utilisateur est un admin avant de supprimer.

Je pense que ces corrections vont te donner de quoi t'occuper pendant quelques jours :)

Bonne continuation.

EM.

Commentaire de emilia123 le 18/07/2011 08:51:04

il y a une coquille dans ce que j'ai marqué (erreur de " ):
mysql_query('SELECT * FROM forumperso_sujet WHERE id_sujet='.$tmp.' ORDER BY id_sujet ')

Commentaire de Romano58 le 18/07/2011 09:39:00

@David: Ouaip, le site est fonctionne bien. C'est plutot pas mal. Après, faut voir le php qui est derrière tous ça :) Mais ça ne me regarde pas :p

Commentaire de bj33 le 18/07/2011 13:55:41 4/10

Salut,

<< (une foi de plus ils avaient le monopole et se sont assi sur pas mal de principe basique du code)

J'adore ce type de phrase! J'ai quand même l'impression que tu as fait la même chose...

Pas de constante pour le root. Evite ces vilains global. On peut faire sans. Code sql delete/update sans limit. Pas de mysql_real_escape_string. Pas de htmlentitie sur le php_self. Balises moitié en majuscule, moitié en minuscule. js tantôt en fichier externe tantôt en direct dans le html. Code js des icones en double. dans un fichier externe tu l'inclus une fois et c'est bon. Et repense tes hidden...

<< echo "<td width=\"25%\">";

manque de maitrise

echo '<td width="25%">';

C'est mieux. Non? Et puis si tu revois tout tes codes echo, tu gagneras quelques ms. Pour la concatenation, c'est une question de goût, certes, mais je préfére les points. Moins de risques d'erreurs à long terme.

Côté html, du transitionel. Vraiment là, c'est pas possible. Ce choix n'est pas/plus justifié. Mais bon, admettons. Je ne peux que te conseiller de voir du côté des design patterns et pas seulement le MVC. Bref, encore du boulôt pour être acceptable. Quant à l'utilité d'un forum de ce type, je ne juge pas mais je pense quand même que c'est plutôt sans intêret quand on voit l'offre actuelle. Maintenant si ce biais te permets de te former au codage php, pourquoi pas. Mais ce n'est pas utilisable tel que et à fortiori pour un débutant. De plus il est dangeureux. Et en passant, aujourd'hui, php en est à sa version 5.4. Profites, c'est gratuit.

<< on ce retrouve avec des gars qui prétende détécter des pixels mort de façon "logicielle"

Hé oui! C'est parfaitement juste. +1. Et sur phpcs c'est pire.

Commentaire de David78390 le 18/07/2011 22:40:25

@  emilia123
Pour le bout de code:
index.php?m=Forum&l=forum.php&type=supp_sujet&idsuj=1
Merci de l'info. En fait je partais du principe que seul l'admin pouvait voir ce bout de code, mais en effet, ca peut etre bien risqué.
Il faut que je valide ce petit bout par une vérification des droits au prélable...

Pour le
$tmp=$_REQUEST['id_sujet'];
$int_sujet = mysql_query("SELECT * FROM forumperso_sujet WHERE id_sujet='$tmp' ORDER BY id_sujet ");
Le probléme, c'est que je ne savais pas comment faire pour placer le resultat d'une requete préalable dans une nouvelle requete (suis-je assez clair??)

@ bj33
<< (une foi de plus ils avaient le monopole et se sont assi sur pas mal de principe basique du code)
Malheureusement oui, j'ai fait comme eux, car certainnes choses ne passent pas sinon sous IE ;)
Les global sont plutot pratique, et en effet il faudrait que je vois pour les virrer.
pour les icones en js, le tout est en externe, mais pour les créations de sujets/post il est en double afin de permettre le choix des ico à inserer.
Pour les echo '...' ou echo "...", pour moi ca revient au même. Après je prends l'un ou l'autre en fonction de ce que je met dans la chaine. Par contre je reconnais que certains sont sans doute inutile.

<<Quant à l'utilité d'un forum de ce type, je ne juge pas mais je pense quand même que c'est plutôt sans intêret quand on voit l'offre actuelle
Je te l'accorde tout à fait, mon but comme tu l'as deviné était plus de mettre en application du php.

Commentaire de stekendak01 le 21/07/2011 17:06:50

Bonsoir. Veuillez ne pas vous emportez à la lecture de ceci ms c'est que je suis plus que bleu dans tout ceci.
J'essai d'utiliser votre forum sans succès. je me perds un peu dans les directives à suivre. jusque ici je n'arrive pas à voir le forum tel que présenté sur l'image que vous en avez faite
vous disiez:
Dans le fichier index.php modifier,
- ligne 20/21 les variables de connection,
- ligne 25/26 la variable $wwwroot en fonction de votre config

J'aimerais savoir quelles devrais être les variables et pour ces ligne pour moi qui travaille en local sur mon pc

De plus le kit de connection qui doit s'afficher pr que je me log ne vient pas. comment dois-je faire?

MERCI d'avance

Commentaire de David78390 le 21/07/2011 23:41:54

Pas de soucis  stekendak01 .
Si tu bosse en local avec easy php, y'a aucun soucis, ca doit fonctionner.
0- tu decompacte le fichier zip dans le repertoire WWW de easyphp (le repertoire avec tout les source s'appele forumPerso, si tu le modifie change la ligne 25)
1- tu crés une base de donné avec easyphp (tant qu'à faire nome la forumPerso) et tu y importes le fichier BaseDeDonnee.txt ( si tu n'as pas appelé la BDD forumPerso, tu modifies la ligne 21 du fichier index.php)
3- si dans easyphp tu as modifié la config (adresse, compte admin ou le mot de passe) , tu adapte alors la ligne 20 de index.php

Voila @+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Créer un forum en PHP [ par DEL ] j'aimerai créer un forum en php, si quelqu'un pourrait m'expliquer comment faire pas à pas (soyez patients ^_^), si possible par messages instantanés, y'a personne sur ce forum :( [ par skrol29 ] Je suis suir le forum VB et PHP.Mais alors sur le forum PHP y'a rarement quelqu'un.Vous avez une autre adresse ou c'est simplement qu'il y a peu de dé forum php [ par eryk17 ] je suis en trtain de faire un forum en php mais le problem c'est que je ne sais pas afficher tous les les messages sur plusieurs pages. Par exemple qu Forum PHP [ par nicolas66 ] J'aimerai juste savoir comment on peut faire des réponses à d'autres messages ds un forum, faudrat-il envisager d'utiliser 2 tables ? une peut etre po Le plus recent message en haut du forum ! [ par Shady ] Jai un prob avec mon forum. Chu vraiment zero en prog et jaimerais que les thread ou ya des nouvelles reponses monte en haut de la liste. Je vous deux Chat à partir du login et mdp du forum [ par jmobylette ] Bonjour ! G un forum phpBB2 et je voudrais faire un chat à part mais en utilisant les mêmes pseudos et mdp ! J'ai donc fait un formulaire : http://jmo Besoin de grosse aide sur php [ par MrCarma ] Salut a Tous !!!<img src=/imgs2/smile.g Quun pe maidez a faire un forum le plus simple possible [ par Metal Xwarrior ] qqun pouais maidez a faire un simple forum sans font juste avec des lien sans cooki ni session ex:nick.php--&gt;page du psuedo annonymeliste.php?p=1-- login et mot de passe [ par developvbdebut ] Bonjour tout le monde.Je suis en trein de réaliser un fichier.php qui aurais accés sur trois autres fichiers php selon le login et mot de passe.d'apre Wanadoo et php... [ par killer19 ] Bonjour à tous. J'ai un problème avec un forum phpBB, car je n'arrive pas à faire le lien entre mon site et le forum : le browser n'interprète pas la


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales