Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.
Online počet návštěvníků na stránce s pomocí MySQL |
Autor: Kuty
| Zdroj:
| Vytvořeno: 11.9.2003
| Publikováno: 11.9.2003
| Čtenářů: 3227
| Unikátních: 2658
|
Zajímá Vás, kolik je na Vaší stránce právě návštěvníků? Tento článek Vám poradí. Obsahuje zdrojový kód i vysvětlení.
Ze všeho nejdříve je potřeba vytvořit jednoduchou tabulku v databázi MySQL. Jeji struktura vypadá následovně:
CREATE TABLE online (
ip varchar(20) NOT NULL,
cas int(11) NOT NULL,
) TYPE=MyISAM;
ip je adresa současného návštěvníka.
cas cas, kdy návštěvník přišel na stránku.
Nyní přistoupíme k naprogramování samotného počítadla. Počítadlo online návštěvníků funguje tak, že se při příchodu návštěvníka zjistí, jestli už si stránku prohlíží. Pokud ano, aktualizuje se jeho čas v databázi. Pokud ne, uloží se jeho IP adresa spolu s časem v sekundách do databáze. Dale taky musíme nastavit, jak dlouho má zůstat návštevník v databázi jako aktivní uživatel. Nakonec uložíme do proměnné počet online návštevníků a výsledek vypíšeme na obrazovku.
Zde je celý kód počítadla i s komentářem:
<?
//otevreme databazi
//udaje si kazdy vyplni podle prav
//pridelenych od hostovaciho serveru
$host='vyplnte';
$user='vyplnte';
$pass='vyplnte';
$dbase='vyplnte';
mysql_connect($host, $user, $pass) or die
("Nepodařilo se připojit k databázi.");
mysql_select_db($dbase) or die
("Nepodařilo se otevřít databázi.");
//zjistime aktualni cas v sekundach od roku
$cas = time();
//zjistime IP adresu navstevnika
$ip = $REMOTE_ADDR;
//z databaze zjistime, jestli
//uz je navstevnik ulozen jako aktivni
$zjisti = MySQL_Query("SELECT * FROM
online WHERE ip='".$ip."'");
//pokud neni(prikaz nenajde zadny radek s ip)
// ulozime ho do databaze
if (MySQL_Num_Rows($zjisti)==0){
MySQL_Query("INSERT INTO online(ip,cas)
values ('".$ip."', ".$cas.")");
//pokud je aktualizujeme jeho cas v databazi
}else{
MySQL_Query("UPDATE online SET
cas=".$cas." WHERE ip='".$ip."'");
}
//vymazeme z databaze ty navstevniky, kteri uz nejsou online
$sekundy=”180”;
$vymazat= $cas-$sekundy;
MySQL_Query("DELETE FROM online WHERE cas<".$vymazat);
//nyni uz jen spocitame pocet online navstevniku
$vysledek = MySQL_Query("SELECT * FROM online");
$online = MySQL_Num_Rows($vysledek);
//vypiseme vysledek nasi snahy
echo $online;
?>
Tak to je pro dnešek vše. Jelikož je to můj první článek na tomto serveru, budu rád, když mi napíšete Vaše dojmy a potřehy. Klidně pište i o čem byste si rádi přečetli přístě.
|