PHP: kodumu Refresh

7 Cevap php

Merhaba ben bu i ne var her 3 sn benim php yenilemek istiyorum:

<?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 />";
        }
        }            

?>

Bu gerçekten rahatsız edici olan ferahlatıcı değil. Bu benim Chatbox online kim gösterir. Birisi yardımcı olabilir mi? Teşekkürler.

7 Cevap

Ben <head> bölümündeki <meta http-equiv="refresh" content="5" /> etiketini kullanarak öneririm. This does not depend on JavaScript, ve her büyük tarayıcı bu özelliği uygulamaya sahiptir.

Ne yapmaya çalışıyorsun hiçbir fikrim yok. Kod içinde bir yenileme hiçbir söz vardır.

Her üç saniyede bir yenilemek için müşteri zorlamak için HTML öğesi aşağıdaki koyabilirsiniz.

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

Ian

En iyi çözüm ajax kullanmak ve online kullanıcılar her X saniyede denetleyen bir php komut dosyası yoklamak için.

Ben çok ajax-kısmı için jQuery öneririz.

Bir tarayıcılar içeriği ferahlatıcı tarayıcı yapmanız gereken bir şeydir. Redirect-After HTML meta etiketi kullanmanız (which will result in "flickering"), or use some Javascript to reload the site's content (see AJAX) Ya

PHP başlık veya anlamına göre bir şey kullanarak yenilemek olabilir. Bu benim için her zaman çalışır.

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

Bazı Pars ekleyerek olabilir çevresindeki lastlogin + onlinetime:

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

geçmek

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

Sen bir javascript reload kullanabilirsiniz:

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