Changeset 17 for web/stat.php


Ignore:
Timestamp:
Jul 27, 2016, 11:20:41 PM (8 years ago)
Author:
chronos
Message:
  • Modified: Old database class replaced by newer from Common package to fix compatibility with PHP7.
Location:
web
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • web

    • Property svn:ignore set to
      config.php
      .buildpath
      .project
      .settings
  • web/stat.php

    r16 r17  
    11<?php
    22
    3 // Pojmenování statistických kategorií
    4 $StatCategory = array(   
    5   'browser' => 'Prohlíľeče',
    6   'referer' => 'Odkud přiąli',
     3// Pojmenování statistických kategorií
     4$StatCategory = array(
     5  'browser' => 'Prohlížeče',
     6  'referer' => 'Odkud přiÅ¡li',
    77  'module' => 'Sekce webu',
    8   'host' => 'Adresy návątěvníků',
    9   'word' => 'Hledaná slova',
    10   'user' => 'Uľivatelé',
     8  'host' => 'Adresy návÅ¡těvníků',
     9  'word' => 'Hledaná slova',
     10  'user' => 'Uživatelé',
    1111  'action' => 'Akce',
    1212);
    1313
    14 $StatMonths = array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
     14$StatMonths = array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
    1515
    1616/*
     
    3232function StatUpdate($Cat, $Name)
    3333{
    34   global $DB_Prefix;
     34  global $DB_Prefix, $Database;
     35
    3536  $Date = System_Date();
    36   DB_Select('stat', '*', "category='$Cat' AND name='$Name' AND date='$Date'");
    37   if(DB_NumRows()>0) DB_Query("UPDATE ".$DB_Prefix."stat SET hits=hits+1 WHERE category='$Cat' AND name='$Name' AND date='$Date'");
    38   else 
     37  $DbResult = $Database->select('stat', '*', "category='$Cat' AND name='$Name' AND date='$Date'");
     38  if($DbResult->num_rows > 0) $Database->query("UPDATE ".$DB_Prefix."stat SET hits=hits+1 WHERE category='$Cat' AND name='$Name' AND date='$Date'");
     39  else
    3940  {
    4041    $Data = array(
     
    4445      'hits' => 1,
    4546    );
    46     DB_Insert('stat',$Data);
     47    $Database->insert('stat', $Data);
    4748  }
    4849}
     
    5152{
    5253  global $Options;
    53   // Zjistí zobrazený modul
     54  // Zjistí zobrazený modul
    5455  StatUpdate('module', substr($_SERVER['SCRIPT_NAME'], $Options['StatPathCut']));
    55  
    56   // Zjistí stránku odkud uzivatel přisel
     56
     57  // Zjistí stránku odkud uzivatel přisel
    5758  if(array_key_exists('HTTP_REFERER', $_SERVER))
    5859  {
    5960    $Url = explode('/',$_SERVER['HTTP_REFERER']);
    60     if(strpos($Url[2],':')) 
     61    if(strpos($Url[2],':'))
    6162    {
    6263      $Hostname = explode(':',$Url[2]);
     
    6465    } else $ServerIP = gethostbyname($Url[2]);
    6566    //echo($ServerIP.'-'.$_SERVER["SERVER_ADDR"]);
    66     if(($ServerIP != $_SERVER["SERVER_ADDR"]) && ($ServerIP!='127.0.0.1')) 
    67       StatUpdate('referer', $_SERVER['HTTP_REFERER']);     
     67    if(($ServerIP != $_SERVER["SERVER_ADDR"]) && ($ServerIP!='127.0.0.1'))
     68      StatUpdate('referer', $_SERVER['HTTP_REFERER']);
    6869  } else StatUpdate('referer', 'direct');
    69  
    70   // Zjistí typ prohlíµeče
     70
     71  // Zjistí typ prohlíľeče
    7172  StatUpdate('browser', $_SERVER['HTTP_USER_AGENT']);
    72   // Zjistí DNS a IP adresu klienta
     73  // Zjistí DNS a IP adresu klienta
    7374  StatUpdate('host', $_SERVER['REMOTE_ADDR']);
    7475}
     
    9798function StatShowYears()
    9899{
    99   global $Options;
     100  global $Options, $Database;
     101
    100102  if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET))
    101103  {
    102     $Output = '<div class="StatList"><strong>Roční statistika</strong><br><br>'.
    103     '<table class="StatTable"><tr><th>Rok</th><th>Prohlédnutých stránek</th></tr>';
    104 
    105     // Zjisti rozmezí roků
    106     DB_Select('stat', 'DISTINCT date', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
    107     while($Row = DB_Row())
     104    $Output = '<div class="StatList"><strong>Roční statistika</strong><br><br>'.
     105    '<table class="StatTable"><tr><th>Rok</th><th>Prohlédnutých stránek</th></tr>';
     106
     107    // Zjisti rozmezí roků
     108    $DbResult = $Database->select('stat', 'DISTINCT date', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
     109    while($Row = $DbResult->fetch_assoc())
    108110    {
    109111      $Year = substr($Row['date'],0,4);
     
    113115            if($Year > $Max) $Max = $Year;
    114116    }
    115     // Načti body roků a body celkem
     117    // Načti body roků a body celkem
    116118    for($I=$Min;$I<=$Max;$I++)
    117119    {
     
    119121            $DateTo = $DateFrom.'-12-31';
    120122            $DateFrom .= '-01-01';
    121        
    122       DB_Select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
    123       $Row = DB_Row();
     123
     124      $DbResult = $Database->select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
     125      $Row = $DbResult->fetch_row();
    124126      $Total = $Row[0];
    125      
    126       DB_Select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"');
    127       $Row = DB_Row();
     127
     128      $DbResult = $Database->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"');
     129      $Row = $DbResult->fetch_row();
    128130            $Percent = round($Row[0]/$Total*100,2);
    129131            if($Percent==0) $Percent = '0';
    130132            $Output .= '<tr><td><a href="?module=stat&amp;category='.$_GET['category'].'&amp;name='.$_GET['name'].'&amp;period=months&amp;year='.$I.'">'.$I.'</a></td>'.
    131       '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp; '.$Percent.'% ('.$Row[0].')</td></tr>'; 
    132     }
    133     $Output .= '</table><a href="?module=stat&amp;category='.$_GET['category'].'">Zpátky přehled statistiky</a></div>';
     133      '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp; '.$Percent.'% ('.$Row[0].')</td></tr>';
     134    }
     135    $Output .= '</table><a href="?module=stat&amp;category='.$_GET['category'].'">Zpátky přehled statistiky</a></div>';
    134136  }
    135137  return($Output);
    136138}
    137139
    138 // Zobrazí statistiku měsícu //
     140// Zobrazí statistiku měsícu //
    139141function StatShowMonths()
    140142{
    141   global $StatMonths;
     143  global $StatMonths, $Database;
    142144  if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET) and array_key_exists('year', $_GET))
    143145  {
    144  
    145     $Output = '<div class="StatList"><strong>Měsíční statistika pro rok '.$_GET['year'].'</strong><br><br>'.
    146     '<table class="StatTable" cellspacing="0"><tr><th>Měsíc</th><th>Prohlédnutých stránek</th></tr>';
    147 
    148     // Spočítej počty pro měsíce
     146
     147    $Output = '<div class="StatList"><strong>Měsíční statistika pro rok '.$_GET['year'].'</strong><br><br>'.
     148    '<table class="StatTable" cellspacing="0"><tr><th>Měsíc</th><th>Prohlédnutých stránek</th></tr>';
     149
     150    // Spočítej počty pro měsíce
    149151    for($I=1;$I<13;$I++)
    150152    {
     
    152154            $DateTo = $DateFrom.'31';
    153155            $DateFrom .= '01';
    154        
    155       DB_Select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
    156       $Row = DB_Row();
     156
     157      $DbResult = $Database('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
     158      $Row = $DbResult->fetch_row();
    157159      $Total = $Row[0];
    158160
    159       DB_Select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"');
    160       $Row = DB_Row();
     161      $DbResult = $Datbase->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date>="'.$DateFrom.'" AND date<="'.$DateTo.'" AND category="'.$_GET['category'].'"');
     162      $Row = $DbResult->fetch_row();
    161163      $Percent = round($Row[0]/$Total*100,2);
    162164            if($Percent==0) $Percent = '0';
    163165            $Output .= '<tr><td><a href="?module=stat&category='.$_GET['category'].'&name='.$_GET['name'].'&period=days&year='.$_GET['year'].'&month='.$I.'">'.$StatMonths[$I-1].'</a></td>'.
    164       '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp '.$Percent.'% ('.$Row[0].')</td></tr>'; 
    165     }
    166     $Output .= '</table><a href="?module=stat&amp;period=years&amp;category='.$_GET['category'].'&amp;name='.$_GET['name'].'">Zpátky na statistiku roků</a></div>';
     166      '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp '.$Percent.'% ('.$Row[0].')</td></tr>';
     167    }
     168    $Output .= '</table><a href="?module=stat&amp;period=years&amp;category='.$_GET['category'].'&amp;name='.$_GET['name'].'">Zpátky na statistiku roků</a></div>';
    167169    return($Output);
    168170  }
     
    171173function StatShowDays()
    172174{
    173   global $StatMonths;
     175  global $StatMonths, $Database;
     176
    174177  if(array_key_exists('name', $_GET) and array_key_exists('category', $_GET) and array_key_exists('year', $_GET) and array_key_exists('month', $_GET))
    175178  {
    176     $Output = '<div class="StatList"><strong>Denní statistika pro měsic '.$StatMonths[$_GET['month']].'</strong><br><br>'.
    177     '<table class="StatTable" cellspacing="0"><tr><th>Den</th><th>Prohlédnutých stránek</th></tr>';
     179    $Output = '<div class="StatList"><strong>Denní statistika pro měsic '.$StatMonths[$_GET['month']].'</strong><br><br>'.
     180    '<table class="StatTable" cellspacing="0"><tr><th>Den</th><th>Prohlédnutých stránek</th></tr>';
    178181    for($I=1;$I<32;$I++)
    179182    {
    180             DB_Select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
    181       $Row = DB_Row();
     183            $DbResult = $Database->select('stat', 'SUM(hits)', 'name="'.$_GET['name'].'" AND category="'.$_GET['category'].'"');
     184      $Row = $DbResult->fetch_row();
    182185      $Total = $Row[0];
    183186
    184187      $Date = $_GET['year'].'-'.$_GET['month'].'-'.$I;
    185       DB_Select('stat', 'hits', 'name="'.$_GET['name'].'" AND date="'.$Date.'" AND category="'.$_GET['category'].'"');
    186       $Row = DB_Row();
    187            
     188      $DbResult = $Database->select('stat', 'hits', 'name="'.$_GET['name'].'" AND date="'.$Date.'" AND category="'.$_GET['category'].'"');
     189      $Row = $DbResult->fetch_row();
     190
    188191      $Percent = round($Row[0]/$Total*100,2);
    189192            if($Percent==0) $Percent = '0';
    190193            $Output .= '<tr><td>'.$I.'</td>'.
    191       '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp '.$Percent.'% ('.$Row[0].')</td></tr>'; 
    192     }
    193     $Output .= '</table><a href="?module=stat&period=months&name='.$_GET['name'].'&category='.$_GET['category'].'&year='.$_GET['year'].'">Zpátky na statistiku měsíců</a></div>';
     194      '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.round($Percent*2).'" height="15"><img src="images/rightbar.gif" width="7" height="15">&nbsp '.$Percent.'% ('.$Row[0].')</td></tr>';
     195    }
     196    $Output .= '</table><a href="?module=stat&period=months&name='.$_GET['name'].'&category='.$_GET['category'].'&year='.$_GET['year'].'">Zpátky na statistiku měsíců</a></div>';
    194197  }
    195198  return($Output);
     
    198201function StatShowMain()
    199202{
    200     global $StatCategory;
    201     DB_Select('stat', 'DISTINCT category');
    202     $Output = '<div class="StatList"><strong>Seznam kategorií:</strong><br><br><table class="StatTable" cellspacing="0"><tr><th>Název</t></tr>';
    203     while($Row = DB_Row())
     203    global $StatCategory, $Database;
     204
     205    $DbResult = $Database->select('stat', 'DISTINCT category');
     206    $Output = '<div class="StatList"><strong>Seznam kategorií:</strong><br><br><table class="StatTable" cellspacing="0"><tr><th>Název</t></tr>';
     207    while($Row = $DbResult->fetch_assoc())
    204208    {
    205209      $Output .= '<tr><td><a href="?module=stat&category='.$Row['category'].'">'.$StatCategory[$Row['category']].'</a></td></tr>';
     
    208212    if(array_key_exists('category', $_GET))
    209213    {
    210       DB_Select('stat', 'SUM(hits)', 'category="'.$_GET['category'].'"');
    211       $Row = DB_Row();
     214     $DbResult = $Database->select('stat', 'SUM(hits)', 'category="'.$_GET['category'].'"');
     215      $Row = $DbResult->fetch_row();
    212216      $All = $Row[0];
    213       $Output .= '<br><strong>Výpis kategorie:</strong><br><br><table class="StatTable" cellspacing="0"><tr><th>Název</th><th>Stránek</th></tr>';
    214       DB_Select('stat', 'DISTINCT name', "category='".$_GET['category']."' ORDER BY 'name'");
    215       while($Row = DB_Row())
     217      $Output .= '<br><strong>Výpis kategorie:</strong><br><br><table class="StatTable" cellspacing="0"><tr><th>Název</th><th>Stránek</th></tr>';
     218      $DbResult = $Database->select('stat', 'DISTINCT name', "category='".$_GET['category']."' ORDER BY 'name'");
     219      while($Row = $DbResult->fetch_assoc())
    216220      {
    217         DB_Save();
    218         DB_Select('stat', 'SUM(hits)', "name='".$Row['name']."' AND category='".$_GET['category']."'");
    219         $Row2 = DB_Row();
    220         if($Row['name'] == 'direct') $Nazev = 'Zadáno přímo'; else $Nazev = $Row['name'];
    221         if($_GET['category'] == 'host') $Nazev = gethostbyaddr($Nazev);
     221        $DbResult2 = $Datbase->select('stat', 'SUM(hits)', "name='".$Row['name']."' AND category='".$_GET['category']."'");
     222        $Row2 = $DbResult2->fetch_array();
     223        if($Row['name'] == 'direct') $Nazev = 'Zadáno přímo'; else $Nazev = $Row['name'];
     224        if($_GET['category'] == 'host') $Nazev = gethostbyaddr($Nazev);
    222225        $Output .= '<tr><td><a href="?module=stat&category='.$_GET['category'].'&period=years&name='.$Row['name'].'">'.$Nazev.'</a></td>'.
    223226        '<td><img src="images/leftbar.gif" width="7" height="15"><img src="images/mainbar.gif" width="'.(round($Row2[0]/$All*100,2)).'" height="15"><img src="images/rightbar.gif" width="7" height="15">'.$Row2[0].'</td></tr>';
    224         DB_Load();
    225227      }
    226228      $Output .= '</table></div>';
Note: See TracChangeset for help on using the changeset viewer.