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

  FORUM HardWare.fr
  Programmation

  [php/html] problème de cookie pour un forum fait par mes mains;)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php/html] problème de cookie pour un forum fait par mes mains;)

n°62500
Scoubidoo
In reblochon we trust
Posté le 01-10-2001 à 21:57:02  profilanswer
 

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.

mood
Publicité
Posté le 01-10-2001 à 21:57:02  profilanswer
 

n°62508
oloide
Posté le 02-10-2001 à 00:07:11  profilanswer
 

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 !

n°62510
omega2
Posté le 02-10-2001 à 00:34:07  profilanswer
 

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.

n°62517
oloide
Posté le 02-10-2001 à 02:03:16  profilanswer
 

oulala, tu pourrais pas donner un poil plus de détail SPV ?
 
:sarcastic:

n°62589
omega2
Posté le 02-10-2001 à 11:48:24  profilanswer
 

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 ;)

n°62619
oloide
Posté le 02-10-2001 à 13:33:27  profilanswer
 

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 ???

n°62702
omega2
Posté le 02-10-2001 à 15:51:38  profilanswer
 

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.

n°62747
Scoubidoo
In reblochon we trust
Posté le 02-10-2001 à 17:45:48  profilanswer
 

Merci pour vous réponse....
sinon vous etes allé voir le forum?

n°62791
omega2
Posté le 02-10-2001 à 21:10:37  profilanswer
 

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.

n°62797
Scoubidoo
In reblochon we trust
Posté le 02-10-2001 à 21:47:13  profilanswer
 

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.

mood
Publicité
Posté le 02-10-2001 à 21:47:13  profilanswer
 

n°62812
oloide
Posté le 03-10-2001 à 00:00:09  profilanswer
 

un petit lien Scoubidoo pour le code du forum phorum
 
peut être qu'on pourra comprendre ensemble !

n°62820
omega2
Posté le 03-10-2001 à 01:53:13  profilanswer
 

Ca marche avec le php3 de free? Je croyais que c'était installer qu'à partir de php4.

n°62836
Scoubidoo
In reblochon we trust
Posté le 03-10-2001 à 09:10:52  profilanswer
 

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.

n°62839
saxgard
Posté le 03-10-2001 à 09:18:07  profilanswer
 

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
 
@++++

n°62923
oloide
Posté le 03-10-2001 à 14:01:32  profilanswer
 

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 !

n°62924
saxgard
Posté le 03-10-2001 à 14:06:10  profilanswer
 

vi mais c ce qui a de plus simple au cas ou  
meme si c spécialement merdicime :D

n°62995
Scoubidoo
In reblochon we trust
Posté le 03-10-2001 à 17:04:42  profilanswer
 

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.

n°63045
oloide
Posté le 03-10-2001 à 22:44:07  profilanswer
 

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 !!!

n°64494
oloide
Posté le 11-10-2001 à 12:05:03  profilanswer
 

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é...?!?

n°64501
omega2
Posté le 11-10-2001 à 12:16:24  profilanswer
 

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.

n°64506
oloide
Posté le 11-10-2001 à 12:26:37  profilanswer
 

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) ?

n°64511
omega2
Posté le 11-10-2001 à 12:33:57  profilanswer
 

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.

n°64535
Scoubidoo
In reblochon we trust
Posté le 11-10-2001 à 13:33:28  profilanswer
 

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

n°64638
oloide
Posté le 11-10-2001 à 19:32:48  profilanswer
 

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 !

n°64643
Scoubidoo
In reblochon we trust
Posté le 11-10-2001 à 20:00:43  profilanswer
 

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

n°64652
oloide
Posté le 11-10-2001 à 21:20:03  profilanswer
 

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

n°65679
Scoubidoo
In reblochon we trust
Posté le 17-10-2001 à 08:18:11  profilanswer
 

ç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!

n°65974
oloide
Posté le 18-10-2001 à 10:12:11  profilanswer
 

ça marche bien !  
 
c'est quoi ta méthode ?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [php/html] problème de cookie pour un forum fait par mes mains;)

 

Sujets relatifs
Probleme d'URLproblème sur access PLEASE j en peux plus !!!
Un probleme de compteur for en php...[kestion rapide]script java => nom dans la page html
problème, les focntions opengl me donnent unresolved external symbol[HTML] Heu c bon ca ?
[PHP] cookie, pas pas changer la valeur[php] pouvez vous tester (la fonction recherche de) mon forum ???
Hébergement PHP + chat pour mon forum[HTML/JS] enregister sous ... grâce à un lien
Plus de sujets relatifs à : [php/html] problème de cookie pour un forum fait par mes mains;)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR