Salut à tous, voila j'ai eu le temps de refaire mon script pour supprimer les erreurs. J'en ai profité pour rajouter deux trois p'tite choses, bonne lecture
Pour commencer je citerais la pensée du maitre des lieux ( La Globule ) :
Ce script n'est pas sécurisé (pas de rejet de non membre ...), Le copier coller ne sert a rien, le principe est de comprendre le fonctionnement pas d'avoir un truc qui risque de fonctionner :)
[color=red]
Préalable :[/color]
Je suppose que vous utilisez une table
membre qui contient au minimun les champs :
id et pseudo.
Je suppose aussi que vote espace membre repose sur les sessions (voir le
comment faire et le
cour associé).
Je suppose aussi que lors de la connection du membre vous enregistrez : l'id du membre dans la variable de session :
$_SESSION['id'] ainsi que le pseudo du membre dans la variable de session :
$_SESSION['pseudo']
Pour commencer :
[list][color=red]
De quoi a t on besoin ?[/color]
[*]1/ Une table qui contient les messages (on l'appele messagerie)
[*]2/ Une page pour lire ses messages : lire.php
[*]3/ Une page pour repondre : repondre.php
[*]4/ Une page pour envoyer : envoyer.php
[*]5/ Une page pour supprimer : del.php
[/list]
Bien sur les points 2 ->5 peuvent se faire sur la meme page :) (j'utilise 5 pages par souci de simplicité et de clareté)
[color=red] 1/
La table[/color]
[list]La base doit contenir
[*] l'id du sujet
[*] l'id du posteur
[*] l'id du destinataire
[*] le sujet du message (titre)
[*] le message
[*] la date
[*] un champ lu (1 si oui 0 si non)
[/list]
Structure de la table membre :
CREATE TABLE membre (
id int(6) NOT NULL auto_increment,
pseudo VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)type=MyISAM;
Structure de la table messagerie :
CREATE TABLE messagerie (
id int(6) NOT NULL auto_increment,
id_posteur int(6) NOT NULL,
id_destinataire int(6) NOT NULL,
sujet varchar(255) NOT NULL,
message text NOT NULL,
date datetime NOT NULL,
lu int(1) NOT NULL,
PRIMARY KEY (`id`)
)type=MyISAM;
Voilà pour la table, on passe aux fichiers
[color=red]
Le fichier lire.php[/color]
[list]Que doit contenir ce fichier
[*] L'affichage d'une liste avec les titres pour selectionnner le message a lire
[*] L'affichage du message sélectionné
[/list]
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1649]ce lien[/lien])
[color=red]
Le fichier envoyer.php[/color]
[list]Que doit contenir ce fichier
[*] Un fomulaire pour entrer le message, le titre et le destinataire
[*] Le traitement du formulaire
[/list]
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1650]ce lien[/lien])
[color=red]
Le fichier repondre.php[/color]
[list]Que doit contenir ce fichier
[*] Un formulaire permmettant d'entrer le message de réponse
[*] Le traitement du formulaire
[/list]
On arrive avec l'id du message au quel on répond, on commence par afficher ce message puis une textarea pour le texte de la reponse (On affiche ausi le titre du message dans la barre de titre de la fenetre)
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1651]ce lien[/lien])
[color=red]
Le fichier del.php[/color]
[list]Que doit contenir ce fichier
[*] Le traitement de la suppression des messages :)
[/list]
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1652]ce lien[/lien])
Le fichier config.php de base pour faire fonctionner tout sa :)
[list]Que doit contenir ce fichier
[*] La connection à la base mysql
[*] Un session_start() pour lancer la session
[/list]
<?php
//permet d'ouvrir la session pour simuler l'espace membre (a vous de faire suivant votre script)
session_start();
/*------------------------------------------*/
/* Connection a la base --------------------*/
/*------------------------------------------*/
$base=mysql_connect('localhost','root',''); //parametre par defaut en local (easyphp,wamp et meme l'install préconisé par La Globule :) )
mysql_select_db('messagerie',$base) or die('Erreur connection à la base :'.$base.''.mysql_error());
?>
Que faire en plus ?
Vous pouvez ajouter une gestion de smileys et de BBCODE, donner un aspect plus sympatique a cette messagerie, remplacer le oui ou non de la page lire.php par une petite image et bien d'autres choses aux quels je n'est certainement pas pensés
....
Le code est fonctionnel, je l'espère assez bien commenté et qu'il pourras aider tous ceux qui ce pose plein de questions sur les messsageries internes.
Cette messagerie permet l'envoie de message a plusieurs destinataire (en mes separant par un ; dans le champ destinataire).
J'ai dis que ce script est fonctionnel car l'affichage est basique (meme assez laid) et qu'il n'est nullement " sécrisé ". Pour cela il faut ajouter dans
le fichier config.php (inclus en haut de chaque page) votre script de sécrurité permettant de rejeter les non membres.
Je précise que je suis partisant du 0 HTML dans les saisis utilisateurs d'où la
strip_tags lors de l'insertion de celle ci dans la bdd.
Tout ce qui ressemble a une balise html sera supprimer du message, vous pouvez contourner cela en utilisant à la place des fonctions telle que
htmlspecialchars() et
htmlentities().
Je m'excuse pour l a première version complétement pourris !!! Celle ci fonctionne parfaitement (dans les limites que je me suis fixé et qui sont indiquées au début)
J'espère que vous ne vous êtes pas perdu ni assoupi en lisant tout se charabia
Pour ceux qui souhaite voir ce que cela peut donner ils peuvent télécharger
ceci. C'est un daforum au quel j'ai ajouté une messagerie (l'affichage n'est top je sais).
amusez vous bien @+