Autor | Zpráva | ||
---|---|---|---|
Derek44 Profil * |
#1 · Zasláno: 13. 7. 2014, 17:41:19 · Upravil/a: Derek44
Chtěl bych ukazovat na hlavní stránce kolik je v chatu (vytvořil jsem jednoduchou stránku s chatem) lidí. Mám php co mi ukazuje počet online lidí. Jak to mám ale udělat abych viděl na hlavní stránce že je v chatu třeba 0 lidí? Když to počítadlo vložím do iframe tak mi to ukazuje že jsem online na chatu a to není pravda. Tak poradíte někdo prosím?
index.php: 1<html> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Počet online uživatelů</title>
</head>
<body>
<p>Toto je velmi zajímavá stránka.</p>
<p><?php include('readers.php'); ?></p>
</body>
</html> readers.php: 1<?php <?php
$fcrr='readers.txt'; // jméno souboru, do kterého ukládat IP adresy návštěvníků
$IPadresa=$_SERVER['REMOTE_ADDR']; // sem "naskládame" vše, co lze o čtenáři zjistit odděleno zavináčem (adresy uživatelů za proxy ap.)
if ($_SERVER['REMOTE_HOST'])
$IPadresa.='@'.$_SERVER['REMOTE_HOST'];
if ($_SERVER['HTTP_X_FORWARDED_FOR'])
$IPadresa.='@'.$_SERVER['HTTP_X_FORWARDED_FOR'];
if ($_SERVER['HTTP_FORWARDED'])
$IPadresa.='@'.$_SERVER['HTTP_FORWARDED'];
if ($_SERVER['HTTP_CLIENT_IP'])
$IPadresa.='@'.$_SERVER['HTTP_CLIENT_IP'];
if ($_SERVER['X_HTTP_FORWARDED_FOR'])
$IPadresa.='@'.$_SERVER['X_HTTP_FORWARDED_FOR'];
if ($_SERVER['X_FORWARDED_FOR'])
$IPadresa.='@'.$_SERVER['X_FORWARDED_FOR'];
$aktual=time();
$pole=file($fcrr); //přiřadit jméno souboru k poli
for($i=0; $i<Count($pole); $i++) // procházet pole
{
$adresa=StrTok($pole[$i],':'); // rozdělit na adresu a čas záznamy oddělené dvojtečkou
$cas=StrTok(':');
if ($adresa==$IPadresa) // pokud se adresa rovná některému záznamu, vyřadit jej (vymazat) z pole
$pole[$i]='';
if ($cas<($aktual-10)) // pokud vypršel timeout 6 minut, vyřadit záznam (vyřadí se neaktivní uživatelé)
$pole[$i]='';
}
$Fp=FOpen($fcrr,'w'); // otevřít soubor pro zápis
$celkem=0; // vyčistit proměnnou
for($i=0; $i<Count($pole); $i++)
{
if ($pole[$i]!='') // je-li co zapsat po předchozím "vyčištění" pole
{
FPutS($Fp,$pole[$i]); // pak zapsat prvek pole do souboru
$celkem++; // zvýšit počítadlo uživatelů
}
}
FPutS($Fp,$IPadresa.':'.$aktual."\n"); // připsat adresu aktuálního uživatele a jeho čas
$celkem++; // zvýšit počítadlo o 1 (o aktuálního uživatele)
FClose($Fp); // zavřít soubor
// v $celkem je nyní počet uživatelů online
$mess1='čte';
$mess2='lidí';
if ($celkem<5)
if ($celkem>1)
{
$mess1='čtou';
$mess2='lidé';
}
else
$mess2='člověk'; // vyskloňovat podle počtu uživatelů
echo "Stránku si právě $mess1 $celkem $mess2."; // vypsat počet uživatelů se správným skloňováním
?> Děkuji Jde o to abych ukazoval počet online uživatelů na jiné stránce. Co mám dát do stránky index2 aby mě to ukazovalo kolik lidí je na stránce index? |
||
Micruss Profil |
pokud ty uživatele ukládáš do souboru, tak proč neotevřeš ten soubor a ne nespočítáš kolik tam je uživatelů?
asi tak nějak: |
||
Derek44 Profil * |
#3 · Zasláno: 13. 7. 2014, 19:01:37
No protože když se podívám třeba po hodině do toho souboru tak je tam pořát ip adresa toho uživatele, nepromazává se to.
|
||
Micruss Profil |
#4 · Zasláno: 13. 7. 2014, 19:19:21
Tak udělej databázi... máš to lepší než nějaký soubory ;-)
|
||
Derek44 Profil * |
#5 · Zasláno: 13. 7. 2014, 19:25:41
To ale nevím jak.
Nevím jestli jsem to správně popsal. Potřeboval bych aby mě to na stránce aaaaaa.php ukazovalo kolik lidí je na stránce bbbbbb.php online. |
||
Marti_n Profil |
#6 · Zasláno: 13. 7. 2014, 20:28:44
Ako napísal Micruss, zvolil by som databázu. Stačí ti jedna tabuľka kde si uložíš id stránky, ip adresu a čas posledného načítania stránky tej dotyčnej ip adresy. Teda:
1) Prídem na stránku aaaa.php , mám IP 127.1.0.0 a čas je 19:00 2) Skontroluje sa mi či už dotyčná IP je v databáze pri konkrétnej stránke 3) Ak áno, tak len updatneš nový čas teda uložil by si iba preformatované 19:00 Ak nie, tak pridáš riadok do databázy vo forme (ID STRANKY, IP, CAS) K id stránky, zvol si vlastné označenie, neukladaj celé názvy že aaaa.php, ale príklad povedzme si že aaaa.php bude mať svoje ID = 1 (lepšie ukladať numerickú hodnotu ako celý string) 4) Vo výslednom súbore bbbb.php si len zobrazíš z databázy všetky riadky, ktore majú ID = 1 (náš súbor aaaa.php) a ich čas poslednej akcie je väčší ako aktuálny - 10minút.. (teda môžeš si dať vlastný počet minút, podľa ktorých budeš posudzovať či je daná IP online. V našom prípade ako som napísal je IP adresa s poslednou aktivitou menšou ako 10 minút považovaná za offline. |
||
Derek44 Profil * |
#7 · Zasláno: 13. 7. 2014, 20:32:40
Když to právě neumím :-(
|
||
Kcko Profil |
#8 · Zasláno: 13. 7. 2014, 21:00:51
Derek44:
Nevadí, určitě umíš něco jiného. A tohle si můžeš koupit, od toho je tu sekce Práce a zakázky. |
||
Marti_n Profil |
#9 · Zasláno: 13. 7. 2014, 21:24:33
Derek44:
Tak je čas sa to naučiť :) |
||
Derek44 Profil * |
#10 · Zasláno: 13. 7. 2014, 21:32:09
Našel jsem že mám v chatu proměnnou která ukazuje počet online uživatelů. Jak ji mám ale vložit do jiné stránky to už nevím.
|
||
protom1 Profil |
#11 · Zasláno: 13. 7. 2014, 21:46:00
Derek44:
jestli chces, tak já ti to za nějakej ten peniz udelam .. |
||
Derek44 Profil * |
#12 · Zasláno: 13. 7. 2014, 22:04:15
A kolik to je? Nějakej ten peníz?
|
||
protom1 Profil |
#13 · Zasláno: 13. 7. 2014, 22:13:55
tak si me pridej na skype, domluvime se.. skype : d8t1k6l
|
||
Časová prodleva: 11 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0