CodeIgniter látogatók naplózása

Ebben a cikkben megmutatom hogyan lehet a beépített loggolás segítségével elmenteni pár hasznos infót a látogatókról. Elég fapados megoldás, de későbbiekben finomítunk rajta, egyelőre elég lesz ennyi.

Amire szükségünk van, session kezelés legyen betöltve, config.php-ban legyen a $config['log_threshold'] = 1; és legyen a system/logs mappa írható, különben 1 darab logunk sem fog generálódni.

Amire szükségünk van még, az adott controller konstruktorában hívjuk meg a loggolást végző metódusunkat, nálam most ez a _logging(); tehát konstruktorba menjen a következő $this->logging(); majd másoljuk be az alábbi kódot a controllerbe.
/**
 *  látogatók loggolása

*/

function _logging() {

/* ha már logoltuk a usert akkor nem csinálunk semmit */

if($this->session->userdata(‘log’) == 1)

return true;

/* logot generálunk */

$this->load->library(‘user_agent’);

/* eldöntjük, hogy ki is a látogató illetve miről nézi az oldalt */

if ($this->agent->is_browser())

{

$agent = $this->agent->browser().’ ‘.$this->agent->version();

}

elseif ($this->agent->is_robot())

{

$agent = $this->agent->robot();

}

elseif ($this->agent->is_mobile())

{

$agent = $this->agent->mobile();

}

else

{

$agent = ‘Unidentified User Agent’;

}

/* referrer mentése ha van */

$referrer = $this->agent->is_referral() ? $this->agent->referrer() : ‘No referrer’;

/* log fileba írás */

log_message(‘error’, ‘*******SITE VISIT LOG*******’);

log_message(‘error’, ‘Created: ‘. date(“Y-m-d G:i”));

log_message(‘error’, ‘Agent: ‘. $agent);

log_message(‘error’, ‘Referrer: ‘. $referrer);

log_message(‘error’, ‘Platform: ‘. $this->agent->platform());

log_message(‘error’, ‘*******/SITE VISIT LOG/*******’);

$this->session->set_userdata(‘log’, 1);

}


Ez így még elég csúnyácska, béna is, de működik. Ilyesmi logokat fog nekünk generálni:

ERROR – 2010-08-12 14:31:28 –> *******SITE VISIT LOG*******

ERROR – 2010-08-12 14:31:28 –> Created: 2010-08-12 14:31

ERROR – 2010-08-12 14:31:28 –> Agent: Firefox 3.6.8

ERROR – 2010-08-12 14:31:28 –> Referrer: http://**************.com

ERROR – 2010-08-12 14:31:28 –> Platform: Windows XP

ERROR – 2010-08-12 14:31:28 –> *******/SITE VISIT LOG/*******

ERROR – 2010-08-12 14:31:58 –> *******SITE VISIT LOG*******

ERROR – 2010-08-12 14:31:58 –> Created: 2010-08-12 14:31

ERROR – 2010-08-12 14:31:58 –> Agent: Safari 533.4

ERROR – 2010-08-12 14:31:58 –> Referrer: http://**************.com

ERROR – 2010-08-12 14:31:58 –> Platform: Windows XP

ERROR – 2010-08-12 14:31:58 –> *******/SITE VISIT LOG/*******

log_treshold azért lett 1 hogy csak a hibák kerüljenek be a logokba(ha nagyobbra állítjuk marha sok szemetünk lesz…) és ezért is lettek ‘error’-ként beszúrva a logba a sorok.

A következő cikkben továbbfejlesztjük a scriptet, csinosítunk rajta, okosítjuk, tehát érdemes lesz visszanézni.