ugrás a tartalomhoz

HTML PHP számláló!

Csono · 2007. Júl. 16. (H), 15.58
Sziaszok!

Van egy PHP számlálóm, amit HTML-ben meghívók. A számláló részben működik, az összes látogatót és a napi látogatók számát jól kiírja, de a hostok értéke nem változik. Mi lehet a hiba lszi segítsetek.

HTML script:

<script language="php"
src="szamlalo/counter.php">

PHP script:

<?php
// Our log file;
$counter = "counter.txt";

// Date logging;
$today = getdate();
$month = $today[month];
$mday = $today[mday];
$year = $today[year];
$current_date = $mday . $month . $year;

// Log visit;
$fp = fopen($counter, "a");
$line = $REMOTE_ADDR . "|" . $mday . $month . $year . "\n";
$size = strlen($line);
fputs($fp, $line, $size);
fclose($fp);

// Read log file into array;
$contents = file($counter);

// Total hits;
$total_hits = sizeof($contents);

// Total hosts;
$total_hosts = array();
for ($i=0;$i<sizeof($contents);$i++) {
$entry = explode("|", $contents[$i]);
array_push($total_hosts, $entry[0]);
}
$total_hosts_size = sizeof(array_unique($total_hosts));

// Daily hits;
$daily_hits = array();
for ($i=0;$i<sizeof($contents);$i++) {
$entry = explode("|", $contents[$i]);
if ($current_date == chop($entry[1])) {
array_push($daily_hits, $entry[0]);
}
}
$daily_hits_size = sizeof($daily_hits);

// Daily hosts;
$daily_hosts = array();
for ($i=0;$i<sizeof($contents);$i++) {
$entry = explode("|", $contents[$i]);
if ($current_date == chop($entry[1])) {
array_push($daily_hosts, $entry[0]);
}
}
$daily_hosts_size = sizeof(array_unique($daily_hosts));

// Let's display everything;
echo "Total hits: " . $total_hits . "<br>Total hosts: " . $total_hosts_size . "<br>Daily hits: " . $daily_hits_size . "<br>Daily hosts: " . $daily_hosts_size;
?>
 
1

Elmenti?

janoszen · 2007. Júl. 16. (H), 19.00
Most akkor nézd végig a scriptedet. Szerinted, elmenti ez a hostokat? Mert én nem látok semmi ilyesmit benne. Egyébként légy szíves használj BBCode jelölőket a kód kiemelésére, különben a kutya nem fogja elolvasni a kódjaidat.
2

TXT file-ba loggol?

Csono · 2007. Júl. 17. (K), 09.44
Őszinte leszek, nem sokat értek a PHP-hez. Megnéztem a BBCode jelölést, tényleg meg kellett volna csinálnom, de számomra nem egyértelmű, mert amit pl Dreamweaver-ben átláthatónak és szépnek látok az itt BBCode jelöléssel hogyan valósítok meg. Kérlek, illetve aki még az üzenetemet olvassa tekincsen el a bakiktól, igérem pótolom.


Elviekben úgy működik, hogy a counter.txt file-ba loggolja az összes látogatót dátumként.
Valójában a counter.php futtatásakkor egy apró táblázatban kiírja:

- összes látogatók számát
- összes host számát
- napi látogatók számát
- napi hostok számát


Remélem azért tudok segíteni, mert nem sokan használnak
összetett számlálót.
3

Válasz

janoszen · 2007. Júl. 17. (K), 18.34
Először is légyszi, ha valamire válaszolsz, akkor a megfelelő válasz gombra bökj rá. Aztán másodszor... egy idő után kezelhetetlenül nagy lesz a fájlod.

Aztán harmadszor, kénytelen leszel megtanulni legalább alap szinten a PHP-t, mert itt még tudtommal sültgalamb nem repült.

Aztán negyedszer, a PHP manualban Predefined Variables címszó alatt találod meg ami Neked kell, abban is a $_SERVER tömbben.
4

TXT LOG???

thekingr · 2007. Júl. 17. (K), 23.56
Txt logolást azonnal felejtsd el ha látogatókra is számítasz az oldalon. Egy idő után eszméletlen nagy lesz és míg az adatbázis indexelve van így a fájlod nem lesz és több másodperc lesz csak a látogatások kiírása míg az egyéb futási idő tized másodpercet se vesz igénybe. Logold le adatbázisba aztán meg kérdezd le az összes látogatást meg hostot meg ilyesmit utána. Tanulj egy kis SQLt hasznos. De ha tudsz angolul akár még példa scripteket is találsz látogatók számlálására. Én is példákon kezdtem el régen mostmár csak a függvények pontos működését nézem meg helpben.