Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FORUM STYLE PHPBB ET AGENDA PERSONNALISÉ


Information sur la source

Catégorie :Base de données Niveau : Débutant Date de création : 12/05/2004 Date de mise à jour : 08/11/2005 17:44:27 Vu / téléchargé: 14 575 / 3 879

Note :
7,63 / 10 - par 8 personnes
7,63 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voilà un petit forum inspiré de phpBB avec certaines fonctionnalités qui lui sont communes. Il y a en plus un agenda personnalisé pour chaque membre, lui permettant d'enregistrer 3 évènements max par jour et affichant le mois en cours et le mois suivant.
 

Source

  • /*
  • tout est dans le zip
  • */
/*
tout est dans le zip
*/

Conclusion

Il y a bien sûr encore des modifs à faire mais je pense qu'à ce stade la source est présentable.
les requêtes de création de la base de données sont ds le fichier forum_BDD.txt
il faut modifier le fichier connec.php pour configurer la connexion à la base mysql.

ps : j'attends vos réactions mais ne soyez pas trop trash svp je ne pratique que depuis 2 mois 1/2 ;-)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

08 novembre 2005 17:44:27 :
MAJ du 8/11/05 suite à un message d'un membre, j'upload la version mise à jour du forum. j'ai fait cette MAJ il y a désormais plusieurs mois, mais sans jamais prendre le temps de l'uploader ici... :s désormais il suffit de créer la base de données et de lancer install.php pour l'installation.

Commentaires et avis

signaler à un administrateur
Commentaire de scoder le 12/05/2004 14:51:35

j'ai oublié d'ajouter que pour se connecter en tant qu'administrateur le login et le pass sont    admin

signaler à un administrateur
Commentaire de Skwal le 13/05/2004 13:13:50

Joli boulot pour un début de forum ;)
Seul problème c'est qu'il n'y a aucune identification pour l'admin. N'importe qui peut donc aller sur admin.php et modifier ce qu'il veut :/

Bon courage pour la suite :)

signaler à un administrateur
Commentaire de expresso630 le 18/05/2004 02:00:47

J'ai remarquer quelle petit problème en testant ton scripts sur une plate-forme Linux, les noms de caractère en majuscule et minuscule ne sont pas pareille sur cette plate-forme. J'ai du renommer chaque fichier en minuscule pour que sa fonctionne. Sinon, ton fichier connec.php a une erreur à la ligne 8, "mysql_connect($host,$user, $pass) or die("impossible de se connecter");//connection à mysql" au lieu de "mysql_connect($host,$user) or die("impossible de se connecter");//connection à mysql" sinon le mot de passe n'est pas pris en compte. Mais bon, a part c'est quelle que petit problème qui mon pris 5 min a coriger, ton scripts est super. Félicitation et continue ;-)

signaler à un administrateur
Commentaire de scoder le 25/05/2004 10:41:51

Merci ;)

Skwal-> effectivement je n'ai pas fait de test sur la page admin mais je vais rapidement corriger ça

expresso630-> j'ai vu que certains fichier avaient été renommés en majuscule et je ne sais pas pourquoi... j'ai utilisé scriptedit pour coder ça mais étant donné que je l'ai fait sur plusieurs ordi dont les configs sont totalement différentes (c'est un projet pour mon bts info gestion), les noms de certains fichiers ont été changés...

Je devrai prochainement faire des mises à jour pour ajouter des modérateurs, des thèmes et si je suis vraiment motivé du BBCode :S

signaler à un administrateur
Commentaire de astrolab le 30/05/2004 16:02:49

Chez moi le calendrier ne marchait pas, j'ai trouvé la solution à la ligne 137 de calendrier.php. Voilà ce que j'ai changé :

........ for ($i=1; $i<=$nbjours; $i++) {


if($i<=9){

$dess="{$an}-{$nmois}-0{$i}";

$result =  mysql_query("select ev1, ev2, ev3 from calendrier where date ='$dess' and num_membre='leloginquevousvoulez");

}else{

$result =  mysql_query("select ev1, ev2, ev3 from calendrier where date ='$dess' and num_membre='$leloginquevousvoulez'");
}

while ($row = mysql_fetch_array($result,MYSQL_NUM)) {...........

Il faut faire pareil pour le mois d'après.
Le problème était que pour $i de 1 à 9 , il n'y a pas de zéro devant.


Merci pour cette source merveilleuse.
je met 8 pour la qualité.

astro
http://roquebergue.free.fr

signaler à un administrateur
Commentaire de scoder le 01/06/2004 09:39:13

Merci astrolab ;)

bizarre que le calendrier ne marchait pas chez toi... :S
enfin si t'as pu le faire fonctionner c cool :)

merci pour la note ça fait plaisir

signaler à un administrateur
Commentaire de linkin4247 le 01/11/2004 15:39:34

Salut, en fait il y a une petite faille pour les profil, si on mets "profile.php?id=3" ben on peut modifier le profil de la personne ayant l'id 3, donc fait une petite correction a ce niveau la :)

signaler à un administrateur
Commentaire de scoder le 01/11/2004 20:48:56

ouep merci :)

d'ailleurs je vais d'ici peu mettre la source à jour, j'ai pas eu bcp de temps mais je vais vite attaquer ça

signaler à un administrateur
Commentaire de stephgphy le 02/05/2005 16:48:47

hello,

félicitations pour ce code. le forum fonctionne très bien mais je ne vois nulle part de calendrier. Ou est-il censé apparaitre?
J'ai essayé la solution de astrolab sans plus de succès.
Avez-vous une idée?

signaler à un administrateur
Commentaire de scoder le 02/05/2005 18:32:11

salut stephgphy,

merci ça fait plaisir si ça plaît :D
en ce qui concerne le calendrier, à la base il doit s'afficher dès la connexion d'un membre, et s'ouvrir en popup. mais c'est un peu lourd et j'ai apporté quelques modifications à mon code de sorte à ouvrir le calendrier via un lien, ce qui est plus comode.
j'uploaderai le code mis à jour avant la fin de la semaine, dès que j'en aurai le temps ;=)

signaler à un administrateur
Commentaire de jadot le 16/08/2005 14:12:31

Salut,

Tres bonne source.
Je commence a apprendre le php et cette source me sera certainement utile.
Seul petite remarque, quand on ecrit un texte le passage a la ligne ne se fait que si on entre des <BR>.
N'y a t il pas moyen de faire comme sur ce site ? c-a-dire que les utilisateurs du forum ne savent pas necessairement qu'il faut ajouter le caractere de passage a la ligne.
J'explore les codes qui utilisent MySql mais je n'en ai encore trouvé aucun qui le faisait.
Peut-etre que ce n'est pas possible ?
Sinon ca fonctionne super bien chez moi.

Bravo.

signaler à un administrateur
Commentaire de monoceros01 le 09/11/2005 04:27:42

Bon... Je me suis "amusé" à lire ta source. Et j'avoue avoir eu quelques surprises...
Je vais te dire ce que j'en pense :

En général, je commence par lire une source par sa base de données que j'ai aisément trouvée (forum_BDD.txt). Puis, je commence les choses dans l'ordre logique, c'est-à-dire, en théorie, index.php.
Et là, malheure de malheure! Pas de index.php... C'est déplorable, mais passons.
Je me rabat alors sur le beau install.php.
J'ai alors parcouru tout ton script en comprenant assez vite ma foie, que le gros ACCUEIL.php était ce qui, à mon sens, aurait dû s'appeler index.php.

J'ai alors relevé plusieurs mauvais points.

Tout d'abord, commençons soft par le HTML. Le tiens est particulièrement moche :
  - Tu ne mets pas de Doctype
  - Tu mets des balises en majuscule (chose inutile et même déconseillée pour des raison de compression de données et parce que ce n'est après tout pas très beau)
  - Tu utilises des balises (<font>,...) et des attributs (bgcolor, align,...) obsolètes. Maintenant on a les CSS ;)
  - Tu ne ferme pas tes balises <br />, <hr />, <img /> et <input />
  - dans admin_fac.php tu vas même jusqu'à mettre des attributs entre ' et non entre "

Ensuite, ton système de fichiers :
  - je te déconseille personnellement de t'amuser a mettre certains fichiers ou dossiers en majuscules et d'autre en minuscules. Je pense qu'il est plus aisé de ne travailler qu'avec des fichiers écrits en minuscules. Ça évite les erreurs.
  - voir un Thumbs.db dans un dossier (IMAGES) je trouve ça pas terrible.
  - les images bmp sont d'un format non compressé. Ça serait bien sur internet de diminuer ne serait-ce qu'un peu le poid d'une page.

Maintenant entrons dans le vif du sujet avec le PHP :
  - Globalement je te reprocherais de méler traitement php et affichage html. Ça rend le code particulièrement difficile à lire et à entretenir. Je préconise d'utiliser des variables et de tout afficher avec un seul echo.
  - Tu utilises des stripslashes et addslashes sans d'abord vérifier si le paramètre de configuration magic_quotes_gpc est à 1 (ce qui voudrait dire que les variables renvoyé par des formulaire sont échappées)
  - Tu ouvres tes tags php avec <? au lieu de <?php qui est préférable.
  - Tu utilises à plusieurs reprise une boucle while pour afficher les résultats d'une requête qui n'en retournera jamais plus d'un. (accueil.php ligne 97, forum.php ligne 37, post.php ligne 28, profilem.php ligne 13, titre.php ligne 69)
  - Tu utilises souvent dans ton admin un javascript de redirection. Mais si l'utilisateur désactive son javascript, il aura accès à toutes les fonctionnalités de l'admin!!! Il est donc préférable d'utiliser header('Location: url ');
  - Tu es souvent inconstant sur la récupération des données envoyées par méthode POST ou GET. En effet, tu ne vérifie pas toujours si elles sont définis (isset()).
  - Tu as mis un saut de ligne avant les tags d'ouverture dans le fichier connec.php et temp.php
  - Tu ne limite pas le nombre total de caractères des champs de tes formulaires, alors que tu le fait dans la base de données... Il faudrait empêcher les dépassements.
  - Ton code n'est pas beaucoup commenté.

Regardons certains fichiers plus en détail :
install.php
  - Il serait bon d'utiliser les insertions mutiples au lieu de faire plein de requête d'insertions.
  - les mots de passe des membres ne sont pas cryptés!!!! C'est très mauvais, ça veut dire que tu peux connaître le mot de passe de tout tes membres. C'est limite de l'atteinte à la vie privée pour moi (bon ok je pousse un peu, mais tu vois l'esprit)
  - je verrais plutôt un DATETIME au lieu d'un DATE pour les post (l'horaire du post peut être utile =) )

accueil.php
  - tu mets des if($mid == 0) et if($mid == 1) un peu de partout. Il serait mieux de tous les regrouper selon moi.

calend.php
  - à quoi sert de vérifier la valeur de $jeu, puisque tu lui donne 1 quelques lignes plus tôt?

calendrier.php
  - ligne 94 à 99 : il suffit d'utiliser date("t"); pour avoir le nombre de jours du mois.
  - je trouve que tu te prend beaucoup la tête pour pas grand chose. Personnellement j'aurais fait  :
<?php
include('connec.php');
# Récupération du numéro du premier jour du mois
$first_day = date("N", mktime(0,0,0,$nmois,1,$an));
# Récupération du nombre total de jour dans le mois
$nb_day = date("t");

# Création de la matrice du calendrier
# Un calendrier peut avoir au maxium 42 cases
# (Si le premier jour commence à la dernière case de la première ligne et que le mois à plus de 30 jours,
# ça fait un total de 6 lignes. Donc 6×7... )
for($i=1; $i<=42 $i++)
{
$day_of_month = $i+1-$first_day;
$matrix = ($day_of_month < 1 || $day_of_month > $nb_day) ? $day_of_month : "&nbsp;";
}

# Récupération de la liste des événements et création d'un tableau (Array) de la forme :
# $event['2005-11-07'] = '<br />Anniversaire de Paulette<br />Je me suis gratté la tête</br />C\'est la fête' ;
$query = 'SELECT ev1, ev2, ev3, date FROM calendrier WHERE num_membre=".$mid." ORDER BY date ";
$result = mysql_query($query);
while($data = mysql_fetch_array($result))
{
$event[$data['date']] = ($data['ev1'] !== '') ? '<br />'.$data['ev1'] : '' ;
$event[$data['date']].= ($data['ev2'] !== '') ? '<br />'.$data['ev1'] : '' ;
$event[$data['date']].= ($data['ev3'] !== '') ? '<br />'.$data['ev1'] : '' ;
}

# Création du calendrier
$calendrier = '<table><tr><th>Lundi</th><th>Mardi</th><th>Mercredi</th><th>Jeudi</th><th>Vendredi</th><th>Samedi</th><th>Dimanche</th></tr>';
while(list($key,$val) = each($matrix) )
{
# Début d'une nouvelle ligne si $key = 1,8,15,22 ou 29
$calendrier.= ($key%7 === 1) ? '<tr>' : '' ;
# Affichage du numéro du jour, et de(s) événement(s)
$calendrier.= '<td>'.$val.$event[$an.'-'.$mois.'-'.$val].'</td>';
# Fin d'une ligne si $key = 7, 14, 21 ou 28
$calendrier.= ($key%7 === 0) ? '</tr>' : '' ;
}
$calendrier = '</table>';

# Affichage du Calendrier
echo($calendrier);
?>

exec.php
- ou est l'intérêt
- tu ne l'a même pas protégé contre les non-admins

modif.php
- tu peux faire toutes tes updates en une seule requête.

posted.php
- ligne 31 et 32 : pour enregistrer la date du jour dans un base de données MySQL, il y a la fonciton NOW() ce qui donne :
$query2="insert into post (Msg, Nb_membre, Nb_titre, Date) VALUES ('".$msg."','".$mid."','".$titre."',NOW());";

Enfin, parlons un peu de la structure de ta base de données
Tout d'abord ton système d'agenda :
Je pense qu'il aurait été plus judicieux de faire une table de ce type :
table calendrier :
  - num (PRIMARY KEY)
  - num_membre
  - evenement
  - date
De cette sorte, un membre peut avoir autant d'événements par jours qu'il le souhaite. Et ça évite d'avoir des champs qui ne servent à rien lorsque les membres n'ont pas trois évenements pile à enregistrer.

Sinon je t'avoue être légèrement perplexe sur ta table titre. Mais vu l'heure qu'il est, mes neuronnes n'ont plus le courage d'analyser les requêtes dans lesquelles elle intervient. Mais je pense qu'elle est justifiable :)

En espérant n'avoir pas dit trop de bêtises à cette heure tardive =_=
Bonne nuit!

signaler à un administrateur
Commentaire de scoder le 09/11/2005 15:38:31

comme je le précise plus haut ce code a été fait alors que je ne pratiquais php que depuis 2 mois environ, et c'était il y 1 an 1/2 maintenant.
la mise a jour a de meme été faite il y a plusieurs mois, et je n'avais pas particulièrement envie de me retapper tout le code, même si je suis conscient qu'il y a énormément à améliorer.
perso je ne mettrai probablement plus la source à jour, ça prendrait trop de temps pour finalement pas grand chose puisqu'aujourd'hui si je devais m'y remettre je recommencerais tout simplement un nouveau forum.
merci de t'être attardé sur le code et les erreurs, et de les avoir en partie énumérées. ça aidera certainement les débutants qui passeront par là et auront je l'espère le courage de lire ton commentaire jusqu'au bout.

signaler à un administrateur
Commentaire de monoceros01 le 09/11/2005 15:57:39

Il est pas très long XP

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.