![]() |
Auteur : Atapi Créé : le 16/06/2006 23:58:24 Modifié : le 31/03/2008 22:37:13 Noter et commenter ce tutoriel Imprimer ce tutoriel |


| Temps du post (t1) | Temps de dernière visite (t2) | (t1 < t2) | Attribution |
|---|---|---|---|
15 mai |
18 juin |
TRUE |
Message lu |
19 juin |
18 juin |
FALSE |
Message non-lu |
| Temps du post (t1) | Temps de dernière visite (t2) | (t1 < t2) | Attribution |
|---|---|---|---|
18 juin |
18 juin |
Eh ? |
Indéfinie |
18 juin 2006 à 15 h 30 min 45 s |
18 juin 2006 à 15 h 30 min 05 s |
FALSE |
Message non-lu |
| Temps du post (t1) | Temps de dernière visite (t2) | (t1 < t2) | Attribution |
|---|---|---|---|
15 mai 2006 à 18 h 05 min 27 s |
18 juin 2006 à 13 h 45 min 18 s |
TRUE |
Message lu |
19 juin 2006 à 01 h 24 min 57 s |
18 juin 2006 à 13 h 45 min 18 s |
FALSE |
Message non-lu |
1 2 3 4 5 6 7 | CREATE TABLE `table_post` ( `id` int(8) UNSIGNED NOT NULL AUTO_INCREMENT, `temps` int(11) UNSIGNED DEFAULT '0', `titre` varchar(64) NOT NULL, `message` text NOT NULL, PRIMARY KEY (`id`) ); |
| id | temps | titre | message |
|---|---|---|---|
| 1 | 1137239489 | Exemple de titre | Exemple de message |
| 2 | 1128167402 | Exemple de titre 2 | Exemple de message 2 |
| ... | ... | ... | ... |
| 2853 | 1128167402 | Exemple de titre 3 | Exemple de message 3 |
| 2854 | 1131133339 | Exemple de titre 4 | Exemple de message 4 |
| ... | ... | ... | ... |
1 2 3 4 5 6 | <?php $tmp = time(); //Contient le timestamp UNIX de l'instant où la variable est initialisée echo $tmp; // Affiche un nombre du type : 1131133339 ?> |
1 2 3 4 5 6 7 8 | <?php // Connexion à mysql // J'ai mis des addslashes, c'est un petit rappel de sécurité (attention, ils ne sont pas forcément nécessaires, reportez-vous à votre php.ini ou à votre hébergeur). $req = 'INSERT INTO `table_post` (`temps`,`titre`,`message`) VALUES ("'.time().'","'.addslashes($_POST['titre']).'","'.addslashes($_POST['message']).'")'; mysql_query($req); |
1 2 3 4 5 6 7 | <?php // À placer avant toute sortie de code à l'écran session_name('Session_sdz'); // Cette ligne n'est pas obligatoire session_start(); // Démarrage de la session ?> |
1 2 3 4 5 6 7 8 9 10 11 | <?php // Une seule fois, je répète ici ;) session_name('Session_sdz'); // Cette ligne n'est pas obligatoire session_start(); // Démarrage de la session $_SESSION['ma_var'] = 'test'; echo $_SESSION['ma_var']; ?> |
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 31 32 33 34 35 36 37 | <?php // Ce code doit être placé au début de chaque page qui affiche nos messages, news, annonces, ... // Un require ou include peut être très utile session_name('Nom_d_exemple'); session_start(); // Démarrage de la session // POINT [1] // On doit impérativement connaître le temps de visite précédent, et donc on vérifie si on l'a déjà // enregistré dans une variable session : si ce n'est pas fait, on l'enregistre if( !isset( $_SESSION['tmp_derniere_visite'] ) ) { // Ici, on part du principe que le temps de dernière visite est dans un cookie // On aurait tout aussi bien pu enregistrer ce temps dans une bdd // POINT [1.1] // Si le temps de dernière visite (cookie) n'existe pas, on le crée. if( !isset($_COOKIE['tmp_der_visite']) ) setcookie('tmp_der_visite',time(), time() + (3600*24*365)); // POINT [1.2] // On enregistre le temps de dernière visite de la session $_SESSION['tmp_derniere_visite'] = $_COOKIE['tmp_der_visite']; // POINT [1.3] // On met le temps de dernière visite à jour, pour les prochaines visites setcookie('tmp_der_visite',time(), time() + (3600*24*365)); } // POINT [2] // On met le temps de dernière visite à jour, pour les prochaines visites else setcookie('tmp_der_visite',time(), time() + (3600*24*365)); ?> |


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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?php /******************************************************* ** Gestion du temps de dernière visite *******************************************************/ session_name('Nom_d_exemple'); session_start(); if( !isset( $_SESSION['tmp_derniere_visite'] ) ) { if( !isset($_COOKIE['tmp_der_visite']) ) setcookie('tmp_der_visite',time(), time() + (3600*24*365)); $_SESSION['tmp_derniere_visite'] = $_COOKIE['tmp_der_visite']; setcookie('tmp_der_visite',time(), time() + (3600*24*365)); } else setcookie('tmp_der_visite',time(), time() + (3600*24*365)); /******************************************************* ** Affichage des messages *******************************************************/ // Connexion à Mysql $db = mysql_connect('host','user','mdp'); mysql_select_db('ma_bdd',$db); // On sélectionne toute notre table et on la trie par date $req = 'SELECT * FROM `table_post` ORDER BY `temps` DESC'; $sql = mysql_query('SELECT * FROM `table_post` ORDER BY `temps`'); // On va afficher une petite image qui signifie que le message est lu ou non $msg_lu = './images/lu.png'; $msg_non_lu = './images/non_lu.png'; // On boucle sur nos différentes entrées while( $data = mysql_fetch_assoc($sql) ) { echo '<p>'; // Pour afficher une petite image qui signifie que le message est lu ou non // Il nous suffit simplement de comparer le temps du message et celui de notre dernière visite. if( $data['temps'] >= $_SESSION['tmp_derniere_visite'] ) echo '<img src="'.$msg_non_lu.'" alt="message non-lu" />'; else echo '<img src="'.$msg_lu.'" alt="message lu" />'; // Ensuite, on peut afficher notre message echo ' <b>'.$data['titre'].'</b><br />'.$data['message'].'</p>'; } ?> |


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 31 32 33 34 35 36 37 38 39 40 41 | <?php /******************************************************* ** Gestion du temps de dernière visite *******************************************************/ session_name('Nom_d_exemple'); session_start(); if( !isset( $_SESSION['tmp_derniere_visite'] ) ) { if( !isset($_COOKIE['tmp_der_visite']) ) setcookie('tmp_der_visite',time(), time() + (3600*24*365)); $_SESSION['tmp_derniere_visite'] = $_COOKIE['tmp_der_visite']; setcookie('tmp_der_visite',time(), time() + (3600*24*365)); } else setcookie('tmp_der_visite',time(), time() + (3600*24*365)); /******************************************************* ** Affichage du contenu d'un message *******************************************************/ // Connexion à Mysql $db = mysql_connect('host','user','mdp'); mysql_select_db('ma_bdd',$db); // On sélectionne une entrée de notre table désignée par $_GET['id'] $req = 'SELECT * FROM `table_post` WHERE id = '.intval($_GET['id']); $sql = mysql_query('SELECT * FROM `table_post` ORDER BY `temps`'); $data = mysql_fetch_assoc($sql); // On peut afficher notre message echo '<p><b>'.$data['titre'].'</b><br />'.$data['message'].'</p>'; // On va marquer ce message pour indiquer qu'il a déjà été lu. Notez que l'id du message fait partie intégrante du nom de la variable session, ça nous permettra de la différencier des autres. $_SESSION['message_lu'.$data['id']] = $data['temps']; } ?> |
1 2 3 4 5 6 7 8 9 | <?php // Comme dans l'exemple $_SESSION['message_lu'.$data['id']] = $data['temps']; // Autre méthode, mais elle m'a déjà généré des erreurs, donc sur le principe, je l'évite. $_SESSION['message_lu'][$data['id']] = $data['temps']; ?> |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <?php /******************************************************* ** Gestion du temps de dernière visite *******************************************************/ session_name('Nom_d_exemple'); session_start(); if( !isset( $_SESSION['tmp_derniere_visite'] ) ) { if( !isset($_COOKIE['tmp_der_visite']) ) setcookie('tmp_der_visite',time(), time() + (3600*24*365)); $_SESSION['tmp_derniere_visite'] = $_COOKIE['tmp_der_visite']; setcookie('tmp_der_visite',time(), time() + (3600*24*365)); } else setcookie('tmp_der_visite',time(), time() + (3600*24*365)); /******************************************************* ** Affichage des messages *******************************************************/ // Connexion à Mysql $db = mysql_connect('host','user','mdp'); mysql_select_db('ma_bdd',$db); // On sélectionne toute notre table et on la trie par date $req = 'SELECT * FROM `table_post` ORDER BY `temps` DESC'; $sql = mysql_query('SELECT * FROM `table_post` ORDER BY `temps`'); // On va afficher une petite image qui signifie si le message est lu ou non $msg_lu = './images/lu.png'; $msg_non_lu = './images/non_lu.png'; // On boucle sur nos différentes entrées while( $data = mysql_fetch_assoc($sql) ) { echo '<p>'; // Pour afficher une petite image qui signifie que le message est lu ou non // Il nous suffit simplement de comparer le temps du message et celui de notre dernière visite. if( $data['temps'] >= $_SESSION['tmp_derniere_visite'] ) { // Mais il est possible que notre message soit marqué, nous devons en tenir compte // Dans ce cas, le message est bel et bien lu if( isset($_SESSION['message_lu'.$data['id']]) && $_SESSION['message_lu'.$data['id']] > $data['temps'] ) echo '<img src="'.$msg_lu.'" alt="message lu" />'; // Autrement, c'est normal, il s'agit bien d'un nouveau message non-lu else echo '<img src="'.$msg_non_lu.'" alt="message non-lu" />'; } else echo '<img src="'.$msg_lu.'" alt="message lu" />'; // Ensuite, on peut afficher notre message echo ' <a href="page_appelee.php?id='.$data['id'].'">'.$data['titre'].'</a></p>'; } ?> |

1 2 3 4 5 6 7 8 | <?php // Connexion à Mysql // On connaît le message à mettre à jour grâce à la variable $_GET['id'] mysql_query('UPDATE `table_post` SET `temps` = '.time().' WHERE id = '.intval($_GET['id'])); ?> |
1 2 3 4 5 6 7 8 | <?php session_name('Nom_d_exemple'); session_start(); $_SESSION['tmp_derniere_visite'] = time(); ?> |

.
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
Fil RSS |
XHTML 1.0 |
CSS 2.0
Édité par Simple IT SARL :
Nous contacter
| Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
564 Zéros connectés |
8 requêtes |
0.2744s (0.2617s)