Statistics listing: http://yourdomain/yournucleusblog/list.php
THIS FILE HAS TO BE PLACED IN ROOT DIR OF YOUR BLOG, TOGETHER WITH CONFIG.PHP AND INDEX.PHP!
*/
include('./config.php');
/* already logged-in? */
if (!$member->isLoggedIn()) {
die("You have to be logged-in into Nucleus first!");
}
$link = mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASSWORD);
if($link==false){
die("Cannot connect to MySQL DB..");
};
mysql_select_db($MYSQL_DATABASE) or die("Cannot select default DB...");
/* generate doctype */
echo "";
echo "
";
echo "";
echo "
Simple statistics / log for your blog
";
/* set date variables */
$FROMMDAY=date("d");
$FROMMMONTH=date("m");
$FROMMYEAR=date("y");
if(isset($_POST['FROMMYDAY'])){$FROMMDAY=$_POST['FROMMYDAY'];};
if(isset($_POST['FROMMYMONTH'])){$FROMMMONTH=$_POST['FROMMYMONTH'];};
if(isset($_POST['FROMMYYEAR'])){$FROMMYEAR=$_POST['FROMMYYEAR'];};
if(strlen($FROMMDAY)==1){$FROMMDAY="0$FROMMDAY";};
if(strlen($FROMMMONTH)==1){$FROMMMONTH="0$FROMMMONTH";};
if(strlen($FROMMYEAR)==1){$FROMMYEAR="0$FROMMYEAR";};
$TOMDAY=date("d");
$TOMMONTH=date("m");
$TOMYEAR=date("y");
if(isset($_POST['TOMYDAY'])){$TOMDAY=$_POST['TOMYDAY'];};
if(isset($_POST['TOMYMONTH'])){$TOMMONTH=$_POST['TOMYMONTH'];};
if(isset($_POST['TOMYYEAR'])){$TOMYEAR=$_POST['TOMYYEAR'];};
if(strlen($TOMDAY)==1){$TOMDAY="0$TOMDAY";};
if(strlen($TOMMONTH)==1){$TOMMONTH="0$TOMMONTH";};
if(strlen($TOMYEAR)==1){$TOMYEAR="0$TOMYEAR";};
/* how much records to display */
$HOWMUCH="20";
if(isset($_POST['RECORDS'])){$HOWMUCH=$_POST['RECORDS'];}
/* filter for IP and DNS? */
$MYFILTERIP='';
if(isset($_POST['FILTERIP'])){$MYFILTERIP=$_POST['FILTERIP'];}
$MYFILTERDNS='';
if(isset($_POST['FILTERDNS'])){$MYFILTERDNS=$_POST['FILTERDNS'];}
/* delete stats */
$time= mktime (0,0,0,date("m"),date("d")-3,date("Y"));
$old= strftime("%m/%d/%y",$time);
/* delete log?? */
if(isset($_POST['MYCLEAR'])){
if($_POST['MYCLEAR']=="YES"){
$deleting=strftime("%y%m%d",$time);
$query="DELETE FROM NUCLEUS_HTTPLOG WHERE XDATE<'$deleting'";
sql_query($query);
echo '
Everything older than '.$old.' was deleted..';
}
}
/* GET filter parameters? */
if (isset($_GET['FADDR'])){
$MYFILTERIP=$_GET['FADDR'];
}
if (isset($_GET['FFROM'])){
$FROMMDAY=substr($_GET['FFROM'],4,2);
$FROMMMONTH=substr($_GET['FFROM'],2,2);
$FROMMYEAR=substr($_GET['FFROM'],0,2);
}
if (isset($_GET['FTO'])){
$TOMDAY=substr($_GET['FTO'],4,2);
$TOMMONTH=substr($_GET['FTO'],2,2);
$TOMYEAR=substr($_GET['FTO'],0,2);
}
$searchfilter='';
if($MYFILTERIP!=''){
$searchfilter=" $searchfilter AND (INSTR(XADDR,'$MYFILTERIP')>0) ";
}
if($MYFILTERDNS!=''){
$searchfilter=" $searchfilter AND (INSTR(XDNS,'$MYFILTERDNS')>0) ";
}
echo "
";
/* -------------- 1 ---------- */
if($_POST['LISTSELECT']=='1' || $_GET['FTYPE']=='1'){
echo "
Daily list sorted, in descending order, by date and time
";
echo "
";
echo '';
echo 'ID | ';
echo 'Date | ';
echo 'Time | ';
echo 'IP | ';
echo 'DNS | ';
echo 'Agent | ';
echo 'URI | ';
echo 'Referrer | ';
echo '
';
$frommydate="$FROMMYEAR$FROMMMONTH$FROMMDAY";
$tomydate= "$TOMYEAR$TOMMONTH$TOMDAY";
$query = mysql_query("select * from NUCLEUS_HTTPLOG where (XDATE>='$frommydate') and (XDATE<='$tomydate') $searchfilter order by UID desc LIMIT 0,$HOWMUCH");
$num=1;
$style='two';
while ( $msg = mysql_fetch_array( $query )) {
$style=='one' ? $style='two' : $style='one';
echo '';
echo '| '.$num.' | ';
echo ''.substr($msg['XDATE'],2,2).'/'.substr($msg['XDATE'],4,2).' | ';
echo ''.$msg['XTIME'].' | ';
echo ''.$msg['XADDR'].' | ';
echo ''.$msg['XDNS'].' | ';
echo ''.$msg['XAGENT'].' | ';
echo ''.$msg['XPATH'].' | ';
echo ''.$msg['XREFERER'].' | ';
echo '
';
$num++;
};
echo "
";
}
/* end --1-- */
/* -------------- 2 ---------- */
if($_POST['LISTSELECT']=='2'){
echo "
Daily list grouped by IP address, and sorted by date and time
";
echo "
";
echo '';
echo '| | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo '
';
$frommydate="$FROMMYEAR$FROMMMONTH$FROMMDAY";
$tomydate= "$TOMYEAR$TOMMONTH$TOMDAY";
$query = mysql_query("select * from NUCLEUS_HTTPLOG where (XDATE>='$frommydate') and (XDATE<='$tomydate') $searchfilter order by XADDR asc, UID desc LIMIT 0,$HOWMUCH");
$lastaddr="";
$ipnum=0;
$style='two';
while ( $msg = mysql_fetch_array( $query )) {
if ($lastaddr!=$msg['XADDR']){
$num=1;
$lastaddr = $msg['XADDR'];
/* empty line */
echo '';
echo '| | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo '
';
/* header */
echo '';
$ipnum++;
echo ''.$ipnum.' | ';
echo ' | ';
echo ' | ';
echo ' | ';
echo ''.$msg['XADDR'].' | ';
echo ''.$msg['XDNS'].' | ';
echo '
';
/* ip and dns */
echo '';
echo '| ID | ';
echo 'Date | ';
echo 'Time | ';
echo 'Browser | ';
echo 'URI | ';
echo 'Referrer | ';
echo '
';
$style='two';
}
/* details */
$style=='one' ? $style='two' : $style='one';
echo '';
echo '| '.$num.' | ';
echo ''.substr($msg['XDATE'],2,2).'/'.substr($msg['XDATE'],4,2).' | ';
echo ''.$msg['XTIME'].' | ';
echo ''.$msg['XAGENT'].' | ';
echo ''.$msg['XPATH'].' | ';
echo ''.$msg['XREFERER'].' | ';
echo '
';
$num++;
};
echo "
";
}
/* end --2-- */
/* -------------- 3 ---------- */
if($_POST['LISTSELECT']=='3'){
echo "
Information about browsers
";
echo "
";
echo '';
echo 'User agent | ';
echo 'Total views | ';
echo '
';
$frommydate="$FROMMYEAR$FROMMMONTH$FROMMDAY";
$tomydate= "$TOMYEAR$TOMMONTH$TOMDAY";
$query = mysql_query("select count(*) as XTOTAL, max(XAGENT) as XAG from NUCLEUS_HTTPLOG where (XDATE>='$frommydate') and (XDATE<='$tomydate') $searchfilter group by XAGENT order by XTOTAL desc");
$num=1;
$style='two';
while ( $msg = mysql_fetch_array( $query )) {
$style=='one' ? $style='two' : $style='one';
echo '';
echo '| '.$msg['XAG'].' | ';
echo ''.$msg['XTOTAL'].' | ';
echo '
';
$num++;
};
echo "
";
}
/* end --3-- */
/* -------------- 4 ---------- */
if($_POST['LISTSELECT']=='4'){
echo "
Daily unique IP address list, sorted, in descending order, by date and time
";
echo "
";
echo '';
echo 'ID | ';
echo 'Date | ';
echo 'Time | ';
echo 'IP | ';
echo 'DNS | ';
echo 'Agent | ';
echo 'Views | ';
echo 'URI | ';
echo 'Referrer | ';
echo '
';
$frommydate="$FROMMYEAR$FROMMMONTH$FROMMDAY";
$tomydate= "$TOMYEAR$TOMMONTH$TOMDAY";
$fullquery=mysql_query("select MIN(UID) AS XUID, COUNT(UID) AS XTOTAL from NUCLEUS_HTTPLOG where (XDATE>='$frommydate') and (XDATE<='$tomydate') $searchfilter group by XADDR order by UID DESC LIMIT 0,$HOWMUCH");
$num=1;
$style='two';
while ( $fullmsg = mysql_fetch_array( $fullquery )) {
$style=='one' ? $style='two' : $style='one';
$xuid=$fullmsg['XUID'];
$query = mysql_query("select * from NUCLEUS_HTTPLOG where UID='$xuid'");
$msg = mysql_fetch_array( $query );
echo '';
echo '| '.$num.' | ';
echo ''.substr($msg['XDATE'],2,2).'/'.substr($msg['XDATE'],4,2).' | ';
echo ''.$msg['XTIME'].' | ';
echo ''.$msg['XADDR'].' | ';
echo ''.$msg['XDNS'].' | ';
echo ''.$msg['XAGENT'].' | ';
echo ''.$fullmsg['XTOTAL'].' | ';
echo ''.$msg['XPATH'].' | ';
echo ''.$msg['XREFERER'].' | ';
echo '
';
$num++;
};
echo "
";
}
/* end --4-- */
if( (!isset($_POST['LISTSELECT'])) && (!isset($_GET['FTYPE'])) ){
echo "
Please select statistics you want to view in drop-down menu and press View button.";
echo "
";
}
/* closing... */
echo "
Copyright ©
Radek Hulán. You can use this script freely, modify it, redistribute it. No warranties whatsoever implied.";
echo "
";
mysql_close($link);
?>