Код за супер лесна статистика на вашия сайт!

Статус
Not open for further replies.

LuXiRiS

Registered
Код:
 <?php

// Твоя лог файл;

$counter = "stats.txt";

// Лог посещения;

$fp = fopen($counter, "a");

$line = @$REMOTE_ADDR . "|" . @$mday . @$month . @$year . "\n";

$size = strlen($line);

fputs($fp, $line, $size);

fclose($fp);



// Чете лог файла;

$contents = file($counter);



// Посещения;

$total_hits = sizeof($contents);


?>

<? echo "

Посещения : <b>" . $total_hits;

?>
Благодаря на mute!




След малко и Посещения за дeня :)

Ето и по просто :
Код:
<?php 

$counter_file = "stats.txt"; 
if(!($fp = fopen($counter_file, "r"))) die ("Cannot open $counter_file."); 
$counter = (int) fread($fp, 20); 
fclose($fp); 

$counter++; 

echo "Посещения :  $counter"; 

$fp = fopen($counter_file, "w"); 
fwrite($fp, $counter); 
fclose($fp); 

?>
Благодаря на Soul_Stealler
 
Само 1 не разбирам.
Щом записваш толкоз много неща свързани с потребителя, защо не ги изкарваш и тях, а изкарваш само броя на посещенията ? :)
 
Soul_Stealler каза:
Само 1 не разбирам.
Щом записваш толкоз много неща свързани с потребителя, защо не ги изкарваш и тях, а изкарваш само броя на посещенията ? :)

Не ти разбирам въпроса :shock:
 
Ето и обещания редактиран код !
Код:
 <?php

// Твоя лог файл;

$counter = "stats.txt";

// Лог посещения;

$fp = fopen($counter, "a");

$line = @$REMOTE_ADDR . "|" . @$mday . @$month . @$year . "\n";

$size = strlen($line);

fputs($fp, $line, $size);

fclose($fp);



// Чете лог файла;

$contents = file($counter);

// Посещения днес;

$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);


// Посещения;

$total_hits = sizeof($contents);


?>

<? echo "
Посещения : <b>" . $total_hits. "</b><br><br>
Посещения днес: <b>" . $daily_hits_size;
?>
 
Намирам ти няколко грешки. Те са:
1. Като гледам във файла се записва само IP на потребителя.
А ти правиш:
$line = @$REMOTE_ADDR . "|" . @$mday . @$month . @$year . "\n";
Където променливите $mday, $month и $year нямат никаква стойност.

По-добре го направи:
Код:
$line = @$REMOTE_ADDR . "|" .gmdate('M d Y'). "\n";
( лично мнение :roll: ... може би php версията ми е твърде стара )

2. Като гледам изкарваш само посещенията.
Пример:
Посещения : 4
Защо тогава ще записваш толкоз много неща (IP, дата) като изкарваш само брой ? :)
По-добре записвай само броя на посещенията:
Код:
<?php

$counter_file = "stats.txt";
if(!($fp = fopen($counter_file, "r"))) die ("Cannot open $counter_file.");
$counter = (int) fread($fp, 20);
fclose($fp);

$counter++;

echo "You're visitor No. $counter.";

$fp = fopen($counter_file, "w");
fwrite($fp, $counter);
fclose($fp);

?>

или изкарвай всичко:

Код:
<?php
$file= file("stats.txt");
$n= count($file);

for ($i=0; $i<$n;$i++)
{
echo $file[$i]."<br />";
}
?>


Според мен така е по-разумно. Лично мнение :wink:


EDIT..//
Сега с променения код където има дневни посещения има смисъл да записваш толкова много неща, но преди малко нямаше :)
 
аз не разбрах нищо ... ма грешки няма грешки напишете кода на черно и бяло да се види без грешки , че и на мен ми трябва такова :)
 
Статус
Not open for further replies.

Горе