| |||||
| 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 ? |
| Aperçu |
|---|
| 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 | comme tout logiciel programmé....
il faut un algo. |
| oloide |
|
| 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 |
|
| 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 |
|
| 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. |




