Kullanıcı sayfayı inceleyip başka bir sayfaya gittiğinde ilk sayfada kalma süresini hesaplayan fonksiyon, herhangi bir bağımlılğı yok, yanlız fonksiyonun çalışabilmesi için dizin yazma iznine ihtiyaç duyuyor. değiştirilip, kısaltılabilir.

log_fonction.

Kodu:
<?
function log_zaman()
{
/* SUNUCU ZAMANINI BELIRLE */
setlocale(LC_ALL, "");
/* KULLANICI BILGILERINI BELIRLE */
$bilgi['KULLANICI'] = 'ARAKIN';
$bilgi[''] = date('d-m-y');
$bilgi['ZAMAN_A'] = date("h:i:s");
$bilgi['ZAMAN_B'] = date("his");
$bilgi['PORT_NO'] = $_SERVER['REMOTE_PORT'];
$bilgi['IP_NO'] = $_SERVER['REMOTE_ADDR']; /* ALTERNATIF getenv("REMOTE_ADDR")*/
$bilgi['GEL_SAYFA'] = $_SERVER['HTTP_REFERER'];
$bilgi['BU_SAYFA'] = basename($_SERVER['SCRIPT_FILENAME']);
$geldigi_sayfa = parse_url($bilgi['GEL_SAYFA']);
$geldigi_sayfa_dizi = explode ("/", $geldigi_sayfa['path']);
$geldigi_sayfa_ismi = explode (".", end($geldigi_sayfa_dizi));
$yeni_bu_sayfa_ismi = explode (".", $bilgi['BU_SAYFA']);

/* ESKI TEMP DOSYASI YOLUNU BELIRLE */
$ESKI_TEMP_DOSYASI = $bilgi['KULLANICI'].'.'.$geldigi_sayfa_ismi[0].'.txt';

/* YENI TEMP DOSYASI YOLUNU BELIRLE */
$YENI_TEMP_DOSYASI = $bilgi['KULLANICI'].'.'.$yeni_bu_sayfa_ismi[0].'.txt';

/* EGER VARSA ILK ONCE ESKI TEMP DOSYASINI KALDIR (SIL) */
if(is_file($YENI_TEMP_DOSYASI)):
unlink($YENI_TEMP_DOSYASI);
endif;

/* DOSYAYA YAZILACAK BILGILERI TOPARLA */
$dosya_yaz =
'KULLANICI:'.$bilgi['KULLANICI'].
':PORT_NO:'.$bilgi['PORT_NO'].
':IP NO:'.$bilgi['IP_NO'].
':TARİH:'.$bilgi[''].
':ZAMAN_A:'.$bilgi['ZAMAN_A'].
':SAYFA:'.$bilgi['BU_SAYFA'].'<br>';

/* TEMP DOSYASI VARMI ? VARSA BUNU YAP */
if(is_file($ESKI_TEMP_DOSYASI)):

/* DOSYANIN ICINDEKI BILGIYE BAK */
$dosya_icerik = file($ESKI_TEMP_DOSYASI);
$yenidizi = explode ("<br>", $dosya_icerik[0]);

/* DOSYADA YAZILAN ZAMAN_A SIMDIKI ZAMAN_B DEN BUYUKSE */
/* VERITABANI TABLOSUNA YAZ */
if($bilgi['ZAMAN_B']>$yenidizi[2]):
$sayfada_kalma_suresi=($bilgi['ZAMAN_B']-$yenidizi[2]);
echo '<b>'.$geldigi_sayfa_ismi[0].'</b> isimli sayfayı <b>'.$sayfada_kalma_suresi.'</b> saniye incelediniz.';
endif;

/* ESKI TEMP DOSYASINI KALDIR (SIL) */
unlink($ESKI_TEMP_DOSYASI);

/* YENI TEMP DOSYASI OLUSTUR UZERINE BILGILERI YAZ*/
$YENI_DOSYA_YAZ = fopen($YENI_TEMP_DOSYASI, "w");
fwrite($YENI_DOSYA_YAZ, $bilgi['KULLANICI'].'<br>'.$bilgi['BU_SAYFA'].'<br>'.$bilgi['ZAMAN_B']);
fclose($YENI_DOSYA_YAZ);

/* DOSYA YOKSA BUNU YAP */
else:

/* TEMP DOSYASI UZERINE BILGILERI YAZ */
$DOSYA_YAZ = fopen($YENI_TEMP_DOSYASI, "w");
fwrite($DOSYA_YAZ, $bilgi['KULLANICI'].'<br>'.$bilgi['BU_SAYFA'].'<br>'.$bilgi['ZAMAN_B']);
fclose($DOSYA_YAZ);

/* DOSYANIN ICINDEKI BILGIYE BAK SONRADA GIT TABLOYA YAZ */
$dosya_icerik = file($YENI_TEMP_DOSYASI);
$yenidizi = explode ("<br>", $dosya_icerik[0]);

/* DOSYADA YAZILAN ZAMAN_B SIMDIKI ZAMAN_B ESITSE */
/* VERITABANI TABLOSUNA YAZMA */
if($bilgi['ZAMAN_B']==$yenidizi[2]):
echo '<br><br>İki zaman eşit olduğundan yeni geldiniz sayıyoruz :)<br>';
else:
$sayfada_kalma_suresi=($bilgi['ZAMAN_B']-$yenidizi[2]);
echo '<b>'.$geldigi_sayfa_ismi.'</b> isimli sayfayı <b>'.$sayfada_kalma_suresi.'</b> saniye incelediniz.';
endif;
endif;

/* LOG DOSYASI UZERINE BILGILERI YAZ */
$LOG_DOSYA_UZERINE_YAZ = fopen($bilgi[''].'_LOG_FILE.txt', "a+");
fwrite($LOG_DOSYA_UZERINE_YAZ, $dosya_yaz);
fclose($LOG_DOSYA_UZERINE_YAZ);
}
?>
Örnek Kullanım

Kodu:
<?
include_once('log_function.');
log_zaman();
?>

kaynak: ordan burdan

Tags: , , , , , , , , , ,
Php - Kullanıcı Sayfayı Ne Kadar Zaman Inceledi (scripti, nasıl, nedir?) konusu
Benzer yazılar:
    Benzer yazı yok