8792 sujets

Développement web côté serveur, CMS

Salut à tous,
Voila j'utilise AJAX pour mon site pour savoir si j'ai des nouveaux messages privés.
J'utilise le XHRConnection.js du site : http://xhrconnection.sutekidane.net/releases/current/XHRConnection.js
Mais j'ai un probléme,
Voila j'ai un fichier nouveaump2.php qui appel avec le XHRConnection.js le fichier nouveaump3.php
J'affiche ma page nouveaump2.php il me mais :
Vous avez 1 nouveau message.
Alors je vais lire ce message.
La page nouveaump2.php s'actualise toutes les 20 secondes et la il m'affiche tjr :
Vous avez 1 nouveau message.
Alors qu'elle devrait m'afficher :
Vous avez 0 nouveau message.

Merci d'avance.
je ne pense pas que c'est lier a AJAX non ?

si tu met un flag "lu" et "non lu" à ton message alors cela devrait fonctionner
exemple :
ta requete sera d'afficher le nbre de message ayant le flag "non lu"
ensuite quand tu va lire ce message pense à faire une requte qui modifie le flag en "lu"

voilà Smiley cligne
Bas c'est ce que je fais déjà regarde mon code :

Page nouveaump2.php :
Code : JavaScript

<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="zoneCible"></div>
<script type="text/javascript" src="XHRConnection.js"></script>
<script type="text/javascript">
chargeFichier();
function chargeFichier()
{
// Création de l'objet
var XHR = new XHRConnection();
// Zone à remplir
XHR.setRefreshArea('zoneCible');
XHR.sendAndLoad("nouveaump3.php", "GET");
setTimeout("chargeFichier()", 20000);
return true;
}
</script>
</body>
</html>


Page nouveaump3.php :
Code : PHP

<?php
include 'config.php';
$Tableau = explode(" ", $_COOKIE['tchatteurs']);
$Pseudo3 = $Tableau[1];
$requete = mysql_query("SELECT SUM(`Domaine`='$IdDomaine' AND Pseudo='$Pseudo3' AND Vue LIKE '0') AS Total1 from $Table1");
$A = mysql_fetch_array($requete);
$Plus = $A['Total1'];
$requete = mysql_query("SELECT SUM(`Domaine`='$IdDomaine' AND Pseudo2='$Pseudo3' AND Vue LIKE '0' AND Sup LIKE '0') AS Total from $Table2");
$A = mysql_fetch_array($requete);
$Tous = $A['Total']+$Plus;
if($Tous==1)
{
echo '<div align="center"><a href="vosmp.php" target="principal"><div class="cadre1 back1">Vous avez 1 nouveau message.</div></a></div>';
}
else
{
if($Tous!=0)
{
echo '<div align="center"><a href="vosmp.php" target="principal"><div class="cadre1 back1">Vous avez '.$Tous.' nouveaux messages.</div></a></div>';
}
else
{
echo '<div align="center"><a href="vosmp.php" target="principal"><div class="cadre1 back1">Vous avez 0 nouveau message.</div></a></div>';
}
}
mysql_close();
?>

Voici un bout (car le fichier et énorme) du fichier voirmp.php :
Code : PHP

<?php
include 'verifid.php';
mysql_query("UPDATE $Table2 SET `Vue` = '1' where id='".$_GET['id']."' AND Pseudo2='".$_SESSION['Pseudo']."'");
?>

UPDATE de la table 2 ce fais bien, quant je vais directement sur la page nouveaump3.php il me dit bien : Vous avez 0 nouveau message.

Merci d'avance.
alors là , je ne vois pas ,c'est vrai que ce n'est pas évident de réparer à distance

sinon au passage je ne pense pas que cela soit bien de faire <a><div></div></a> dans ton truc de retour
<a><span></span></a> serait une meilleure sémantique il me semble
moueh enfin bon je pense que c'est aussi valide pour l'html

donc il n'est pas trop tard pour corriger et "mettre aux normes" ton site
a écrit :
<a href="vosmp.php"
et
a écrit :
du fichier voirmp.php

On parle bien du même fichier qui change de nom là non ?

mysql_query("UPDATE $Table2 SET `Vue` = '1' where id='".$_GET['id']."' AND Pseudo2='".$_SESSION['Pseudo']."'");
Euh ... tu lui passes l'id en GET à cette fameuse page pour voir tes mps ?

Je pense que c'est plus un pb en PHP qu'en AJAX Smiley smile