2009-10-26 2 views
0

Bonjour je veux me rafraîchir php toutes les 3 secondes ce que j'ai:PHP: Actualiser mon code

<?php 
session_start(); 
include "../config.php"; 

$time = time(); 

$sql1 = "UPDATE login SET lastlogin = '" .$time. "' WHERE id = '" .$_SESSION['userid']. "'"; 
$res1 = mysql_query($sql1) or die(mysql_error()); 

$onlinetime = "10"; // 10 seconds 

$sql3 = "SELECT * FROM login ORDER BY lastlogin DESC"; 
$res3 = mysql_query($sql3); 
    while($row3 = mysql_fetch_array($res3)){ 

if($row3['lastlogin'] + $onlinetime > time()){ 

echo '<b><font color="green">&#10004;</font></b> <u>'.$row3['name'].'</u><br />'; 

     }else{ 

echo "<b><font color='red'>X</font></b> <u>".$row3['name']."</u><br />"; 
     } 
     }    

?> 

Ce n'est pas rafraîchissante qui est vraiment irritant. Il montre qui est en ligne sur ma chatbox. Quelqu'un aide? Merci.

Répondre

1

La meilleure solution est d'utiliser ajax et d'interroger un script php qui vérifie les utilisateurs en ligne toutes les X secondes.

Je recommande fortement jQuery pour la partie ajax.

1

L'actualisation du contenu d'un navigateur est quelque chose que le navigateur doit faire. Soit utiliser le Redirect-After HTML meta-tag (ce qui entraînera « vacillante »), ou utiliser Javascript pour recharger le contenu du site (voir AJAX)

7

Je suggère d'utiliser la balise <meta http-equiv="refresh" content="5" /> dans la section <head>. Cela ne dépend pas de JavaScript, et tous les principaux navigateurs ont cette fonctionnalité implémentée.

0

Vous pourriez ajouter quelques parens autour lastlogin + onlinetime:

if($row3['lastlogin'] + $onlinetime > time()){ 

changement

if(($row3['lastlogin'] + $onlinetime) > time()){ 
+0

Qu'est-ce que cela a à voir avec l'actualisation de la page? – Seb

+0

Je me demandais la même chose. – Homework

+0

@seb; @joey; tu as juste droit de répondre à ma question s'il te plaît. Ce truc que je pourrais faire avec le validateur ... –

3

Je ne sais pas ce que vous essayez de faire. Le code ne mentionne aucun rafraîchissement.

Vous pourriez mettre ce qui suit dans l'élément de votre HTML pour forcer le client à actualiser toutes les trois secondes.

<meta http-equiv="refresh" content="3" /> 

Ian

0

Vous pouvez utiliser un reload javascript:

<META HTTP-EQUIV="Refresh" CONTENT="360; /"> 
1

Vous pouvez rafraîchir à l'aide de PHP en-tête ou quelque chose par ce moyen. Cela fonctionne pour moi à chaque fois.

<?php 
$url = 'http://google.com/'; $timeout = 5; //Directed URL and timeout. 
header('Refresh: ' . $timeout . ';url=' . $url); 
?> 
+0

aJe ne sais pas avec certitude, mais il semble bien fonctionner ... Merci. –

+0

cela ne fonctionne pas, il n'est pas rafraîchissant. Je n'ai rien changé à ce sujet sauf l'url. –

+0

@YourComputerHelpZ Avez-vous placé ceci au-dessus de tout le reste? Aussi, vous devez changer le 5 à votre temps dirigé, comme vous l'avez dit (3?) Secondes ... – Homework