Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5021 connectés 

 


Dernière réponse
Sujet : [php/html] problème de cookie pour un forum fait par mes mains;)
oloide ça marche bien !  
 
c'est quoi ta méthode ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
oloide ça marche bien !  
 
c'est quoi ta méthode ?
Scoubidoo ça y est, je crois que ça marche.
donc sans insérer des données à tout va dans MySQL.
ça a été la galère mais on y arrive....ouf!
oloide

Scoubidoo a écrit a écrit :

comme tout logiciel programmé....
il faut un algo.  




 
oui d'ailleur comme je n'ai aucune notion d'algo, mais script se transforme vite en gros bordel :D

Scoubidoo comme tout logiciel programmé....
il faut un algo.
oloide

Scoubidoo a écrit a écrit :

moua je bosse sur le système de cookie mais c pas simple.....  




 
vranchement, c'est pas trés compliqué : il suffit d'être rigoureux et consciencieux...
 
si tu as des problémes demande !

Scoubidoo moua je bosse sur le système de cookie mais c pas simple.....
omega2 Personellement, je verais plustôt un lancement du script à chaque message posté ou à chaque lecture d'un topic ou a un autre moment de ton choix.
Ainsi, il sera lancé très souvent (bien irrégulièrement). Comme ce script ne fera que lancer une requête SQL, son exécution ne sera pas longue du tout.
oloide tu vois un moyen de créer un script qui fait ça automatiquement tous les 15 jours (car je vois pas comme ça sans réfléchir) ?
omega2

oloide a écrit a écrit :

 
Donc je pense qu'il faut automatiser un nettoyage de la table à intervalles de temps constant patr rapport à la date de création de chaque donné...?!?  




Fait le par rapport à la date de modification des données.
Ainsi, un nétoyage fait au bout de 15 jours (ou autre duré) ne suprimera pas la référence à une discution suivit depuis plusieurs jours.
Sinon, c'est vrai qu'il faut faire un nétoyage assez régulier.

oloide

omega2 a écrit a écrit :

voilà comment je vais faire pour mon forum (pour le moment, je travaille sur la V2 de mon chat)...




 
salut
 
merci, beaucoup car tu m'as beaucoup aidé !
 
j'ai fait une table pour chaque user (inscription maintenant possible) et une table user_sujets ...
au lieux de comparrer les dates, je comparre le dernier id (MAX(id_message)) du sujet consulté par rapport au MAX(id_message) actuel dans un sujet (topic).
 
ça marche vraiment bien : http://www.multimania.com/oloide/forum.php3
 
Mais il reste cependant un petit problème : la taille de la table user_sujets (sujet_topic) va trés vite gonflée et devenir énorme !!!
Donc je pense qu'il faut automatiser un nettoyage de la table à intervalles de temps constant patr rapport à la date de création de chaque donné...?!?

oloide ouais, ben là comme ça en regardant rapidement, je comprend pas grand chose !
 
il va falloir que j'imprime les sources et que je réfléchisse longement dessus !!!
Scoubidoo Non je suis sur qu'on peut faire comme phorum et je sais que ça marche très bien pcq c ce forum que j'utilise encore pour mon site.
Le mien est de plabncher à plusieurs dessus.
saxgard vi mais c ce qui a de plus simple au cas ou  
meme si c spécialement merdicime :D
oloide

Citation :

sinon moin bien , ta la possibilité de dire que les messages datant de plus d'1semaine par exemple , sont des viuex messages


 
bahh ! c'est vraiment moins bien comme solution !

saxgard scoobidoo tres jolie ton forum
 
en ce qui concerne les cookies il me semble que vous n'avez pas le choix , que vous ettes obligé de conecervé des infos des utilisateurs sur la BdD pour au moin y mettre la datede la dernière viste par exemple et apres comparé cele ci au date des differentes message pour afficher le bonne icone   qui va bien ;)
 
du moin je crois c ce que je vais faire au moin pour le miens
 
sinon moin bien , ta la possibilité de dire que les messages datant de plus d'1semaine par exemple , sont des viuex messages
 
@++++
Scoubidoo Omega > non moi la fonction setcookie marche avec free. donc php v3.
 
Oloide > http://www.phorum.org faut regarder les fichiers list.php et read.php. en plus, ya pas utilisateurs en registrés gérés dans phorum.
omega2 Ca marche avec le php3 de free? Je croyais que c'était installer qu'à partir de php4.
oloide un petit lien Scoubidoo pour le code du forum phorum
 
peut être qu'on pourra comprendre ensemble !
Scoubidoo chépo, j'utilise la fonction setcookie... rien de bien extraordinaire.  
Sinon, je viens de regarder ta méthode, c pas mal mais c un peu lourd à gérer.  
Je viens de regarder le code source du forum "phorum" et bien il font tout au cookie et c nickel..... le seul prob c que je comprends pas bien comment ils y arrivent.
omega2 scoobidou > Comment tu fais pour gérer les cookies chez free? J'aimerais que tu m'explique tout ça par ce que là, je sais pas faire moi.
Scoubidoo Merci pour vous réponse....
sinon vous etes allé voir le forum?
omega2 Alors tu peux mettre dans ton cookie un équivalent du userid.
Pour ça, il faut que tu gère un compteur de userid.
 
table compteur
compteurid
valeur
 
incrémentation :
UPDATE compteur SET valeur=valeur+1 WHERE compteurid=1
 
recherche de la nouvelle valeur:
SELECT valeur from compteur
 
Donc, si le numéro d'utilisateur n'existe pas dans le cookie, tu incrémentes le compteur puis tu met la caleur obtenue dans le cookie.
C'est cette valeur là (obtenue soit à partir du cookie soit à partir du compteur) qui va te servir à faire les requêtes sur la table user_topic .
 
Donc, plus du tout besoin d'une table user en fesant comme ça.
oloide ok, c'est trés clair, mais je ne veux pas mettre d'inscription à mon forum donc je n'ai pas de table user.  
 
peut-être que je peut faire une table user avec seulement le pseudo et l'adresse email sans password et donc sans inscription ???
omega2 voilà comment je vais faire pour mon forum (pour le moment, je travaille sur la V2 de mon chat)
 
4 tables :
user
topic
reply
user_topic
 
user contient la liste des utilisateurs et contient les colones suivantes:
userid (integer & autoincrement / unique)
pseudo (char / unique)
passwd (char : mot de passe)
STAMP (datetime : sertà conaitre la date de création)
 
topic contient la liste des topics et contient les colones suivantes:
topicid (integer & autoincrement / unique)
sujet (texte)
nb_rep (integer : nombre de réponse, 0 si juste le sujet initial)
STAMP (datetime : sertà conaitre la date de création)
 
reply contient les réponses des topics et contient les reponses suivantes:
replyid (integer & autoincerment / unique)
topicid (texte : numéro du topic auquel il est rataché)
numrep (integer : numéro de réponse dans le topic, 0 si texte du message d'origine)
STAMP (datetime : sert à conaitre la date de création)
STAMP1 (datetime : sert à conaitre la date de création du denier message)
 
user_topic contient les infos pour savoir si une nouvelle réponse à été posté:
utopicid (integer & autoincerment / unique)
topicid (integer)
userid (integer)
nb_rep (integer : numéro de la dernière réponse consulté)
STAMP (datetime : sert à conaitre la date de création)
STAMP1 (datetime : sert à conaitre la date de création du denier message)
 
 
PS : les requêtes que je vais mettre en exemples sont pour mysql
 
pour savoir si un topic à été consulté, je fais de la manière suivante :
1) je cherche la liste des topics à afficher
SELECT topicid, nb_rep, sujet, STAMP,STAMP1 FROM topic ORDER BY topicid LIMIT 0,30
changer le 0 par : (le numéro de la page-1) * le nombre de topic par page
et le 30 par le nombre de topic par page
 
2) pour chaque topic, je fais la requête suivante :
SELECT STAMP1 FROM user,user_topic WHERE pseudo="toto" and  passwd="tata" and topicid=15 and user.userid=user_topic.userid
attention : il faut remplacer "toto", "tata" et le 15 par les bonnes valeurs les valeur du pseudo et du passwd peuvent être envoyer par un cookie (j'ai jamais utilisé de cookie alors, faudra ce renseigner dessus)
 
3) dans le code, je compare les STAMP1 des deux requêtes
si le STAMP1 de la requête 2<STAMP1 de la requête 1 alors afficher qu'il y a un nouveau message
sinon, pas de nouveau message
 
voilà pour la partie détection des nouveaux messages dans un topic donné
Je vous laisse faire la programmation proprement dite.
Pour cet exemple, j'ai quasiment mis que les donées minimales nécessaires à un forum. Personellement, je vais en mettre plusieurs autres afin d'essayer d'arrivé au niveau du furom d'HFR (beaucoup de boulot en perspective ;)
oloide oulala, tu pourrais pas donner un poil plus de détail SPV ?
 
:sarcastic:
omega2 Une petite idé :
Une table utilisateur/topic vec les zones suivantes :
id d'utilisateur
idé de tiopic
date (ou numéro de réponse ou autre élément perméttant de comparer)
Ensuie, il sufit pour chaque topic revenus de chercher la bonne entré de la table et de comparait la valeur de éféence obtenus avec celle du topic corespondant.
oloide c'est trop fort : je suis actuellement entrain de plancher sur le même problème !!!
 
ma stratégie :  
- sélectionner nom pas la date de la dernière visite pour la comparer avec l'actuelle afin de savoir si les sujets contiennent de nouveaux messages mais plutôt de sélectionner le numéro id maximal de tous les messages pour le comparrer avec le id max de la dernière visite.
 
le probléme c'est que ça marche au premeier chargement de la page du forum. Mais admettons que le visiteur regarde un message et recharge la page principale, tous les messages sont marqué comme n'étant pas nouveaux donc ça va pas !
 
pour bien faire, il faudrait écrire dans le cookie l'id max courant lorsque le visiteur quitte le forum et nono pas à chaque chargement de la page.... et même là, les messages consultés seront identifiés comme étant nouveaux....
 
à suivre donc !
Scoubidoo Voilà, je fait mon petit forum en ce moment.
http://www.lanstadium.fr.st
Mais ya un truc que je sais pas faire.
Comment mettre dans un cookie avec tous les messages qui ont été lu et affiché un new à coté de ceux qui ont pas été lu.
Genre comme dans le forum présence, ou si le dossier est rouge, cela veut dire qu'il y a des nouveaux message et le dossier jaune clair, ça veut dire qu'il y a rien de nouveau.
C'est difficile à expliquer. Si vous pouvez m'aider, ça serait cool.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)