IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage particulier si message non lu


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Affichage particulier si message non lu
    Bonjour,

    J'ai un site avec des messages que je publi de temps à autre. Y as t-il une façon en php de mettre en caractère gras par exemple les nouveaux messages quand un internaute consulte la page ? Quand cette internaute revient une autre fois sur la page, j'aimerais que les messages qui étaient en caractère gras ne soient plus en caractères gras à moins qu'il y aurait eu des ajouts pendant cette période.

    ** A noter que l'internaute ne se connecte pas au site. **

    Merci!

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Personnellement,
    j'utiliserais les cookies.
    Fred

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par jgx342 Voir le message
    Bonjour,
    J'ai un site avec des messages que je publi de temps à autre.
    .......
    Merci!
    Oui le tout est de bien gérer le lien qui va au message
    par exemple il suffit de mettre en bout le nombre d' interventions #xx
    ainsi le lien qui va au message change
    et donc on peut appliquer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a.message {  font-size : 1.40em; color :  #000000;text-decoration: none; font-weight: bold;}
    a.message:link {  color :  #000000;text-decoration: none; font-weight: bold;}
    a.message:hover { color :  #ee5511;text-decoration: none;font-weight: bold;}
    a.message:visited { color :  #000000;text-decoration: none;}
    Bien sur c' est moins fiable que la gestion enbase de données.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    A part les cookie, y a t-il un autre moyen ?

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par jgx342 Voir le message
    A part les cookie, y a t-il un autre moyen ?
    alors la je tombe raide qui t'a parlé de cookies ?
    les cookies ne peuvent pas servir bien sur.
    Seul une base de donnée peut gérer ça

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    alors la je tombe raide qui t'a parlé de cookies ?
    les cookies ne peuvent pas servir bien sur.
    Seul une base de donnée peut gérer ça
    +1 avec fox, en effet je vois mal faire cela avec des cookies surtout su tu affiche 36 message sur une pages etc .... je suis également d'accord pour la base de données cependant nous sommes bien d'accord que si aucun système d'identification n'est mis en place, il n'est pas réelement possible de savoir qui consulte la page et donc d'être certain de faire le bon traitement.

    je m'explique 2 utilisateur utilisant le même pc, comment savoir que l'un à lus les 2 derniers messages alors que l'autre non?

    en tout cas la base de données est la seule réel solution.

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par Vil'Coyote Voir le message
    je m'explique 2 utilisateur utilisant le même pc, comment savoir que l'un à lus les 2 derniers messages alors que l'autre non?

    en tout cas la base de données est la seule réel solution.
    Je ne comprends pas cette remarque. En quoi la base de données résoud elle un problème dans ce cas ?

    Le problème ici est la détection de visionnage, et a mon avis les cookies sont largement la meilleure méthode, ils sont aussi efficace si ce n'est plus que les propriétés des liens css. Cependant, l'utilisation des cookies par le visiteur peut être mal perçue, alors que des liens en couleur sont simplement le fait du navigateur.

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par rbochet Voir le message
    Je ne comprends pas cette remarque. En quoi la base de données résoud elle un problème dans ce cas ?
    Le problème ici est la détection de visionnage, et a mon avis les cookies sont largement la meilleure méthode,
    Peut'étre ne parles tu pas du même probléme que la question posée par
    jgx342 mais imagines que ce que représenerait la gestion par cookies ici des 5000 messages jours sur xxxxx milliers d'inscrits !

    Et réfléchis bien a ce qu'a dit Vil'Coyote si mon fils et moi utilisons le même micro on fait comment

    rappel un seul cookies par micro (par site nom de domaine) pour les données !
    et un également pour la clé ID de session !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Je comprend le principe avec une BD, mais les usagers ne sont pas authentifié au site, donc je vois mal comment utiliser la BD.

  10. #10
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par jgx342 Voir le message
    Je comprend le principe avec une BD, mais les usagers ne sont pas authentifié au site, donc je vois mal comment utiliser la BD.
    salut,
    pour la même raison je ne vois pas l'utilité d'un coockie, et surtout comment indiquer dans le coockie que tel et tel news et non à bien été lus. tu te vois faire un coockies avec 5000 enregistrements? d'ou l'utilisation d'une base de données ou du moins d'un champs supplémentaire pour tes article. ce champs serais alors mis à jour à la lecture de l'article.

  11. #11
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Je suis surpris des réactions de Vil'Coyote et de FoxLeRenard,
    utiliser un cookie ne me paraît pas une telle aberration.

    On peut certainement faire beaucoup mieux avec une BDD,
    mais cela dépend des besoins de jgx342 ?
    Est-ce qu'il souhaite différencier le père et le fils sur le même ordinateur
    (à condition qu'ils aient des paramètres d'authentifications différents) ?
    Est-ce qu'il faut faire une différence entre vu et lu ?
    Quelle quantité de messages a-t-il à gérer (20 ou 5000) ?
    Comment sont-ils gérés (tableau PHP, fichier texte, BDD...) ?
    ...

    En tout cas, en première intention, la piste du cookie me paraît tout à fait raisonnable.

    En effet,
    en stockant la date de dernière visite dans un cookie,
    si, pour chaque message, on connaît sa date de dernière mise à jour,
    lorsqu'un visiteur arrive sur le site,
    en comparant la date dans le cookie et la date de dernière mise à jour d'un message,
    on peut savoir s'il faut afficher ce dernier en gras ou non.

    Cette solution ne s'applique peut-être pas au problème de jgx342 ,
    mais je pense que c'est à lui d'en juger.

    Fred

  12. #12
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par micetf Voir le message
    Je suis surpris des réactions de Vil'Coyote et de FoxLeRenard,
    utiliser un cookie ne me paraît pas une telle aberration.
    Fred
    Salut Fred,
    oui bien sur on peut faire cela, et je me doutais bien que c'était ton idée,
    mais tu sais que lorsque l'on change de page le cookies sera relu ...
    alors deux solutions
    1) tu a gardé son ancienne date et mets en gras tout message plus récent,
    alors quand mets-tu le cookies a jour
    2) ou tu mets le cookies a jours dés la premiére page, alors aucune des pages suivantes ne sera en gras.

    OK on peut ajouter une session mais bon, pas trés fiable tout ça.

  13. #13
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    alors deux solutions
    1) tu a gardé son ancienne date et mets en gras tout message plus récent,
    alors quand mets-tu le cookies a jour
    2) ou tu mets le cookies a jours dés la premiére page, alors aucune des pages suivantes ne sera en gras.

    OK on peut ajouter une session mais bon, pas trés fiable tout ça.
    Dans son message initial,
    sur le sous-forum 'debuter',
    jgx342, parlait de la page.
    Peut-être pourra-t-il préciser s'il doit gérer une seule ou plusieurs pages de messages.

    Néanmoins,
    on peut effectivement envisager le cas où il y aurait plusieurs pages de messages.
    L'utilisation d'une session est une solution,
    mais, s'il n'y a pas 5000 messages,
    l'option cookie me paraît encore possible :
    A chaque message, on associe un identifiant.
    Dans le cookie,
    on stocke la liste des messages affichés (serialize($idMsgVus)).
    Bien sûr,
    il faut prendre garde à nettoyer le cookie
    (supprimer les identifiants des messages qui n'existent plus).

    Voilà,
    ce n'est qu'une solution
    que cgx342 balaiera peut-être d'un revers de main
    en raison de ses priorités fonctionnelles ou
    de ses compétences techniques.
    Quoi qu'il en soit,
    celle-ci ne me paraît pas absurde.

    Fred

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Vu la demande initiale qui n'est de mettre en gras que les nouveaux messages (et non tous les nons encore lus), un cookie ferait bien l'affaire.

    Il suffit d'y enregistrer la dernière date de visite et de comparer et mettre à jour cette date à chaque visite.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Je n'aurai pas plus de 100 messages par page. Je veux juste différencier les messages vu et non vu et non lu et non lu.

    Donc, je pourrais utiliser les cookies en stockant la dernière date de visite. Avez-vous des exemples ? Je vais quand même faire une recherche de mon côté.

    Si un client n'accepte pas les cookies, qu'est-ce qui arrivera ?

    Quel durée dois-je placer pour l'expiration du cookie ?

    Merci.

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Oublie les cookies, puisqu'en fin de compte tu veux avoir une information sur le visiteur de taille indéterminée croissante avec le temps (sérialiser un cookie qui pourrait un jour dépasser 100ko n'est pas pertinent).

    Comme ça a été dit, tu vas devoir gérer des comptes utilisateur.
    Et dans cette optique, tu as intérêt à faire un système de login avec mot de passe.

  17. #17
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Voici un aperçu du code auquel je pensais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    // Création des messages pour le test
    $messages = array();
    for ($i=0;$i<100;$i++) {
    	$j = 31-$i;
    	$messages[] = array(
    		'date'=>strtotime("$j day"),
    		'texte'=>"message $i");
    };
     
    // Récupération du cookie
    $date = (isset($_COOKIE['lastVisite']) && ctype_digit($_COOKIE['lastVisite'])) ? $_COOKIE['lastVisite'] : 0;
    // Ecriture du cookie (valable 2 mois ?)
    setcookie('lastVisite',time(),time()+3600*24*60);
    ?>
    <h1>MESSAGES</h1>
    <table>
    <?php 
    foreach ($messages as $message) {
    	// Utilisation du cookie
    	$style = ($date < $message['date']) ? 'font-weight:bold;' : 'font-weight:normal;';
    ?>
    <tr style="<?php echo $style; ?>">
    <td style="border:1px solid black;"><?php echo $message['texte']; ?></td>
    <td style="border:1px solid black;"><?php echo date("M-d-Y",$message['date']); ?></td>
    </tr>
    <?php 	
    }
    ?>
    </table>
    Mais bon,
    ça c'est si tu as tous tes messages sur une même page.
    Fred

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Oui tous les messages sont sur la même page (max < 100).

Discussions similaires

  1. Affichage d'un message d'erreur en cas de validation non reussi
    Par javalhoussain dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/04/2011, 16h59
  2. [AJAX] Affichage de messages non accentués
    Par dimi2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/07/2008, 19h39
  3. Supprimer l'affichage d'un message d'erreur
    Par delphineleclerc1 dans le forum Access
    Réponses: 2
    Dernier message: 23/02/2006, 09h14
  4. [MySQL] Requete : Affichage particulier
    Par alain31tl dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/12/2005, 19h05
  5. Messages "non lus" qui restent non-lus?
    Par Médinoc dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 6
    Dernier message: 04/11/2005, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo