begin process at 2010 03 21 11:13:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > UN FORUM (UN DE PLUS) MAIS DE CONCEPTION UN PEU DIFFÉRENTE DE CEUX QUE L'ON VOIT GÉNÉRALEMENT

UN FORUM (UN DE PLUS) MAIS DE CONCEPTION UN PEU DIFFÉRENTE DE CEUX QUE L'ON VOIT GÉNÉRALEMENT


 Information sur la source

Note :
5,25 / 10 - par 4 personnes
5,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Niveau :Débutant Date de création :13/12/2003 Date de mise à jour :18/12/2003 10:12:33 Vu / téléchargé :4 191 / 605

Auteur : yearll

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

 Description

Cliquez pour voir la capture en taille normale
Forum connecté à une Base MySQL, gestion des utilisateurs par cookies (dernière visite, autentification... ), possibilité de créer de nouveaux sujets infiniment...

pour un test, aller sur http://membres.lycos.fr/forumtst/


Source

  • README
  • Installation et utilisation du Forum
  • Tout d'abord, il marche avec une base SQL,
  • donc décompressez le tout au bon endroit :)
  • créez une base (yearll_forum par exemple ;) )
  • Exécutez ensuite le fichier tables_forum.sql, qui va créer les tables adéquates.
  • Une fois que c'est fait, configurez le fichier connect.php:
  • $serveur = "l'adresse du serveur de la base de données (localhost ou 127.0.0.1 ect...)";
  • $log="le loggin d'un utilisateur autorisé (root c'est le plus simple mais le moins sécurisé)";
  • $pass="le mot de passe d'accées à la base de l'utilisateur sélectionné (là je donne pas le mien)";
  • $base = "le nom de la base que vous avez créé (yearll_forum pour l'exemple)";
  • $tabutil="utilisateur";$tabmess="messages"; Ca N'Y TOUCHEZ PAS A MOINS QUE VOUS AYEZ
  • MODIFIE LE NOM DES TABLES LORS DE LA CREATION.
  • Voilà, normalement avec ça, ça marche
README

Installation et utilisation du Forum

Tout d'abord, il marche avec une base SQL,
donc décompressez le tout au bon endroit :)

créez une base (yearll_forum par exemple ;) )

Exécutez ensuite le fichier tables_forum.sql, qui va créer les tables adéquates.

Une fois que c'est fait, configurez le fichier connect.php:

$serveur = "l'adresse du serveur de la base de données (localhost ou 127.0.0.1 ect...)";

$log="le loggin d'un utilisateur autorisé (root c'est le plus simple mais le moins sécurisé)";

$pass="le mot de passe d'accées à la base de l'utilisateur sélectionné (là je donne pas le mien)";

$base = "le nom de la base que vous avez créé (yearll_forum pour l'exemple)";

$tabutil="utilisateur";$tabmess="messages"; Ca N'Y TOUCHEZ PAS A MOINS QUE VOUS AYEZ
MODIFIE LE NOM DES TABLES LORS DE LA CREATION.


Voilà, normalement avec ça, ça marche






 Conclusion

J'attend vos remarques, commentaires, suggestions, conseils et modifications...

Je sais pas quel niveau mettre :(


 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


 Sources de la même categorie

SONDAGE - VOTE - POLL (AVEC MYSQL) par hornet_bzz
Source avec Zip Source avec une capture CRAYONPRO EST UN CMS SIMPLE EN PHP ET MYSQL - INSTALLATION E... par crayoncie
Source avec Zip Source avec une capture LISTENGEN GÉNÉRATEUR DE FICHIER PLAYLIST par AGG
Source avec Zip IP CALCULATOR par X_Cli
Source avec Zip Source avec une capture WHOIS DOMAIN CLASS : LOOKUP & AVAIBILITY par aKheNathOn

Commentaires et avis

Commentaire de yearll le 13/12/2003 13:18:51

j'espère que ça va en intéresser quelques-uns, j'aimerais bien avoir un avis extérieur

Commentaire de wafwaf le 13/12/2003 17:42:29

c'est joli ! mais un readme n'aurait pas été de trop, après 10 minutes de galère j'ai toujours pas réussi à le faire fonctionner..........je laisse tomber

alors pourquoi débutant ?
niveau = expert professionel confirmé bac +12 =)

Commentaire de yearll le 13/12/2003 17:57:43

Ok, je fais un readme, dés que j'ai le temps...

Sérieux, je suis pas un expert, loin de là, ma question n'est pas un signe de fausse modestie, j'y ai juste passé un max de temps

Commentaire de yearll le 13/12/2003 18:23:31

ayé ya1 readme, c'est plus clair comme ça j'espère.

Commentaire de flashfun le 14/12/2003 11:37:34

Stp, corrige tes pages, pour la dernière version de php.
J'ai commencé, mais je n'ai pas le temps, donc je ne peut même pas voir à quoi ressemble un message.

Dans tes table, tu aurais pu inséré un utilisateur "test" et des messages testes pour que l'on puisse plus rapidement voir si tout fonctionne.

Commentaire de yearll le 15/12/2003 12:32:54

voilà, c'est fait

Commentaire de flashfun le 15/12/2003 20:15:04

Le contenu de tables_forum.sql n'est pas correct,
- les tables n'ont pas de clés (ça c'est peut être normal)
- les créateur de table sont faux.

Commentaire de wafwaf le 15/12/2003 20:51:16

rien compris au nouveau .sql
tu insert plus de champs qu'il en existe ?
(6, 'admin', 'adm', 'in') pour 2 champs
et (0, 0, 'premier sujet', 'premier message du premier sujet', 1071249316, 1) pour 4
sinon si je tiens pas compte de ce nouveau .sql, il y a une erreur lors d'une tentative de post... ligne 56 de insert.php j'ai remplacé elseif par if, et maintenant j'ai ce message d'erreur:
Parse error: parse error, unexpected T_CASE in c:program fileseasyphpwwwscriptsforum2insert.php on line 73

Commentaire de yearll le 16/12/2003 10:15:20

Un nouveau tables_forum.sql:
Pour les clés, Id_utilisateur est est une, pour les messages, c'est le couple numthread nummessage, flashfun une suggestion ?

Le fait de créer un utilisateur dont l'identifiant est 6, c'est pas un problème, par contre le message pour l'utilisateur 4 peut en être un... J'ai corrigé ça

create Table utilisateur(
login char(50),
password char(50)
);

create Table messages(
numthread int,
nummessage int,
titrethread char(50),
contenu char(250)
);

INSERT INTO `utilisateur` ( `User_Id` , `Name` , `login` , `password` )
VALUES (
'', 'utilisateur test', 'util', 'tst'
);
INSERT INTO `utilisateur` ( `User_Id` , `Name` , `login` , `password` )
VALUES (
'', 'utilisateur test', 'util', 'tst'
);


INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
0, 0, 'premier sujet', 'premier message du premier sujet', 1071249316, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
0, 1, 'premier sujet', 'second message du premier sujet', 1071249626, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
0, 2, 'premier sujet', 'troisième message du premier sujet', 1071249849, 0
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
1, 0, 'second sujet', 'premier message du second sujet', 1071251066, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
1, 1, 'second sujet', 'second sujet du second message', 1071254152, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
2, 0, 'troisième sujet', '3s 1m', 1071271585, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
2, 1, 'troisième sujet', '3s 2m', 1071272522, 1
);
INSERT INTO `messages` ( `numthread` , `nummessage` , `titrethread` , `contenu` , `date` , `num_auteur` )
VALUES (
2, 2, 'troisième sujet', '3s 3m', 1071272684, 0
);



Le code de insert.php...
Je sais pas si ça marche mieux, wafwaf tiens moi au courant.


<?
include ("./header.php");

if (empty($_COOKIE['identifie']) || (!$_COOKIE['identifie']))
  print "<script language = "javascript">alert("L'utilisateur n'est pas identifié !");window.location="./log.html";</script>";

include ("./connect.php");
$connexion = mysql_connect($serveur, $log, $pass);
mysql_select_db($base,$connexion);
if (array_key_exists("s", $_POST))
    $s = $_POST['s'];
else
    $s = $_POST['tit'];

$selnumThread = "select numthread from $tabmess where titrethread = "$s";";


switch ($_POST['parent']=="rep"){


case (true):{ // ON VEUT RÉPONDRE À UN THREAD
   if ($_POST['envoyer'] == 'Répondre'){
        $result = mysql_query($selnumThread,$connexion);
if ($result==false)
            print "<script language = "javascript">alert("La table est vide");window.location="./addTh.php";</script>";
        else
            $tab = mysql_fetch_row($result);
        $nummes = "select numMessage from $tabmess where numthread = $tab[0];";
        $result = mysql_query($nummes,$connexion);
        if ($result == false)
            print "<script language = "javascript">alert("Erreur de connexion");window.location="./addRep.php";</script>";
        else
            $num = mysql_num_rows($result); // le N°du message à entrer

        /* Entrée du message dans la base  */
if ($_POST['txt'] == ""){
print "<script language = "javascript">alert("Le message est vide");window.location="./addRep.php";</script>";
    }
else{
       $datajou = time();
       $login2 = $_COOKIE['login2'];
       $selaut =  "select User_Id from $tabutil where login = "$login2";";
       $nauteur = mysql_query($selaut,$connexion);
       $nauteur = mysql_fetch_row($nauteur);
       $txt = $_POST['txt'];
       $entrmes = "insert into $tabmess
          (numthread, nummessage, titrethread, contenu, date, num_auteur)
    values($tab[0], $num, '$s', '$txt', '$datajou', '$nauteur[0]');";
     $retour = mysql_query($entrmes,$connexion);
       if ($retour == false)
            print "<script language = "javascript">alert("Erreur de connexion");window.location="./addRep.php";</script>";
else{
            print "<script language = "javascript">confirm("Enregistrement effectué");window.location="./tst2.php";</script>";
        }
}
break;
}elseif ($_POST['envoyer'] == 'Afficher le dernier message'){
/*-----------------------------*/
$_SESSION['titr'] = $_POST['s'];
print "<script language = "javascript">window.location="./addRep.php";</script>";
print "rien";
/*-----------------------------*/
}elseif ($_POST['envoyer'] == 'Afficher ce sujet'){
/*-----------------------------*/
$_SESSION['titr'] = $_POST['s'];
print "<script language = "javascript">window.location="./affich.php";</script>";
/*-----------------------------*/
}

break;


}
case (false):{ // ON VEUT AJOUTER UN NOUVEAU THREAD
$selnumero = "select distinct titrethread from $tabmess;";
     $result3 = mysql_query($selnumero,$connexion);
     $nblign3=0;
     if ($result3==false)
           print "<script language = "javascript">alert("La table est vide");window.location="./addTh.php";</script>";
             else{ // VERIF D'UNICITÉ DES TITRES
$res3=array();
$unique3 = true;
$k3=0;
$nblign3 = mysql_num_rows($result3);
for ($i3=0;$i3<$nblign3;$i3++){
$resul3 = mysql_fetch_row($result3);
if ($resul3[0] == $_POST['tit'])
$unique3 = false;
}
if ($unique3 == false)
print "<script language = "javascript">alert("Ce titre de thread existe déjà !");window.location="./addTh.php";</script>";
else {
     /* Entrée du thread dans la base  */
     if ($_POST['tit']==""){
       print "<script language = "javascript">alert("Le titre est vide");window.location="./addTh.php";</script>";
          
                   }

     if ($_POST['txt'] == "")  {
     print "<script language = "javascript">alert("Le message est vide");window.location="./addTh.php";</script>";
                 }
     else{

                    $datajou = time();
                    $login2 = $_COOKIE['login2'];
                    $selaut =  "select User_Id from $tabutil where login = "$login2";";
                    $nauteur = mysql_query($selaut,$connexion);
                    $nauteur = mysql_fetch_row($nauteur);
                    $tit = $_POST['tit'];
                    $txt = $_POST['txt'];
        $entrth = "insert into $tabmess
                     (numthread, nummessage, titrethread, contenu, date, num_auteur )
                      values($nblign3, 0, '$tit', '$txt', '$datajou', '$nauteur[0]');";
     $retour = mysql_query($entrth,$connexion);
     if ($retour == false)
                 print "<script language = "javascript">alert("Erreur de connexion");window.location="./addTh.php";</script>";
     else{
                         print "<script language = "javascript">confirm("Enregistrement effectué");window.location="./tst2.php";</script>";
                     }
      }
}
}


}
}
?>
</body>
</html>

Commentaire de yearll le 16/12/2003 10:16:17

en tous cas, merci à tous les 2 de vous pencher sur mon forum :)

Commentaire de flashfun le 16/12/2003 23:28:19

Les 2 create Table sont inutilisable, je te consiel d'exporté la structure de tes table avec phpmyadmin, car tu ne semble pas savoir créer un create table.

Tu doit undiqué dedans, quel sont les clés primaire, les clés externe, si il sont Null ou non null, ...

Modif aussi le fichier à télécharger, pour que ce soit plus facile pour tous le monde.

Je suis aussi en train de faire un forum en intranet dans mon iut, et je cherche de bonne idée pour le faire moi même, le tiens semble avoir de bon trucs mais pour l'instant il ne fonctionne pas chez moi.

Commentaire de yearll le 17/12/2003 00:06:44

Ce forum fonctionne en local sur mon ordi, et chez multimania (je l'ai mis là pour avoir un herbergeur gratuit fournissant un serveur SQL).

Donc, je pense que les clés ne sont pas indispensables, sauf bien sûr pour avoir une structure de base de données dans les règles de l'art.

Merci d'y aller doucement sur ton jugement, je crois savoir créer un create table suffisant pour faire fonctionner ce forum :) .

Ensuite, si mon forum ne fonctionne pas chez toi, je suis prêt à tenter des modifications ou des corrections, mais à toi de me dire ce qui ne fonctionne pas.

Commentaire de yearll le 17/12/2003 00:43:24

Bon, comme j'ai mis cette source pour avoir des suggestions et des remarques, je me fais un devoir d'en tenir compte, alors j'ai fais la mise à jour, les fichiers create_table.sql et insert.php y sont, par contre, désolé mais pour les clés, j'ai vraiment pas décelé l'utilité dans l'application telle qu'elle est pour l'instant, alors plus tard peut-être.

(et j'ai même rajouté l'entête de phpmyadmin pour te montrer flashfun que les clés ne sont pas absolument nécessaires).

Allez, toujours zen :)

Commentaire de yearll le 17/12/2003 01:10:24

remodif, cette fois en mettant les clés, pour que ce soit plus propre et parceque ça ne coûte rien de les mettre, du coup, la partie de mon post précédent addressé à flashfun ne veut plus rien dire...

Mais je suis sûr que ça va lui plaire.


Commentaire de iubito le 17/12/2003 19:41:18

1) dans le titre je lis : "...MAIS DE CONCEPTION UN PEU DIFFÉRENTE DE CEUX QUE L'ON VOIT GÉNÉRALEMENT"

Je n'ai pas téléchargé... Qu'y a-t'il de différent, original? tu ne dis pas dans le commentaire sur cette page.... dommage.


2) je vois dans un message + haut que tu met du code. Evite, le site est buggé et les backslashes ne passent pas bien
test  re test \ blabla \ ...

Commentaire de yearll le 17/12/2003 19:51:10

Merci pour l'info, je ne mettrai plus de code dans les commentaires, de toute façon j'ai mis la source à jour.

Sinon, ce que j'entend par "original" c'est que c'est un forum qui n'est pas un phpbblike, il y en a de plus en plus, et ça m'ennerve.

Ou est l'originalité si tous les forums sonts identiques ?
Une bibliothèque serait bien triste si tous les livres étaient écris avec le même style...

Sinon, autre conception un peu plus sympathique, c'est que les utilisateurs peuvent créer de nouveaux sujets à souhait (je sais c'est pas si original que ça, mais quand même j'aime bien l'idée).

La navigation est nouvelle aussi, j'ai développé ce forum plus comme une application que comme un site "portail"

Allez, maintenant il ne te reste plus qu'à le télécharger et l'installer, ça prend pas longtemps :)

Commentaire de iubito le 17/12/2003 20:05:05

ouais ça prend pas longtemps, mais je vois toujours pas ce qui est vraiment original. Il existe encore beaucoup de forum pas phpbb like.
Si c'est la présentation, met une kpture.

Si tu me dis :
- smileys en tête du message
- gestion smileys et BBcodes très avancé (colorisation syntaxik...:-p)
- affichage message non lus

... bref des trucs normaux pour un forum bien constitué :-p ça sera déjà "original" par rapport aux pauvres forums qu'on trouve de temps en temps.

Mais bon au bout d'un moment on ne peut plus vraiment faire d'original dans un forum ou un livre d'or... reste plus qu'à le faire bien proprement... alors si on met un titre "original" c'est que vraiment on a eu une idée super novatrice... j'ai pas trouvé là je reste sur ma faim.

Commentaire de yearll le 18/12/2003 09:11:53

- Je vais mettre une capture
- Les smileys c'est en cours, BBcodes je sais pas ce que c'est, je vais peut-être apprendre quelquechose de nouveau
- Affichage messages non lus : c'est fait

- Le faire proprement, je demande que ça, c'est pourquoi j'ai mis cette source sur ce site, pour que des developpeurs d'un bon niveau me dise ce qu'il ne va pas et m'aide à corriger tout ça :)

- Enfin, j'avais pas envie de mettre comme titre "Un forum pourri qui ne vous plaira pas, alors ne regardez pas ma source, je l'ai mis ici seulement pour avoir quelques octets de plus sur le web" :)

Commentaire de yearll le 18/12/2003 09:23:09

Au fait, le titre c'est :

UN FORUM (UN DE PLUS) MAIS DE CONCEPTION UN PEU DIFFÉRENTE DE CEUX QUE L'ON VOIT GÉNÉRALEMENT

Je ne vois pas le mot "original " apparaître ... Et toi ?

Commentaire de iubito le 18/12/2003 09:35:44

non mais "conception différente", on attend que tu explique la différence :-)

Excuse-moi de faire le rabat-joie mais en voyant ce titre on attend de savoir qu'est-ce qui est différent dans la conception (= donc original).

Et aussi une astuce, quand c possible c bien d'avoir un lien pour tester directement l'appli (un forum de test quoi).

Ceci sont des conseils d'un developpeur d'un bon niveau (enfin j'espère :-D)

good coding!

Commentaire de yearll le 18/12/2003 10:22:59

pour un test, aller sur http://membres.lycos.fr/forumtst/

Commentaire de iubito le 18/12/2003 10:46:05

ok je vois... conception différente... ouais :-p
- une page pour lire, et on choisi les message dans un <select>
- une autre page pour répondre, et rebelote les message dans un <select>

ça peut tourner si y'a pas bocou de sujet, mais perso je trouve pas pratique du tout...

Commentaire de yearll le 18/12/2003 11:24:22

ah, merci, enfin une remarque constructive :-)

Bon, c'set pas pratique, c'est sûrement vrai... Mais c'est une conception différente ! (sisi, tu l'as dis lol )
Bon, t'as envie de te pencher dessus un peu plus ou la vue de ce forum pas pratique t'as tout simplement dégoûté ?

Commentaire de iubito le 18/12/2003 11:35:58

euh... je crois que je v pas m'y pencher... un peu dégouté ouais (tu l'as dit ! ;o) lol )

Commentaire de yearll le 18/12/2003 11:49:46

tant pis, merci quand même de t'y être interressé

Commentaire de brice57 le 30/03/2004 23:02:41

dommage effectivement que tu utilises un formulaire pour lire tes messages

concernant l'intérêt d'une clé primaire dans un table, imagine si par hasard 2 utilisateurs insèrent les mêmes noms et mêmes pass....
tu n'as qu'à créer un id_user de type entier avec auto_increment pour pas t'embêter et éviter les plantages inutiles ;)

Commentaire de CEPTA le 27/09/2006 03:28:31

slt, je suis un newbe avec quel programme vs éditer vos php?

Commentaire de econs le 27/09/2006 07:03:19 administrateur CS

Tu peux utiliser Notepad, ou ses dérivés qui proposent une coloration syntaxique.
Mais comme ce n'est que du texte, tu l'ouvriras avec un éditeur de texte, forcément.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 2,371 sec (4)

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