Statistiques| Inscription| Espace privé
Développement Web
Accueil > PHP/MySQL > Un forum
Le plan Les galeries
Dernière mise à jour :
vendredi 15 mai 2009
Contact
Webmestre
olivier ramos
ParamSPIP
Agenda
<<   Mai 2019   >>
Lu Ma Me Je Ve Sa Di
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2



FORUM PHP/MySQL
On présente ici un exemple de forum entièrement écrit en PHP/MySQL. Par souci de cohérence avec l’intitulé de la rubrique, on n’a pas utilisé de JavaScript (ce qui aurait simplifié les choses pour les cadres qui apparaissent et les images).
 
 
 
 
FORUM PHP/MySQL
On présente ici un exemple de forum entièrement écrit en PHP/MySQL. Par souci de cohérence avec l’intitulé de la rubrique, on n’a pas utilisé de JavaScript (ce qui aurait simplifié les choses pour les cadres qui apparaissent et les images).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Cliquez sur l’un des liens pour accéder au forum en "plein écran".
 
lire la suite de l'article
 
 
 
 
Un forum
 
 
 
 

Pour installer le forum dans l’un de vos articles, il vous faut suivre la procédure suivante.

Vous téléchargez les fichiers associés au forum (l’intégralité de ces fichiers se trouve dans le fichier forum.zip)

Vous créez un nouvel article dont le corps de texte est vide. Vous le validez de façon à ce que l’on attribue un identifiant à l’article ainsi obtenu.

Ensuite vous créez le répertoire associé à cet article en utilisant le bouton prévu à cet effet, et vous y uploadez tous les fichiers php et css que vous aurez obtenus après décompression de forum.zip. Puis vous créez le sous répertoire nommé logos qui sera préfixé automatiquement et deviendra dir_logos.

Enfin, vous écrirez index dans le champ portant le nom "Nom du script PHP principal (sans extension)".

Vous n’écrirez rien dans les champs portant les noms "Nom du script js principal (sans extension)" et "Nom du fichier CSS (sans extension)" ; l’appel des feuilles de style est différencié selon les navigateurs et se fait dans les divers scripts php.

Le code html vide  :

 

La création du répertoire et l’upload  :

Le remplissage des champs :

 

 
 
 
 
 
Utilisation
 
 
 
 

La procédure d’installation se lancera la première fois que vous allez lire l’article associé aux divers fichiers du forum (en suivant la procédure décrite précédemment).

Vous devez alors :

- entrer les identifiants de connexion à la base de données,

- choisir le login et le mot de passe correspondant au futur administrateur et éventuellement le mot de passe du forum.

Ensuite, il suffit de vous connecter en tant qu’administrateur pour :

- avoir accès à la partie privée et pouvoir ainsi configurer le forum (le nombre de forums, les logos, les titres,...),

- pouvoir effectuer la modération (a priori ou a postériori) des messages.

Enfin, en ce qui concerne les utilisateurs : ils doivent s’inscrire (ou se connecter si l’inscription a déjà été faite) pour pouvoir poster des messages.

 
 
 
 
 
Architecture du code
 
 
 
 


Partie publique

 Le fichier principal est nommé index.php. Sa première tâche est de déterminer l’éventuelle présence du fichier de configuration nommé forumdefcondb.inc. Ce fichier définit des constantes php qui sont les identifiants de la base de données ; il est créé lors de la première installation.

Deux cas se présentent alors :

- le fichier forumdefcondb.inc n’existe pas. On propose alors le formulaire d’installation qui permet de récupérer ces identifiants puis on appelle le fichier de création de tables creertable.php. Ensuite on écrit ces identifiants dans le fichier forumdefcondb.inc puis on lance le forum à l’aide du fichier entete.php.

 - le fichier forumdefcondb.inc existe. On lit les identifiants et on lance le forum à l’aide du fichier entete.php en ayant éventuellement demandé le mot de passe d’accès au forum.

Le fichier entete.php permet :

- de se connecter à la base de données,

- d’effectuer l’affichage du menu,

- de déterminer le type de page à afficher par lecture de l’url (ou dans certains cas par lecture d’une variable POST) ; plus précisément :

- la page d ’accueil générale avec l’appel du fichier accueil.php,

- la page d’accueil des forums avec l’appel du fichier accueilforum.php,

- une page de forum avec l’appel du fichier forum.php,

- une page de fil de discussion avec l’appel du fichier fil.php (qui permet la lecture récursive d’un arbre de messages à l’aide de la fonction située dans le fichier fonction.php

- une page permettant d’écrire un nouveau fil de discussion avec l’appel du fichier ecrire.php.

 

Les autres fichiers php sont de "moindre importance" :

- effacelogo.php qui permet d’effacer les logos résiduels,

- effacelogoinstall.php qui permet d’effacer tous les logos lors d’une réinstallation,

- initsessionlogo.php qui récupère les numéros des logos présents dans la base de données,

- pied.php qui clôt les pages ouvertes avec le fichier entete.php,

- relance.php qui efface le fichier forumdefcondb.inc et relance l’installation

 

Partie privée

La partie d’administration du forum est gérée à l’aide de fichiers extérieurs à SPIP. Le fichier principal est le fichier admin.php qui permet de s’aiguiller :

- soit sur la page de configuration de la page d’accueil (fichier adminaccueil.php),

- soit sur la page de configuration des forums (fichier adminforums.php),

- soit sur la page de modération des messages (fichier adminmessages.php) ; cette modération est rendue possible grâce à l’appel récursif des fonctions situées dans les fichiers fonctionef.php et fonction.php , (elle peut aussi s’effectuer dans la partie publique sur une page fil en tant qu’administateur).

 

Les autres fichiers php sont de "moindre importance" :

effacelogoprive.php qui permet d’effacer les logos résiduels,

- initsessionlogo.php qui récupère les numéros des logos présents dans la base de données,

- logo.php qui permet l’upload d’images.

 
 
 
 
 
Remarque
 
 
 
 

Comme le forum utilise des règles de style distinctes selon les navigateurs, on a gardé la structure d’une page html pour les fichiers index.php et entete.php (pour différencier les appels entre les balises <head> et </head> ).

La page de forum n’obtient donc pas la validité W3C.

 
 
 
 
 
Document(s) joint(s) :
forum.zip
Descriptif : tous les fichiers relatifs au forum.