[ Projet Personnel ] Développement d'un forum

VaN
Mammouth du PHP | 1107 Messages

26 sept. 2005, 13:51

Bonjour à tous,

donc voilà, je me lance dans le développement d'un forum, genre phpBB. (me demandez pas "mais pquoi, vu que phpBB existe déjà ? ", c'est pour ma satisfaction personnelle, et pquoi pas proposer une alternative a phpBB)

Alors je viens prendre conseil auprès de la communauté phpfrance.

- Tout d'abord, quelles sont les choses auxquelles il est important de penser avant de commencer le développement ?

- Le BBcode est t'il libre de droit ? Reprendre le système de balise [balise] [/balise] est t'il considéré comme du plagiat ? (pour le moment j'ai choisi d'utiliser FCKeditor pour l'editeur de texte, mais peut-etre que je vais changer)

- Comment marche le système de notification des topics non-lus ou avec des nouveaux posts ? Je parle du système qui affiche une image de couleur à coté d'un topic qui a reçu des nouvelles interventions depuis notre derniere lecture. je n'arrive pas a du tout a m'imaginer comment cela marche.

- sur le meme sujet, comment fait-on pour avertir qu'un utilisateur a un message non lu dans la boite à MP ?

- Ou peut on trouver le systeme qui génère aleatoirement une image de code de confirmation comme on en voit partout sur les formulaire d'inscription mtnt, pour empecher les bot de créer des comptes ?

- Comment afficher un liste des personnes actuellement connectées ? Il suffit juste d'afficher tous les $_SESSION['login'] qui existent à un instant t ?

- Comment marche le systeme de confirmation d'inscription par mail ? Comment se génère la chaine caractère en fin d'url ds le mail ? Que faire après avoir cliqué sur cette url ?

Pour le moment je crois que c'est à peu près tout ce qui me turlupine, j'agrementerais ce post de nouvelles questions si besoin est.

Merci a tous.

ViPHP
pjl
ViPHP | 2119 Messages

26 sept. 2005, 14:02

aucune question sur la base de données alors que c'est quand même le point de départ ?

VaN
Mammouth du PHP | 1107 Messages

26 sept. 2005, 14:06

Pour la base de données, je penses avoir à peu près les idées claires.

Une table avec les rubriques, une table avec les topics, une tables avec les posts.
les posts ont une ID de topics, les topics ont une ID de rubriques. Les posts ont egalement une ID de user, pour afficher les infos du posteur (edit : après relecture, je m'aperçois que je fais de la rime sans le vouloir :lol: ). Pour moi la base de la bdd doit ressembler à ça. Après y'a tout les petits trucs en plus, genre la boite à MP.

d'autres choses à savoir concernant la base de données ?

ViPHP
pjl
ViPHP | 2119 Messages

26 sept. 2005, 14:09

regarde sur le site de Cyrano, y'a pas mal de trucs expliqués à propos de la création de forum.

VaN
Mammouth du PHP | 1107 Messages

26 sept. 2005, 14:46

je viens de lire tout le journal de création de son jem-forum. mais j'ai cru comprendre qu'il a commencé ce forum quand il était encore 'novice' en php. Il y'a cependant quelques trucs utiles.

Mammouth du PHP | 19672 Messages

26 sept. 2005, 21:56

Tout juste: le jemforum est mon premier vrai script et j'ai appris les bases du PHP en le faisant. Mais il fonctionne toujours: bon, je vous accorde que l'interface est à ch*** mais les bases fondamentales d'un forum sont là. Le journal explique quelques détails auquels il faut penser. Les problèmes de sécurité. Quant à ta base de données, je ne saurais trop te recommander vivement de la modéliser. Si tu as quelques connaissances basiques en MERISE, utilise les à fond, ça vaut vraiment la peine. Quand j'ai créé le jem forum, je ne savais même pas faire une jointure et j'ai créé la base un peu à l'arrache.

Si je le refaisais aujourd'hui, c'est certain que techniquement il maigrirait pas mal, mais les principes fondamentaux resteraient strictement les mêmes.

J'ai également ajouté un truc qu'on ne voit habituellement que sur des scripts du calibre de phpBB : une installation automatisée. Je suis en effet parti du principe suivant : celui qui cherche un script ne connait pas forcément le code et n'a peut-être même pas ce genre d'intérêt parmi ses préoccupations: lui dire d'aller éditer un fichier de configuration à la main, c'est pas une bonne idée.

Bon courage :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1776 Messages

26 sept. 2005, 22:11

Juste une chose à dire: Bonne chance :wink:

VaN
Mammouth du PHP | 1107 Messages

27 sept. 2005, 11:13

le fichier d'install automatique est fini : ) avec un script a la phpBB qui supprime le fichier une fois l'installation terminée. La chose a laquelle je n'avais pas pensé et que j'ai lu dans ton journal est la différenciation des tables 'nouveau sujet' et 'réponses'. si je n'avais pas lu ça, j'aurai surement tout regroupé dans une seule table, ce qui m'aurait compliquer la vie plus tard.

le forum avance à une vitesse incroyable. La navigation est à peu près fini, la liste des membres egalement.
En gros il ne me reste que le module de recherche, la page profil, et le module pour poster (avec un systeme de citation), le systeme de MP + les quelques questions que je soulève dans mon post initial.

Concernant la sécurité, qu'y a t'il à savoir à part le fait d'interdire l'html dans les champs texte ?

Mammouth du PHP | 19672 Messages

27 sept. 2005, 13:22

À propos des deux tables dans le jem-forum, aujourd'hui, je n'en ferais probablement qu'une seule. N'oublie pas un détail, je ne savais pas faire une jointure et j'en faisais sans même savoir que c'en était. J'avais encore moins de notion de l'existence de l'auto-jointure d'une table sur elle-même en ajoutant un champ qui est en quelque sorte une clé étrangère basée sur la clé primaire de cette même table. ;)

Le jem-forum n'est pas un script didactique, c'était surtout mon école de PHP perso, mais je n'ai jamais eu le temps de revenir dessus pour le moderniser un peu :D
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

27 sept. 2005, 21:53

petit probleme de requete :
je souhaite afficher l'ensemble des topic d'une rubrique donnée, classés par date de la dernière reponse de chaque post, de la plus récente réponse à la plus ancienne (le fonctionnement normal d'un forum donc).
<?php
$sql = "SELECT DISTINCT (t.id_topic), t.id_subrub, t.titre, t.texte, t.date, t.id_user, p.date 
FROM forum_topic AS t, forum_post AS p 
WHERE id_subrub=1 
AND p.id_topic=t.id_topic 
ORDER BY p.date DESC";
?>
me renvoie
id_topic id_subrub titre texte date id_user date
1 1 topic 1 dsgf ztz te yetye yetyte ydt yter ty tryru ru yru... 2005-09-29 09:05:24 1 2005-10-26 13:55:04
2 1 topic 2 grgetyh teyrt ytr yr uyu teuy'r u (yru yruryû 2005-09-29 09:07:25 1 2005-10-26 13:24:04
1 1 topic 1 dsgf ztz te yetye yetyte ydt yter ty tryru ru yru... 2005-09-29 09:05:24 1 2005-09-29 09:05:24

un des topic est en double, ce qui fait qu'il s'affiche 2 fois dans ma liste. Pourtant j'ai mit un DISTINCT sur l'id du topic. Comment m'y prendre pour arriver au resultat souhaité ?