Esempio n. 1
0
function luc_visitors()
{
    global $wpdb, $StatPressV_Option;
    $table_name = STATPRESS_V_TABLE_NAME;
    $visitors_color = "#114477";
    $action = "visitors";
    $graphdays = $StatPressV_Option['StatPressV_Graph_Days'];
    if ($graphdays == 0) {
        $graphdays = 7;
    }
    // $pa = pa and $pp = pp in the slug
    $pa = luc_page_posts();
    $pp = luc_page_periode();
    $today = gmdate('Ymd', current_time('timestamp'));
    $limitdate = gmdate('Ymd', current_time('timestamp') - 86400 * $graphdays * $pp + 86400);
    $currentdate = gmdate('Ymd', current_time('timestamp') - 86400 * $graphdays * ($pp - 1));
    $permalink = luc_permalink();
    $NP = luc_count_periode("date", "FROM {$table_name} as t", "JOIN {$wpdb->posts} as p ON t.urlrequested LIKE CONCAT('%', p.post_name, '_' ) OR t.urlrequested =''", "(ip IS NOT NULL) AND p.post_status = 'publish' AND (post_type = 'page' OR post_type = 'post')", "date", $graphdays);
    $start_of_week = get_option('start_of_week');
    $strqry = "SELECT  count(distinct post_name)\n\t\t\t\t\tFROM {$wpdb->posts} as p\n\t\t\t\t\tJOIN {$table_name} as t\n\t\t\t\t\tON t.urlrequested LIKE CONCAT('" . $permalink . "', p.post_name, '_' )\n\t\t\t\t\tWHERE p.post_status = 'publish'\n\t\t\t\t\t\tAND t.feed=''\n\t\t\t\t\t\tAND (p.post_type = 'page' OR p.post_type = 'post')\n\t\t\t\t\t\tAND t.date BETWEEN {$limitdate} AND {$currentdate} ;\n\t\t\t\t";
    $NumberPosts = $wpdb->get_var($strqry);
    $NumberDisplayPost = $StatPressV_Option['StatPressV_Graph_Per_Page'];
    if ($NumberDisplayPost == 0) {
        $NumberDisplayPost = 20;
    }
    $NA = ceil($NumberPosts / $NumberDisplayPost);
    $LimitValueArticles = $pa * $NumberDisplayPost - $NumberDisplayPost;
    // sort post or page by most unique visitors
    $strqry = "SELECT  post_name, total, urlrequested\n\t\t\t\t\tFROM (\n\t\t\t\t\t(SELECT 'page_accueil' as post_name, count(DISTINCT ip) as total, urlrequested\n\t\t\t\t\t\tFROM {$wpdb->posts} as p\n\t\t\t\t\t\tJOIN {$table_name} as t ON urlrequested =''\n\t\t\t\t\t\tWHERE  p.post_status = 'publish'\n\t\t\t\t\t\t\tAND (p.post_type = 'page' OR p.post_type = 'post')\n\t\t\t\t\t\t\tAND t.spider=''\n\t\t\t\t\t\t\tAND t.feed=''\n\t\t\t\t\t\t\tAND (t.date BETWEEN {$limitdate} AND {$currentdate})\n\t\t\t\t\t\tGROUP BY post_name)\n\t\t\t\t\tUNION ALL\n\t\t\t\t\t(SELECT post_name, count(DISTINCT ip) as total, urlrequested\n\t\t\t\t\t\tFROM {$wpdb->posts} as p\n\t\t\t\t\t\tJOIN {$table_name} as t\n\t\t\t\t\t\tON t.urlrequested LIKE CONCAT('%', p.post_name, '_' )\n\t\t\t\t\t\tWHERE p.post_status = 'publish'\n\t\t\t\t\t\t\tAND (p.post_type = 'page' OR p.post_type = 'post')\n\t\t\t\t\t\t\tAND t.spider=''\n\t\t\t\t\t\t\tAND t.feed=''\n\t\t\t\t\t\t\tAND t.date BETWEEN {$limitdate} AND {$currentdate}\n\t\t\t\t\t\tGROUP BY post_name)\n\t\t\t\t\t) visitors\n\t\t\t\t\tGROUP BY post_name\n\t\t\t\t\tORDER BY total DESC LIMIT {$LimitValueArticles}, {$NumberDisplayPost} ;\n\t\t\t\t";
    $query = $wpdb->get_results($strqry);
    $spider = $StatPressV_Option['StatPressV_Dont_Collect_Spider'];
    echo "<div class='wrap'><h2>Most visitors these " . $graphdays . " days </h2>";
    luc_print_pp_pa_link($NP, $pp, $action, $NA, $pa);
    foreach ($query as $url) {
        $where1 = " (urlrequested LIKE '" . $permalink . "feed%' OR urlrequested LIKE '" . $permalink . "comment%') ";
        $where2 = " urlrequested LIKE '%" . $url->post_name . "%' AND spider='' ";
        if ($url->post_name == 'page_accueil') {
            //url == home
            $total = luc_count_graph(luc_init_count_graph($graphdays, $pp), $graphdays, $pp, " urlrequested ='' ", $where1, "feed=''", "feed<>''", $limitdate, $currentdate);
        } else {
            //url<> home
            $total = luc_count_graph(luc_init_count_graph($graphdays, $pp), $graphdays, $pp, $where2, $where2, "feed=''", "feed<>''", $limitdate, $currentdate);
        }
        $maxxday = luc_maxxday($total, $graphdays, $pp);
        $px = luc_pixel($total, $graphdays, $maxxday, $pp, $action);
        if ($url->urlrequested == '') {
            $out_url = "[Page]: Home";
        } else {
            $out_url = luc_post_title_Decode($permalink . $url->post_name);
        }
        // Overhead of the graph, display the name of the post/page and the average by day of the visitors
        echo "<div class='wrap' >\n\t\t\t\t<table class='widefat' >\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th scope='col' width='15%'>\n\t\t\t\t\t\t\t\t<div style='background:{$visitors_color};width:10px;height:10px;float:left;margin-top:2px;margin-right:5px;'></div>" . $total->totalvisitors . " visitors\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope='col' width='15%'>\n\t\t\t\t\t\t\t\t<div style='background:{$visitors_color};width:10px;height:10px;float:left;margin-top:2px;margin-right:5px;'></div>Average " . round($total->totalvisitors / $graphdays, 1) . " by day\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope='col' width='70%'>\n\t\t\t\t\t\t\t\t<font font-size='1'>" . $out_url . "</font>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t</table>\n\t\t\t\t<table class='graph'>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>";
        luc_graph($px, $total, $graphdays, $pp, $action);
        echo "\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>";
    }
    luc_print_pp_pa_link($NP, $pp, $action, $NA, $pa);
    echo "</div>";
    luc_StatPressV_load_time();
}
Esempio n. 2
0
function luc_ValueTable($fld, $fldtitle, $limit = 0, $param = "", $queryfld = "", $exclude = "")
{
    global $wpdb;
    $table_name = STATPRESS_V_TABLE_NAME;
    if ($queryfld == '') {
        $queryfld = $fld;
    }
    echo "<div class='wrap'>\r\n\t\t\t\t<table class='widefat'>\r\n\t\t\t\t\t<thead>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<th scope='col' style='width:400px;'><h2>{$fldtitle}</h2></th>\r\n\t\t\t\t\t\t<th scope='col' style='width:100px;'>" . __('Visits', 'statpress') . "</th>\r\n\t\t\t\t\t\t<th></th></tr>\r\n\t\t\t\t\t</thead>";
    $rks = $wpdb->get_var("SELECT count({$param} {$queryfld}) as rks\r\n\t\t\t\t\t\t\t\tFROM {$table_name}\r\n\t\t\t\t\t\t\t\t{$exclude};");
    if ($rks > 0) {
        $sql = "SELECT count({$param} {$queryfld}) as pageview, {$fld}\r\n\t\t\t\t\t\tFROM {$table_name}\r\n\t\t\t\t\t\t{$exclude}\r\n\t\t\t\t\t\tGROUP BY {$fld} ORDER BY pageview DESC";
        if ($limit > 0) {
            $sql = $sql . " LIMIT {$limit}";
        }
        $qry = $wpdb->get_results($sql . ";");
        $tdwidth = 450;
        // Collects data
        $data = array();
        foreach ($qry as $rk) {
            $pc = round($rk->pageview * 100 / $rks, 1);
            if ($fld == 'country') {
                $rk->{$fld} = strtoupper($rk->{$fld});
            }
            if ($fld == 'date') {
                $rk->{$fld} = luc_hdate($rk->{$fld});
            }
            if ($fld == 'urlrequested') {
                $rk->{$fld} = luc_post_title_Decode($rk->{$fld});
            }
            $data[substr($rk->{$fld}, 0, 50)] = $rk->pageview;
        }
    }
    // Draw table body
    echo "<tbody id='the-list'>";
    if ($rks > 0) {
        // Chart!
        if ($fld == 'country') {
            $chart = luc_GoogleGeo("", "", $data);
        } else {
            $chart = luc_GoogleChart("", "500x200", $data);
        }
        echo "<tr><td></td><td></td><td rowspan='" . ($limit + 2) . "'>{$chart}</td></tr>";
        foreach ($data as $key => $value) {
            echo "<tr>";
            if ($fld == 'ip') {
                echo "\t<td style='width:500px;overflow: hidden; white-space: nowrap; text-overflow: ellipsis;'>" . luc_create_href($key, 'ip') . "</td>";
            } else {
                echo "\t<td style='width:500px;overflow: hidden; white-space: nowrap; text-overflow: ellipsis;'>" . $key . "</td>";
            }
            echo "\t<td style='width:100px;text-align:center;'>" . $value . "</td>";
            echo "</tr>";
        }
    }
    echo "</tbody></table></div><br>";
}
Esempio n. 3
0
 function luc_StatPressV_TopPosts($limit = 5, $numdays = 0, $showcounts = 'checked', $showpages = 'checked')
 {
     global $wpdb;
     $table_name = STATPRESS_V_TABLE_NAME;
     $res = "\n<ul>\n";
     if ($numdays == 0) {
         // All dates chosen, default to epoch
         $stopdate = date('Ymd', strtotime('1970-01-01'));
     } else {
         if ($numdays < 0) {
             // Negative number of days, no change
             $stopdate = date('Ymd', strtotime($numdays . 'days'));
         } else {
             // Invert sign
             $numdays = $numdays * -1;
             $stopdate = date('Ymd', strtotime($numdays . 'days'));
         }
     }
     if (strtolower($showpages) == 'checked') {
         $type = "(post_type = 'page' OR post_type = 'post')";
     } else {
         $type = "post_type = 'post'";
     }
     $qry_s = "SELECT post_name, COUNT(*) as total, urlrequested\r\n\t\t\t\t\t\tFROM {$wpdb->posts} as p\r\n\t\t\t\t\t\tJOIN {$table_name} as t\r\n\t\t\t\t\t\tON urlrequested LIKE CONCAT('%', p.post_name, '_' )\r\n\t\t\t\t\t\tWHERE post_status = 'publish'\r\n\t\t\t\t\t\t\tAND {$type}\r\n\t\t\t\t\t\t\tAND spider=''\r\n\t\t\t\t\t\t\tAND feed=''\r\n\t\t\t\t\t\t\tAND date >= {$stopdate}\r\n\t\t\t\t\t\tGROUP BY post_name\r\n\t\t\t\t\t\tORDER BY total DESC LIMIT {$limit};";
     $qry = $wpdb->get_results($qry_s);
     foreach ($qry as $rk) {
         $res .= "<li><a href='" . luc_GetBlogURL() . (strpos($rk->urlrequested, 'index.php') === FALSE ? $rk->urlrequested : '') . "'>" . luc_post_title_Decode($rk->post_name) . "</a>";
         if (strtolower($showcounts) == 'checked') {
             $res .= " (" . $rk->total . ")</li>";
         }
     }
     return "{$res}</ul>\n";
 }
Esempio n. 4
0
function luc_yesterday()
{
    global $wpdb, $StatPressV_Option;
    $table_name = STATPRESS_V_TABLE_NAME;
    $action = "yesterday";
    $visitors_color = "#114477";
    $rss_visitors_color = "#FFF168";
    $pageviews_color = "#3377B6";
    $rss_pageviews_color = "#f38f36";
    $spider_color = "#83b4d8";
    $yesterday = gmdate('Ymd', current_time('timestamp') - 86400);
    $pa = luc_page_posts();
    $permalink = luc_permalink();
    $strqry = "SELECT post_name\r\n\t\t\t\tFROM {$wpdb->posts}\r\n\t\t\t\tWHERE post_status = 'publish'\r\n\t\t\t\t\tAND (post_type = 'page' OR post_type = 'post')\r\n\t\t\t\t\tAND  DATE_FORMAT(post_date_gmt, '%Y%m%d') <= {$yesterday};";
    $qry_posts = $wpdb->get_results($strqry);
    $NumberPosts = $wpdb->num_rows;
    $NumberDisplayPost = 100;
    $NA = ceil($NumberPosts / $NumberDisplayPost);
    $LimitValueArticles = ($pa - 1) * $NumberDisplayPost;
    foreach ($qry_posts as $p) {
        $posts[$p->post_name]['post_name'] = $p->post_name;
        $posts[$p->post_name]['visitors'] = NULL;
        $posts[$p->post_name]['visitors_feeds'] = NULL;
        $posts[$p->post_name]['pageviews'] = NULL;
        $posts[$p->post_name]['pageviews_feeds'] = NULL;
        $posts[$p->post_name]['spiders'] = NULL;
    }
    $posts['page_accueil']['post_name'] = 'page_accueil';
    $posts['page_accueil']['visitors'] = NULL;
    $posts['page_accueil']['visitors_feeds'] = NULL;
    $posts['page_accueil']['pageviews'] = NULL;
    $posts['page_accueil']['pageviews_feeds'] = NULL;
    $posts['page_accueil']['spiders'] = NULL;
    $qry_visitors = requete_yesterday("DISTINCT ip", "urlrequested = ''", "spider = '' AND feed = ''", $yesterday);
    foreach ($qry_visitors as $p) {
        $posts[$p->post_name]['visitors'] = $p->total;
        $total_visitors += $p->total;
    }
    $qry_visitors_feeds = requete_yesterday("DISTINCT ip", "(urlrequested LIKE '%" . $permalink . "feed%' OR urlrequested LIKE '%" . $permalink . "comment%') ", "spider='' AND feed<>''", $yesterday);
    foreach ($qry_visitors_feeds as $p) {
        $posts[$p->post_name]['visitors_feeds'] = $p->total;
        $total_visitors_feeds += $p->total;
    }
    $qry_pageviews = requete_yesterday("ip", "urlrequested = ''", "spider = '' AND feed = ''", $yesterday);
    foreach ($qry_pageviews as $p) {
        $posts[$p->post_name]['pageviews'] = $p->total;
        $total_pageviews += $p->total;
    }
    $qry_pageviews_feeds = requete_yesterday("ip", "(urlrequested LIKE '%" . $permalink . "feed%' OR urlrequested LIKE '%" . $permalink . "comment%')", " spider='' AND feed<>''", $yesterday);
    foreach ($qry_pageviews_feeds as $p) {
        $posts[$p->post_name]['pageviews_feeds'] = $p->total;
        $total_pageviews_feeds += $p->total;
    }
    $spider = $StatPressV_Option['StatPressV_Dont_Collect_Spider'];
    if ($spider == '') {
        $qry_spiders = requete_yesterday("ip", "urlrequested=''", "spider<>'' AND feed=''", $yesterday);
        foreach ($qry_spiders as $p) {
            $posts[$p->post_name]['spiders'] = $p->total;
            $total_spiders += $p->total;
        }
    }
    $total_visitors = $wpdb->get_var("SELECT count(DISTINCT ip) AS total\r\n\t\t\tFROM {$table_name}\r\n\t\t\tWHERE feed=''\r\n\t\t\t\tAND spider=''\r\n\t\t\t\tAND date = {$yesterday} ;");
    $total_visitors_feeds = $wpdb->get_var("SELECT count(DISTINCT ip) as total\r\n\t\t\tFROM {$table_name}\r\n\t\t\tWHERE feed<>''\r\n\t\t\t\tAND spider=''\r\n\t\t\t\tAND date = {$yesterday} ;");
    echo "<div class='wrap'><h2>" . __('Yesterday ', 'statpressV') . gmdate('d M, Y', current_time('timestamp') - 86400) . "</div></br>";
    luc_print_pp_pa_link(0, 0, $action, $NA, $pa);
    // Sort the results by total
    usort($posts, "luc_posts_pages_custom_sort");
    echo "<table class='widefat'>\r\n\t<thead><tr>\r\n\t<th scope='col'>" . __('URL', 'statpressV') . "</th>\r\n\t<th scope='col'><div style='background:{$visitors_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors', 'statpressV') . "<br /><font size=1></font></th>\r\n\t<th scope='col'><div style='background:{$rss_visitors_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Visitors Feeds', 'statpressV') . "<br /><font size=1></font></th>\r\n\t<th scope='col'><div style='background:{$pageviews_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Views', 'statpressV') . "<br /><font size=1></font></th>\r\n\t<th scope='col'><div style='background:{$rss_pageviews_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Views Feeds', 'statpressV') . "<br /><font size=1></font></th>";
    if ($spider == '') {
        echo "<th scope='col'><div style='background:{$spider_color};width:10px;height:10px;float:left;margin-top:4px;margin-right:5px;'></div>" . __('Spider', 'statpressV') . "<br /><font size=1></font></th>";
    }
    echo "</tr></thead>";
    echo "<tr>\r\n\t<th scope='col'>All URL</th>\r\n\t<th scope='col'>" . __($total_visitors, 'statpressV') . "</th>\r\n\t<th scope='col'>" . __($total_visitors_feeds, 'statpressV') . "</th>\r\n\t<th scope='col'>" . __($total_pageviews, 'statpressV') . "</th>\r\n\t<th scope='col'>" . __($total_pageviews_feeds, 'statpressV') . "</th>";
    if ($spider == '') {
        echo "<th scope='col'>" . __($total_spiders, 'statpressV') . "</th>\r\n\t\t\t</tr>";
    }
    $i = 0;
    foreach ($posts as $p) {
        if ($i >= $LimitValueArticles and $i < $LimitValueArticles + $NumberDisplayPost) {
            if ($p['post_name'] == 'page_accueil') {
                $out_url = "Page : Home";
            } else {
                $out_url = $permalink . $p['post_name'];
            }
            echo "<tr>\r\n\t\t\t<td>" . luc_post_title_Decode(urldecode($out_url)) . "</td>";
            echo "<td>" . $p['visitors'] . "</td>\r\n\t\t\t<td>" . $p['visitors_feeds'] . "</td>\r\n\t\t\t<td>" . $p['pageviews'] . "</td>\r\n\t\t\t<td>" . $p['pageviews_feeds'] . "</td>";
            if ($spider == '') {
                echo "<td>" . $p['spiders'] . "</td>";
            }
            echo "</tr>";
        }
        $i++;
    }
    echo "</table>";
    luc_print_pp_pa_link(0, 0, $action, $NA, $pa);
    luc_StatPressV_load_time();
}
Esempio n. 5
0
function luc_spyvisitors()
{
    global $wpdb;
    global $StatPressV_Option;
    $action = "spyvisitors";
    $table_name = STATPRESS_V_TABLE_NAME;
    // number of IP or bot by page
    $LIMIT = $StatPressV_Option['StatPressV_SpyVisitor_IP_Per_Page'] ? $StatPressV_Option['StatPressV_SpyVisitor_IP_Per_Page'] : 20;
    $LIMIT_PROOF = $StatPressV_Option['StatPressV_SpyVisitor_Visits_Per_IP'] ? $StatPressV_Option['StatPressV_SpyVisitor_Visits_Per_IP'] : 20;
    $pp = luc_page_periode();
    // Number of distinct ip (unique visitors)
    $NumIP = $wpdb->get_var("SELECT count(distinct ip)\n\t\t\t\t\t\t\t\t\tFROM {$table_name}\n\t\t\t\t\t\t\t\t\tWHERE spider='' ;");
    $NP = ceil($NumIP / $LIMIT);
    $LimitValue = $pp * $LIMIT - $LIMIT;
    $sql = "SELECT *\n\t\t\t\t\tFROM {$table_name} as T1\n\t\t\t\t\tJOIN\n\t\t\t\t\t\t(SELECT max(id) as MaxId,ip\n\t\t\t\t\t\t\tFROM {$table_name}\n\t\t\t\t\t\t\tWHERE spider=''\n\t\t\t\t\t\t\tGROUP BY ip\n\t\t\t\t\t\t\tORDER BY MaxId DESC LIMIT {$LimitValue}, {$LIMIT}\n\t\t\t\t\t\t) as T2\n\t\t\t\t\tON T1.ip = T2.ip\n\t\t\t\t\tORDER BY MaxId DESC, id DESC;\n\t\t\t\t";
    $qry = $wpdb->get_results($sql);
    if ($StatPressV_Option['StatPressV_Use_GeoIP'] == 'checked' & function_exists('geoip_open')) {
        // Open the database to read and save info
        if (file_exists(luc_GeoIP_dbname('city'))) {
            $gic = geoip_open(luc_GeoIP_dbname('city'), GEOIP_STANDARD);
            $geoip_isok = true;
        }
    }
    echo "<div class='wrap'><h2>" . __('Visitor Spy', 'statpress') . "</h2>";
    ?>
<script>
	function ttogle(thediv){
	if (document.getElementById(thediv).style.display=="inline") {
	document.getElementById(thediv).style.display="none"
	} else {document.getElementById(thediv).style.display="inline"}
	}
</script>
<?php 
    $MaxId = 0;
    $num_row = 0;
    // Add pagination
    luc_insert_pagination_options("spyvisitors", $NumIP, $LIMIT);
    luc_print_pp_link($NP, $pp, $action);
    echo '<table class="widefat" id="mainspytab" name="mainspytab" width="99%" border="0" cellspacing="0" cellpadding="4">';
    foreach ($qry as $rk) {
        // Visitor Spy
        if ($MaxId != $rk->MaxId) {
            if ($geoip_isok === true) {
                $gir = GeoIP_record_by_addr($gic, $rk->ip);
            }
            echo "<thead><tr><th scope='colgroup' colspan='2'>";
            if ($rk->country != '') {
                echo "HTTP country " . luc_HTML_IMG($rk->country, 'country', false);
            } else {
                echo "Hostip country <IMG SRC='http://api.hostip.info/flag.php?ip=" . $rk->ip . "' border=0 width=18 height=12>  ";
            }
            if ($geoip_isok === true) {
                $lookupsvc = "GeoIP details";
            } else {
                $lookupsvc = "Hostip details";
            }
            echo "\t<strong><span><font size='2' color='#7b7b7b'> " . $rk->ip . " </font></span></strong>\n\t\t\t\t\t<span style='color:#006dca;cursor:pointer;border-bottom:1px dotted #AFD5F9;font-size:8pt;'\n\t\t\t\t\t\tonClick=ttogle('" . $rk->ip . "');>" . $lookupsvc . "</span></div>\n\t\t\t\t\t<div id='" . $rk->ip . "' name='" . $rk->ip . "'>";
            if ($geoip_isok === true) {
                echo "\t<small><br>\n\t\t\t\t\t\t\tCountry: " . utf8_encode($gir->country_name) . " (" . $gir->country_code . ")<br>\n\t\t\t\t\t\t\tCity: " . utf8_encode($gir->city) . "<br>\n\t\t\t\t\t\t\tLatitude/Longitude: <a href='http://maps.google.com/maps?q=" . $gir->latitude . "+" . $gir->longitude . "' target='_blank' title='Lookup latitude/longitude location on Google Maps...'>" . $gir->latitude . " " . $gir->longitude . "</a>\n\t\t\t\t\t\t</small>";
            } else {
                echo "\t<iframe style='overflow:hide;border:0px;width:100%;height:35px;font-family:helvetica;paddng:0;'\n\t\t\t\t\t\t\tscrolling='no' marginwidth=0 marginheight=0 src=http://api.hostip.info/get_html.php?ip=" . $rk->ip . ">\n\t\t\t\t\t\t</iframe>";
            }
            echo "\t<small>\n\t\t\t\t\t\t<br>" . $rk->os . "\n\t\t\t\t\t\t<br>" . $rk->browser . "\n\t\t\t\t\t\t<br>" . gethostbyaddr($rk->ip) . "\n\t\t\t\t\t\t<br>" . $rk->agent . "\n\t\t\t\t\t</small></div></th></tr></thead><tbody>\n\t\t\t\t\t<script> document.getElementById('" . $rk->ip . "').style.display='none';</script>\n\t\t\t\t\t<tr>\n\t\t\t\t\t<td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "";
            if ($rk->searchengine != '') {
                echo "<br><small>arrived from <b>" . $rk->searchengine . "</b> searching <a target='_blank' href='" . $rk->referrer . "' >" . urldecode($rk->search) . "</a></small>";
            } elseif ($rk->referrer != '' && strpos($rk->referrer, $home) === false) {
                echo "<br><small>arrived from <a target='_blank' href='" . $rk->referrer . "' >" . $rk->referrer . "</a></small>";
            }
            echo "</div></td></tr>\n";
            $MaxId = $rk->MaxId;
            $num_row = 1;
        } elseif ($num_row < $LIMIT_PROOF) {
            echo "<tr><td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "";
            if ($rk->searchengine != '') {
                echo "<br><small>arrived from <b>" . $rk->searchengine . "</b> searching <a target='_blank' href='" . $rk->referrer . "' >" . urldecode($rk->search) . "</a></small>";
            } elseif ($rk->referrer != '' && strpos($rk->referrer, $home) === false) {
                echo "<br><small>arrived from <a target='_blank' href='" . $rk->referrer . "' >" . $rk->referrer . "</a></small>";
            }
            $num_row += 1;
            echo "</td></tr></tbody>";
        }
    }
    echo "</div></td></tr>\n</table>";
    luc_print_pp_link($NP, $pp, $action);
    echo "</div>";
    luc_StatPressV_load_time();
}
Esempio n. 6
0
function luc_main_table_latest_spambots()
{
    global $wpdb, $StatPressV_Option;
    $table_name = STATPRESS_V_TABLE_NAME;
    $querylimit = isset($_POST['spambotsrows']) ? $_POST['spambotsrows'] : $StatPressV_Option['StatPressV_Rows_Per_Latest'];
    ?>
	<table class='widefat' >
		<thead>
		<tr>
			<th scope='col'>Date</th>
			<th scope='col'>Time</th>
			<th scope='col'>IP</th>
			<th scope='col'></th>
			<th scope='col' width="30%">Page</th>
			<th scope='col' width="30%">Agent</th>
		</tr>
		</thead>
		<tbody>
	<?php 
    $qry = $wpdb->get_results("SELECT date, time, ip, urlrequested, spider, agent\r\n\t\t\tFROM {$table_name}\r\n\t\t\tWHERE spider LIKE '%spam bot'\r\n\t\t\tORDER BY id DESC\r\n\t\t\tLIMIT {$querylimit};");
    foreach ($qry as $rk) {
        echo "<tr>\r\n\t\t\t\t\t<td>" . luc_hdate($rk->date) . "</td>\r\n\t\t\t\t\t<td>" . $rk->time . "</td>\r\n\t\t\t\t\t<td>" . luc_create_href($rk->ip, 'ip') . "</td>\r\n\t\t\t\t\t<td>" . luc_HTML_IMG($rk->spider, 'spider', false) . "</td>\r\n\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "</td>\r\n\t\t\t\t<td> " . $rk->agent . "</td>\r\n\t\t\t\t</tr>";
    }
    ?>
		</tbody>
	</table>
	<?php 
    if (isset($_POST['spambotsrows'])) {
        die;
    }
}
Esempio n. 7
0
function luc_spybot()
{
    global $wpdb, $StatPressV_Option;
    $action = "spybot";
    $table_name = STATPRESS_V_TABLE_NAME;
    $LIMIT = $StatPressV_Option['StatPressV_SpyBot_Bots_Per_Page'];
    $LIMIT_PROOF = $StatPressV_Option['StatPressV_SpyBot_Visits_Per_Bot'];
    if ($LIMIT == 0) {
        $LIMIT = 10;
    }
    if ($LIMIT_PROOF == 0) {
        $LIMIT_PROOF = 30;
    }
    $pa = luc_page_posts();
    $LimitValue = $pa * $LIMIT - $LIMIT;
    // limit the search 7 days ago
    $day_ago = gmdate('Ymd', current_time('timestamp') - 7 * 86400);
    $MinId = $wpdb->get_var("SELECT min(id) as MinId\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE date > {$day_ago};");
    // Number of distinct spiders after $day_ago
    $Num = $wpdb->get_var("SELECT count(distinct spider)\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE spider<>''\n\t\t\t\t\tAND id >{$MinId};");
    $NA = ceil($Num / $LIMIT);
    echo "<div class='wrap'><h2>" . __('Bot Spy', 'statpress') . "</h2>";
    // selection of spider, group by spider, order by most recently visit (last id in the table)
    $sql = "SELECT *\n\t\t\t\t\tFROM {$table_name} as T1\n\t\t\t\t\tJOIN\n\t\t\t\t\t\t(SELECT spider,max(id) as MaxId\n\t\t\t\t\t\t\tFROM {$table_name}\n\t\t\t\t\t\t\tWHERE spider<>''\n\t\t\t\t\t\t\tGROUP BY spider\n\t\t\t\t\t\t\tORDER BY MaxId\n\t\t\t\t\t\t\tDESC LIMIT {$LimitValue}, {$LIMIT}\n\t\t\t\t\t\t) as T2\n\t\t\t\t\tON T1.spider = T2.spider\n\t\t\t\t\tWHERE T1.id > {$MinId}\n\t\t\t\t\tORDER BY MaxId DESC, id DESC;\n\t\t\t\t";
    $qry = $wpdb->get_results($sql);
    echo '<div align="center">';
    luc_print_pp_pa_link(0, 0, $action, $NA, $pa);
    echo '</div><div align="left">';
    ?>
<script>
function ttogle(thediv){
if (document.getElementById(thediv).style.display=="inline") {
document.getElementById(thediv).style.display="none"
} else {document.getElementById(thediv).style.display="inline"}
}
</script>
<table class="widefat" id="mainspytab" name="mainspytab">
	<div align='left'>
		<?php 
    $spider = "robot";
    $num_row = 0;
    foreach ($qry as $rk) {
        // Bot Spy
        if ($robot != $rk->spider) {
            echo "<div align='left'>\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr><th scope='colgroup' colspan='2'>";
            $img = str_replace(" ", "_", strtolower($rk->spider));
            $img = str_replace('.', '', $img) . ".png";
            $lines = file(STATPRESS_V_PLUGIN_PATH . '/def/spider.dat');
            foreach ($lines as $line_num => $spider) {
                list($title, $id) = explode("|", $spider);
                if ($title == $rk->spider) {
                    break;
                }
                // break, the tooltip ($title) is found
            }
            echo "<IMG style='border:0px;height:16px;align:left;' alt='" . $title . "' title='" . $title . "' SRC='" . STATPRESS_V_PLUGIN_URL . '/images/spider/' . $img . "'>\n\t\t\t\t\t\t\t\t\t<span style='color:#006dca;cursor:pointer;border-bottom:1px dotted #AFD5F9;font-size:8pt;' onClick=ttogle('" . $img . "');>(more information)</span>\n\t\t\t\t\t\t\t\t\t<div id='" . $img . "' name='" . $img . "'><br /><small>" . $rk->ip . "</small><br><small>" . $rk->agent . "<br /></small></div>\n\t\t\t\t\t\t\t\t\t<script>document.getElementById('" . $img . "').style.display='none';</script>\n\t\t\t\t\t\t\t\t\t</th></tr></thead><tbody>\n\t\t\t\t\t\t\t\t\t<tr><td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "</td></tr>";
            $robot = $rk->spider;
            $num_row = 1;
        } else {
            if ($num_row < $LIMIT_PROOF) {
                echo "<tr>\n\t\t\t\t\t\t<td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "</td></tr>";
                $num_row += 1;
            }
        }
        echo "</div></td></tr>\n";
    }
    echo "</tbody></table>";
    luc_print_pp_pa_link(0, 0, $action, $NA, $pa);
    echo "</div>";
    luc_StatPressV_load_time();
}
Esempio n. 8
0
function luc_display_by_IP($ip)
{
    global $wpdb;
    $table_name = STATPRESS_V_TABLE_NAME;
    $qry_s = "SELECT *\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE ip = '{$ip}'\n\t\t\t\tORDER BY id DESC\n\t\t\t\t";
    $qry = $wpdb->get_results($qry_s);
    $num = $wpdb->num_rows;
    $qry_sa = "SELECT DISTINCT agent\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE ip = '{$ip}'\n\t\t\t\tORDER BY agent ASC ;\n\t\t\t\t";
    $qrya = $wpdb->get_results($qry_sa);
    if ($_POST['markbot'] == 'Mark as spambot') {
        luc_BanBot('ip', $ip);
    }
    if ($_POST['banip'] == 'Ban IP address') {
        luc_BanIP($ip);
    }
    $text_OS = $StatPressV_Option['StatPressV_Dont_Show_OS_name'] != 'checked' ? true : false;
    $text_browser = $StatPressV_Option['StatPressV_Dont_Show_Browser_name'] != 'checked' ? true : false;
    $text = "Report for " . $ip . " ";
    ?>
	<form method=post>
		<div class='wrap'><table style="width:100%"><tr><td><h2> <?php 
    _e($text);
    ?>
 </h2></td>

		<td width=50px align='right'>
			<input type=submit
				name=banip value='Ban IP address' >
		</td>
		</tr>
		</table>
		<table class='widefat'>
			<thead>
				<tr>
				<th scope='col' colspan='2'></th>
			</thead>
			<tbody>
				<tr>
					<td>Records in database:</td>
					<td> <?php 
    _e($num);
    ?>
 </td>
				</tr>
				<tr>
					<td>Latest hit:</td>
					<td> <?php 
    _e(luc_hdate($qry[0]->date) . " " . $qry[0]->time);
    ?>
 </td>
				</tr>
				<tr>
					<td>First hit:</td>
					<td> <?php 
    _e(luc_hdate($qry[$num - 1]->date) . " " . $qry[$num - 1]->time);
    ?>
 </td>
				</tr>
				<tr>
					<td>User agent(s):</td>
					<td> <?php 
    _e(luc_print_uas($qrya));
    ?>
 </td>
				</tr>
			</tbody>
		</table>
	<?php 
    $geoip = luc_GeoIP_get_data($ip);
    if ($geoip !== false) {
        ?>
		<table class='widefat'>
			<thead><tr><th scope='col' colspan='4'>GeoIP Information</th></tr></thead>
			<tbody>
			<tr>
				<td><strong>Country:</strong></td>
				<td> <?php 
        _e($geoip['cn'] . " (" . $geoip['cc'] . ")");
        ?>
					<IMG style='border:0px;height:16px;' alt='$cn' title='$cn' SRC=' <?php 
        _e(STATPRESS_V_PLUGIN_URL . "/images/domain/" . strtolower($geoip['cc']) . '.png');
        ?>
 '></td>
				<td><strong>Continent Code:</strong></td>
				<td> <?php 
        _e($geoip['continent_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>Region:</strong></td>
				<td> <?php 
        _e($geoip['region']);
        ?>
 </td>
				<td><strong>Area Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['area_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>City:</strong></td>
				<td> <?php 
        _e($geoip['city']);
        ?>
 </td>
				<td><strong>Postal Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['postal_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>Latitude/Longitude</strong></td>
				<td> <a href='http://maps.google.com/maps?q=<?php 
        _e($geoip['latitude'] . "+" . $geoip['longitude']);
        ?>
' target='_blank' title='Lookup latitude/longitude location on Google Maps...'><?php 
        _e($geoip['latitude'] . " " . $geoip['longitude']);
        ?>
</a></td>
				<td><strong>Metro Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['metro_code']);
        ?>
 </td>
			</tr>
			</tbody>
		</table>
		<?php 
    }
    ?>
		<table class='widefat'>
			<thead>
				<tr>
				<th scope='col' colspan='6'>URLs Requested</th>
				</tr>
			</thead>
			<thead>
				<tr>
				<th scope='col'>Date</th>
				<th scope='col'>Time</th>
				<th scope='col'>OS</th>
				<th scope='col'>Browser</th>
				<th scope='col'>Agent</th>
				<th scope='col'>Referrer</th>
				<th scope='col'>URL Requested</th>
				</tr>
			</thead>
			<tbody>
	<?php 
    foreach ($qry as $rk) {
        ?>
				<tr>
					<td> <?php 
        _e(luc_hdate($rk->date));
        ?>
 </td>
					<td> <?php 
        _e($rk->time);
        ?>
 </td>
					<td> <?php 
        _e(luc_HTML_IMG($rk->os, 'os', $text_OS));
        ?>
 </td>
					<td> <?php 
        _e(luc_HTML_IMG($rk->browser, 'browser', $text_browser));
        ?>
</td>
					<td> <?php 
        _e($rk->agent);
        ?>
 </td>
					<td> <?php 
        _e($rk->referrer);
        ?>
 </td>
					<td> <?php 
        _e(luc_post_title_Decode($rk->urlrequested));
        ?>
 </td>
				</tr>
			</tbody>
		<?php 
    }
    ?>
		</table>
		</div>
	</form>
	<?php 
    luc_StatPressV_load_time();
}