Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Předpokládám, že vstup do chatu je vyřešen nějakým způsobem pomocí přihlášení. Uživatelé (účty) jsou…
Pavel 13.07.2014 15:27
Pavel
Pokusím se to vysvětlit takto: Chtěl bych ukazovat na hlavní stránce kolik je v chatu (vytvořil jsem…
online lidí 13.07.2014 18:23
online lidí
Asi by som použil session premennú... Z tohto príkladu to iste pochopíš a upravíš si podľa seba: P…
pme 13.07.2014 19:00
pme
Děkuji, když ale vytvořím ty soubory session1.php s tím obsahem a session2.php s tím obsahem tak tu…
online lidí 13.07.2014 19:10
online lidí
Akú verziu php máš? Skús to takto: <?php session_start(); $_SESSION["a"] = "LOGGED"; ?> 2nd page…
pme 13.07.2014 19:20
pme
to píše to samé: Fatal error: Call to undefined function session_register() in /data/web/virtuals/69…
online lidí 13.07.2014 19:25
online lidí
Vymaž cache a cookies prehliadača - veď tam máš to isté z prvého príkladu (nič si nezmenil), session…
pme 13.07.2014 19:28
pme
Depak, ukazuje to pořád. I po smazání cache a cookies. Tak holt nic, ale děkuji moc.
online lidí 13.07.2014 19:37
online lidí
http://php.net/manual/en/function.session-register .php http://php.net/manual/en/function.session-st…
ERASER 13.07.2014 19:41
ERASER
díky za odkazy. No já tomu právě zase moc nerozumím. Chtěl jsem pomoct s tím kamarádovi. poslední
online lidí 13.07.2014 19:42
online lidí

Předpokládám, že vstup do chatu je vyřešen nějakým způsobem pomocí přihlášení. Uživatelé (účty) jsou nejspíš v databázi. Nebude teda problém zjistit aktuální počet přihlášených či aktivních užvatelů.

No a pak na tvé jiné stránce (mimo chat) si spustíš skript, co načte počet přihlášených či aktivních na chatu a tuto hodnotu zobrazí. Skript se spustí (řekněme) každých deset minut.

Bez bližších informací se asi víc poradit nedá.

Pokusím se to vysvětlit takto:
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:

<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:

<?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
?>

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?

Asi by som použil session premennú...
Z tohto príkladu to iste pochopíš a upravíš si podľa seba:

Použití session proměnných (php4)
1. Na začátku každé stránky použít funkci session_start()
- tato funkce zkontroluje, zda již má uživatel přidělen identifikátor (sessionID), pokud ještě ne, přidělí mu ho, pokud již má přidělen identifikátor, tak načte naše všechny session proměnné a zpřístupní je jako běžné proměnné skriptu.

2. Pro vytvoření session proměnné z obyčejné proměnné je potřeba zavolat session_register()
- parametrem této funkce je název proměnné (tedy bez $) , ze které chceme udělat session proměnnou.

Ukázka:

Zaregistrování session proměnné (session1.php)

<?
session_start();
?>
<html>
<head><title>Session test page 1</title></head>
<body>
<?
session_register("prom");
$prom = "1234";
echo "Sesion promenne - stranka c.1, Zaregistrovani promenne<br>";
echo "prom = $prom". "<br><br>";
?>
<br>
Pri prechodu na <a href="session2.php">dalsi stranku</a> se hodnota promenne $prom zachova.
</body>
</html>

Využití session proměnné (session2.php)
<?
session_start();
?>
<html>
<head><title>Session test page 2</title></head>
<body>
<?
echo "Sesion promenne - stranka c.2, Vypis zaregistrovane promenne<br>";
echo "prom = $prom";
?>
</body>
</html>

Děkuji, když ale vytvořím ty soubory session1.php s tím obsahem a session2.php s tím obsahem tak tu udelá :
session1.php: Fatal error: Call to undefined function session_register() in /data/web/virtuals/68225/virtual/www/pocitadlo/ses sion1.php on line 8

session2.php: Sesion promenne - stranka c.2, Vypis zaregistrovane promenne prom =

Zpět do poradny Odpovědět na původní otázku Nahoru