Image Lu/Non Lu

Répondre
LA GLOBULE
le 27/11/2003 à 18:58
LA GLOBULE
A quel niveau scart ?

(Ca m'interesse parce que le manuel MySQL foire à cause de çà...)
scart
le 27/11/2003 à 19:15
scart
Voilà, MP envoyer ^^

J'ai regarder les codes de Da-Forum, jsuis pas un pro alors jai pas super compris avec les cookies...

Si quelqu'un a msn pour en parler, là jvais prendre ma douche puis jsuis a vous smiley

Merci a celui qui m'aidera... smiley
ScaRT
Layer
le 27/11/2003 à 20:02
Layer
expliquer -> j'ai pas les mots juste smiley
j'ai commenter avec des exemples, le code sur la page read_msg.php :

<?php
if ($MSGLUFORUM) {

// Tableau de forme : id1|date1 & id2|date2 ...

$tablo = explode ("&", $MSGLUFORUM);

// $tablo[0] = id1|date1 $tablo[1] = id2|date2 ...

$nombre = count ($tablo);
$tablo_cookie = array();

// si nombre d'élement = 1
if ($nombre == 1) {

// Tableau de forme : id1|date1
$tablo2 = explode ("|", $tablo[0]);

// $tablo2[0] = id1 $tablo2[1] = date1

$tablo_cookie[0][0] = $tablo2[0]; // id1
$tablo_cookie[0][1] = $tablo2[1]; // date1
$cookie = $tablo_cookie[0][0].'|'.$tablo_cookie[0][1].'&'.$id.'|'.$date_plus_recent;
}

// Si nombre d'élement > 1

else {
$update = 0;

// Boucle
for ($i=0; $i< $nombre; $i++) {

// $tablo[0] = id1|date1 $tablo[1] = id2|date2 ...

$tablo2 = explode ("|", $tablo[$i]);

// $tablo2[0] = id1 $tablo2[1] = date1

$tablo_cookie[$i][0] = $tablo2[0]; //id1

// Si id du cookie correspond a l'id en cour
if ($tablo_cookie[$i][0] == $id) {
$tablo_cookie[$i][1] = $date_plus_recent; // on update la date (ici date1 pour l'exemple)
$update = 1;
}
else {
$tablo_cookie[$i][1] = $tablo2[1]; // sinon on laisse sa date
}
}

// En clair si l'id n'existe pas, on rajoute a la fin ;)

if ($update == 0) {
$tablo_cookie[$nombre][0] = $id;
$tablo_cookie[$nombre][1] = $date_plus_recent;
}

// On recompte le tableau et on pack le tout :D

$nombre = count ($tablo_cookie);
for ($i=0; $i< $nombre; $i++) {
if ($i == 0) {
$cookie = $tablo_cookie[$i][0].'|'.$tablo_cookie[$i][1];
}
else {
$cookie = $cookie.'&'.$tablo_cookie[$i][0].'|'.$tablo_cookie[$i][1];
}
}
}
setcookie("MSGLUFORUM","$cookie",time()+$expire,"/");
}
else {
$cookie = $id.'|'.$date_plus_recent;
setcookie("MSGLUFORUM","$cookie",time()+$expire,"/");
}
?>
Error 500 : internal brain error
Layer
le 27/11/2003 à 20:03
Layer
le wall automatique ne marche plus ??? (ben désoler pour la largeur)


PS: je me trompe dis moi ;o) j'ai compris comme ça en tout cas smiley
Error 500 : internal brain error
scart
le 27/11/2003 à 21:51
scart
Ok merci ca m'aide un peu smiley smiley

Enfaites, j'ai un problème, ...

Voici le code dans la page forum.php (forum.php equivaut à view_forum sur lephpfacile)

<?

if ($DERNIERPOSTLUDAFORUM) {
$tablo = explode ("&", $DERNIERPOSTLUDAFORUM);
$nombre = count ($tablo);
$tablo_cookie = array();
if ($nombre == 1) {
$tablo2 = explode ("|", $tablo[0]);
$tablo_cookie[0][0] = $tablo2[0];
$tablo_cookie[0][1] = $tablo2[1];
}
else {
for ($i=0; $i< $nombre; $i++) {
$tablo2 = explode ("|", $tablo[$i]);
$tablo_cookie[$i][0] = $tablo2[0];
$tablo_cookie[$i][1] = $tablo2[1];

}
}
$nombre = count ($tablo_cookie);
}
?>


Ensuite,

<?

if ($DERNIERPOSTLUDAFORUM) {
$folder = "red";
for ($i=0; $i < $nombre; $i++) {
if ($tablo_cookie[$i][0] == $id_msg) {
if ($tablo_cookie[$i][1] == $date_derniere_reponse) {
$folder = "jaune";
}
}
}
if ($folder == "jaune") {
$afffolder = '<td width="25%"><img src="images/folder.gif"></td>';
}
else {
$afffolder = '<td width="25%"><img src="images/red_folder.gif"></td>';
}
}

?>


et après je fait un echo $afffolder pour qu'il m'affiche le tableau avec l'image dedans...

Dans la page lecture.php (read_msg.php)

<?

$expire=365*24*3600;
if ($DERNIERPOSTLUDAFORUM) {
$tablo = explode ("&", $DERNIERPOSTLUDAFORUM);
$nombre = count ($tablo);
$tablo_cookie = array();
if ($nombre == 1) {
$tablo2 = explode ("|", $tablo[0]);
$tablo_cookie[0][0] = $tablo2[0];
$tablo_cookie[0][1] = $tablo2[1];
$cookie = $tablo_cookie[0][0].'|'.$tablo_cookie[0][1].'&'.$id.'|'.$date_plus_recent;
}
else {
$update = 0;
for ($i=0; $i< $nombre; $i++) {
$tablo2 = explode ("|", $tablo[$i]);
$tablo_cookie[$i][0] = $tablo2[0];
if ($tablo_cookie[$i][0] == $id) {
$tablo_cookie[$i][1] = $date_plus_recent;
$update = 1;
}
else {
$tablo_cookie[$i][1] = $tablo2[1];
}
}
if ($update == 0) {
$tablo_cookie[$nombre][0] = $id;
$tablo_cookie[$nombre][1] = $date_plus_recent;
}
$nombre = count ($tablo_cookie);
for ($i=0; $i< $nombre; $i++) {
if ($i == 0) {
$cookie = $tablo_cookie[$i][0].'|'.$tablo_cookie[$i][1];
}
else {
$cookie = $cookie.'&'.$tablo_cookie[$i][0].'|'.$tablo_cookie[$i][1];
}
}
}
setcookie("DERNIERPOSTLUDAFORUM","$cookie",time()+$expire,"/");
}
else {
$cookie = $id.'|'.$date_plus_recent;
setcookie("DERNIERPOSTLUDAFORUM","$cookie",time()+$expire,"/");
}

?>


Qu'est ce qui ne va pas?

Contenu du cookies :

DERNIERPOSTLUDAFORUM
12%7C%2620%7C%262%7C%269%7C%264%7C
site.com/
1536
431498752
29676538
2627132144
29603111
*


Quand je lit le sujet, je retourne sur le forum il y a toujours l'image de départ (red_folder)
...

Quelqu'un sait me dire pourquoi ?

Merci ;)
ScaRT
scart
le 27/11/2003 à 22:01
scart
Dsl pour la grandeur du post smiley

Enfaites j'ai deja changer le $id_msg dans le 3ème code car chez moi c $id

Aussi, d'où vient le $date_plus_recent c p-e ca qui foire, ca vient d'où ? smiley

smiley
ScaRT
LA GLOBULE
le 27/11/2003 à 22:18
LA GLOBULE
$date_plus_recent c la date du dernier message d'un sujet (c'est la date que l'on compare à celle contenue dans le cookie).
scart
le 28/11/2003 à 16:33
scart
Chez moi la date du dernier sujet c $date_derniere_reponse (je n'ai pas le même forum qu'ici, tout tiens sur une seule table avec id et reponse_id)

Si je changeais $date_plus_recent par $date_derniere_reponse tu crois que cela marcherais ? smiley

smiley
ScaRT
scart
le 28/11/2003 à 17:19
scart
Jsuis trop fénéant alors je demande :-°

smiley :biggrin:

Allez, je termine un truc et je test...
ScaRT
Répondre
LoadingChargement en cours