Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > PHP > Systèmes complets > Messagerie privée à plusieurs participants > Le système > Préparatifs > Lecture du tutoriel

Préparatifs

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : NL
Note : 13 / 20 (3 votes)
Visualisations : 3 416

Plus d'informations Plus d'informations
Avant de commencer à coder page par page, il vaut mieux que je vous dise de quoi vous aurez besoin. Ce n'est pas grand-chose mais, sans ça, vous ne pourrez rien faire. ^^
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

Configuration et outils nécessaires

Les outils qu'il vous faut



Pour bien comprendre ce tutoriel, il vous faudra beaucoup de réflexion, mais surtout de bonnes bases en PHP. Je n'utilise pas de fonctions sortant du fin fond de la doc, mais il faudra connaître un tantinet le fonctionnement des arrays.
En revanche, vous n'aurez pas besoin d'être un "SQL Beginner ..." (Copyright Shepard :D ), car j'essaierai de vous expliquer du mieux que je le peux les diverses requêtes utilisées.

La configuration nécessaire



Pour la configuration, je pensais à celle de PHP et SQL. Ce qu'il faut :

Je préfère vous prévenir que je ne vais pas m'occuper du système de membres, ce sera à vous de le faire. De toute façon, le système n'a besoin que d'une valeur, l'id du membre qui va sur la page, que j'appellerai $id_membre.


La liste des pages



Tant qu'à y être, voici la liste des pages que nous aurons :


Dans les quatre dernières pages, il ne faudra pas oublier d'inclure le fichier configuration.php.


Configuration.php



D'ailleurs, tant qu'on en parle, cette page contient un tableau des valeurs de configuration. Vous pourrez ainsi modifier facilement votre système.

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
 
$config = array();
$config['nb_max_mp'] = 100; // Nombre maximum de MP
$config['nb_max_mess_mp'] = 30; // Nombre maximum de messages par MP
$config['nb_mp_par_page'] = 20; // Nombre de MP à afficher par page
$config['nb_mess_mp_par_page'] = 10; // Nombre de messages à afficher par page
$config['nb_participants_par_mp'] = 6; // Nombre maximum de participants par MP
 
?>


Je préfère prévenir : lorsque j'insère dans la BDD, j'utilise un mysql_real_escape_string sur les variables de texte où il n'y a pas les antislashes.
Lors de l'affichage, je fais un htmlspecialchars(stripslashes($variable)) sur les variables de texte. Pour l'affichage du texte contenant des retours à la ligne, j'utlise un nl2br. (Ne pas le faire lors de l'insertion, donc.)

La création des tables

Il y aura trois tables différentes :


Et aussi une table membres, que je simplifierai au maximum.
D'ailleurs, commençons par la créer.

La table membres



Je n'y mettrai que deux valeurs, membre_id - qui sera en clé primaire et en auto-incrémentation - et membre_pseudo.

Code : SQL
1
2
3
4
5
CREATE TABLE membres (
  membre_id mediumint(8) NOT NULL AUTO_INCREMENT,
  membre_pseudo varchar(50) NOT NULL,
  PRIMARY KEY membre_id (membre_id)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;


Je signale juste que mettre des clés primaires permet un accès plus rapide à un enregistrement particulier de la table.

La table mp_sujets



Cette table contiendra la liste des MP, et n'aura que deux colonnes : mp_id - qui sera en clé primaire et en auto-incrémentation - et mp_titre. Toutes les autres données seront obtenues via les requêtes.

Code : SQL
1
2
3
4
5
CREATE TABLE mp_sujets (
  mp_id mediumint(8) NOT NULL AUTO_INCREMENT,
  mp_titre varchar(50) NOT NULL,
  PRIMARY KEY mp_id (mp_id)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;


La table mp_participants



Ici, il y a aura la liste des participants pour tous les MP. Elle permettra aussi de savoir si le membre a lu ou non le MP, et aussi s'il l'a supprimé. En fait, quand un membre décidera de supprimer un MP, on mettre ce champ à 1, et il n'y aura plus accès. Mais on ne supprimera rien, pour que les autres membres puissent encore y accéder. Si vous pensez que je laisse toutes mes données dans la BDD sans jamais en supprimer, détrompez-vous et attendez de voir la page supprimer.php. ;)

Code : SQL
1
2
3
4
5
6
7
8
CREATE TABLE mp_participants (
  mp_id mediumint(8) NOT NULL,
  membre_id mediumint(8) NOT NULL,
  mpp_lu tinyint(1) NOT NULL DEFAULT '0',
  mpp_supprimer tinyint(1) NOT NULL DEFAULT '0',
  KEY mp_id (mp_id),
  KEY membre_id (membre_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


La création d'index permet d'optimiser les requêtes SELECT. Un index renvoie vers une clé primaire, et il est conseillé de donner aux deux colonnes le même nom et le même type pour plus d'optimisation encore.

La table mp_messages



Celle-ci contiendra la liste des messages de chaque membre pour chaque MP.

Code : SQL
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
CREATE TABLE mp_messages (
  mess_id int(11) NOT NULL AUTO_INCREMENT,
  mp_id mediumint(8) NOT NULL,
  membre_id mediumint(8) NOT NULL,
  mess_temps datetime NOT NULL,
  mess_texte text NOT NULL,
  PRIMARY KEY  (mess_id),
  KEY mp_id (mp_id),
  KEY membre_id (membre_id)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;


Bon, je ne vais pas trop développer. mess_id est l'id du message, mess_temps la date d'envoi (je préfère utiliser un champ datetime plutôt qu'un timestamp) et mess_texte le texte du message.
mp_id contiendra l'id du MP du message, et membre_id l'auteur du message. Ces deux colonnes sont en index, pour permettre, comme tout à l'heure, une optimisation des requêtes SELECT.

Donc ça y est, tout est créé : on peut maintenant commencer à coder.
Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 08/09/2007 à 08:04:36
Modifié : le 22/08/2008 à 15:52:17
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 433 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0301s (0.0194s)