Changeset 17


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:
21 added
7 edited

Legend:

Unmodified
Added
Removed
  • web

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

    r16 r17  
    33$Options = array(
    44  'DB_Host' => 'localhost',
    5   'DB_Database' => 'www',
    6   'DB_User' => 'www',
     5  'DB_Database' => 'sunrisechat',
     6  'DB_User' => 'sunrisechat',
    77  'DB_Password' => '',
    8   'RootPath' => 'http://www.zdechov.net/sunrisechat/',
     8  'RootPath' => 'http://localhost/sunrisechat/',
    99  'ShowErrors' => 0,
    1010  'Title' => 'Sunrisechat',
     
    1212);
    1313
    14 $DB_Prefix = 'sunrisechat_';
    15 
    16 ?>
     14$DB_Prefix = '';
  • web/database.sql

    r16 r17  
    44  `name` varchar(255) NOT NULL default '',
    55  `hits` int(11) NOT NULL default '0',
    6   `date` date NOT NULL default '0000-00-00',
     6  `date` date NOT NULL,
    77  PRIMARY KEY  (`id`)
    88) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
     
    1212CREATE TABLE IF NOT EXISTS `user_notes` (
    1313  `id` int(11) NOT NULL auto_increment,
    14   `time` datetime NOT NULL default '0000-00-00 00:00:00',
     14  `time` datetime NOT NULL,
    1515  `nick` varchar(32) NOT NULL default '',
    1616  `title` varchar(64) NOT NULL default '',
  • web/index.php

    r16 r17  
    11<?php
    2   include_once('db.php');
    3   include_once('stat.php');
    4   StatProcess();
     2
     3include_once('Packages/Common/Common.php');
     4include_once('stat.php');
     5include_once('config.php');
     6
     7$Database = new Database();
     8$Database->Connect($Options['DB_Host'],$Options['DB_User'],$Options['DB_Password'], $Options['DB_Database']);
     9$Database->charset('utf8');
     10
     11StatProcess();
    512
    613function HumanDate($Date)
     
    916  if($Date != '0000-00-00') return(($Parts[2]*1).'.'.($Parts[1]*1).'.'.$Parts[0]);
    1017  else return('&nbsp;');
    11 }
    12  
    13 ?>
    14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     18}
     19
     20$Output = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    1521<html>
    1622<head>
    1723  <title>SunriseChat</title>
    18   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    19   <meta name="keywords" content="sunrisechat, sunrise, chat, lan, komunikace, program, zdrojové kody, source code, free, open source, zdarma, network, sí», zděchov">
    20   <meta name="description" content="Textový komunikační program pro lokální sítě">
     24  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     25  <meta name="keywords" content="sunrisechat, sunrise, chat, lan, komunikace, program, zdrojovĂ© kody, source code, free, open source, zdarma, network, sí», zdÄ›chov">
     26  <meta name="description" content="TextovĂ˝ komunikaÄŤnĂ­ program pro lokálnĂ­ sĂ­tÄ›">
    2127  <link rel="StyleSheet" href="style.css" type="text/css" media="all">
    2228</head>
     
    2430<table cellspacing="0" cellpadding="5"><tr><td colspan="4">
    2531  <img align="left" src="images/SunriseChat%20Logo.png" alt="Logo aplikace">
    26   <h2>Textový komunikační program pro lokální sítě</h2>
     32  <h2>TextovĂ˝ komunikaÄŤnĂ­ program pro lokálnĂ­ sĂ­tÄ›</h2>
    2733</td></tr><tr><td colspan="4">
    2834<hr>
    2935<img align="right" src="images/SunriseChat-MainWindow.png" alt="Okno aplikace">
    3036<strong>Popis</strong><br>
    31 <div>SunriseChat je program určený k textové komunikaci po lokální počítačové síti.
    32 Vznikl pro potřeby komunitní sítě <a href="http://www.zdechov.net/">ZděchovNET</a> jako náhrada programu <a href="http://lanchat.republika.pl/">LANChat</a>.
    33 Program LANChat byl přílią uzavřený a v mnoha ohledech omezený. Proto vznikl program SunriseChat, který předčí LANChat v mnoha ohledech a díky tomu, ľe je tvořen jako open source, s ním lze flexibilně reagovat na potřeby uľivatelů.</div>
     37<div>SunriseChat je program urÄŤenĂ˝ k textovĂ© komunikaci po lokálnĂ­ poÄŤĂ­taÄŤovĂ© sĂ­ti.
     38Vznikl pro potĹ™eby komunitnĂ­ sĂ­tÄ› <a href="http://www.zdechov.net/">ZdÄ›chovNET</a> jako náhrada programu <a href="http://lanchat.republika.pl/">LANChat</a>.
     39Program LANChat byl příliš uzavĹ™enĂ˝ a v mnoha ohledech omezenĂ˝. Proto vznikl program SunriseChat, kterĂ˝ pĹ™edÄŤĂ­ LANChat v mnoha ohledech a dĂ­ky tomu, Ĺľe je tvoĹ™en jako open source, s nĂ­m lze flexibilnÄ› reagovat na potĹ™eby uĹľivatelĹŻ.</div>
    3440<ul style="font-size: small;">
    35   <li>naprogramováno v Delphi 2005</li>
    36   <li>dostupné zdrojové kódy</li>
    37   <li>doplnění plného jména uľivatele v textovém řádku klávesou vpravo ze seznamu uľivatelů</li>
    38   <li>moľnost měnit velikost okna od miniaturního aľ k maximalizovanému</li>
    39   <li>umoľnit spuątění více instancí na jednom počítači</li>
    40   <li>vyuľití průhlednosti a bublinkové nápovědy pod Windows 2000/XP</li>
    41   <li>konfigurovatelný vzhled</li>
    42   <li>moľnost naprogramovat si vlastní frontend</li>
    43   <li>podpora místností</li>
    44   <li>zasílání výzvy</li>
     41  <li>naprogramováno v Delphi 2005</li>
     42  <li>dostupnĂ© zdrojovĂ© kĂłdy</li>
     43  <li>doplnÄ›nĂ­ plnĂ©ho jmĂ©na uĹľivatele v textovĂ©m řádku klávesou vpravo ze seznamu uĹľivatelĹŻ</li>
     44  <li>moĹľnost mÄ›nit velikost okna od miniaturnĂ­ho aĹľ k maximalizovanĂ©mu</li>
     45  <li>umoĹľnit spuÄ…tÄ›nĂ­ vĂ­ce instancĂ­ na jednom poÄŤĂ­taÄŤi</li>
     46  <li>vyuĹľitĂ­ prĹŻhlednosti a bublinkovĂ© nápovÄ›dy pod Windows 2000/XP</li>
     47  <li>konfigurovatelnĂ˝ vzhled</li>
     48  <li>moĹľnost naprogramovat si vlastnĂ­ frontend</li>
     49  <li>podpora mĂ­stnostĂ­</li>
     50  <li>zasĂ­lánĂ­ vĂ˝zvy</li>
    4551  <li>test odezvy (ping)</li>
    46   <li>detailní informace o připojených uľivatelých</li>
    47   <li>blokování uľivatelů</li>
    48   <li>stavy Přítomen, Nepřítomen, Neviditelný</li>
    49   <li>automatické odcházení po určité době</li>
    50   <li>moľnost přiřazení akcí k systémovým a uřivatelským událostem</li>
    51   <li>testování aktivních prvků v síti</li>
    52   <li>jednoduchý textový komunikační protokol</li>
    53   <li>předávač UDP paketů mezi podsítěmi pro Linux</li>
    54   <li>záznam zpráv do databáze MySQL na Linuxovém serveru</li>
    55   <li>jednouchá verze aplikace pro internetový prohlíľeč</li>
    56   <li>podpora smajlíků a obrázků pomocí uľivatelských událostí</li>
    57   <li>zobrazování aktivních internetových odkazů</li>
    58   <li>moľnost spouątět program s vlastními pojmenovanými nastaveními</li>
     52  <li>detailnĂ­ informace o pĹ™ipojenĂ˝ch uĹľivatelĂ˝ch</li>
     53  <li>blokovánĂ­ uĹľivatelĹŻ</li>
     54  <li>stavy Přítomen, Nepřítomen, NeviditelnĂ˝</li>
     55  <li>automatickĂ© odcházenĂ­ po urÄŤitĂ© dobÄ›</li>
     56  <li>moĹľnost pĹ™iĹ™azenĂ­ akcĂ­ k systĂ©movĂ˝m a uĹľivatelskĂ˝m událostem</li>
     57  <li>testovánĂ­ aktivnĂ­ch prvkĹŻ v sĂ­ti</li>
     58  <li>jednoduchĂ˝ textovĂ˝ komunikaÄŤnĂ­ protokol</li>
     59  <li>pĹ™edávaÄŤ UDP paketĹŻ mezi podsĂ­tÄ›mi pro Linux</li>
     60  <li>záznam zpráv do databáze MySQL na LinuxovĂ©m serveru</li>
     61  <li>jednouchá verze aplikace pro internetovĂ˝ prohlĂ­ĹľeÄŤ</li>
     62  <li>podpora smajlĂ­kĹŻ a obrázkĹŻ pomocĂ­ uĹľivatelskĂ˝ch událostĂ­</li>
     63  <li>zobrazovánĂ­ aktivnĂ­ch internetovĂ˝ch odkazĹŻ</li>
     64  <li>moĹľnost spouštÄ›t program s vlastnĂ­mi pojmenovanĂ˝mi nastavenĂ­mi</li>
    5965</ul>
    6066<hr>
    6167</td></tr>
    6268<tr class="Downloads"><td valign="top">
    63 <strong>Poslední verze 2.9:</strong><br>
     69<strong>PoslednĂ­ verze 2.9:</strong><br>
    6470<a href="InstalaceSunriseChat-2.9.exe">[ Windows binary ]</a><br>
    6571<a href="SunriseChat-2.9-source.zip">[ Delphi source ]</a><br>
     
    6975<a href="WebSunriseChat-source.zip">[ C+PHP source ]</a><br>
    7076</td><td valign="top">
    71 <strong>Daląí screenshoty:</strong><br>
    72 <a href="images/SunriseChat-Nastaveni-Ruzne.png">[ Okno Nastavení - Různé ]</a><br>
    73 <a href="images/SunriseChat-Nastaveni-Vzhled.png">[ Okno Nastavení - Vzhled ]</a><br>
    74 <a href="images/SunriseChat-Nastaveni-Systemove_udalosti.png">[ Okno Nastavení - Systémové události ]</a><br>
    75 <a href="images/SunriseChat-Nastaveni-Uzivatelske_udalosti.png">[ Okno Nastavení - Uľivatelské události ]</a><br>
     77<strong>DalÄ…Ă­ screenshoty:</strong><br>
     78<a href="images/SunriseChat-Nastaveni-Ruzne.png">[ Okno NastavenĂ­ - RĹŻznĂ© ]</a><br>
     79<a href="images/SunriseChat-Nastaveni-Vzhled.png">[ Okno NastavenĂ­ - Vzhled ]</a><br>
     80<a href="images/SunriseChat-Nastaveni-Systemove_udalosti.png">[ Okno NastavenĂ­ - SystĂ©movĂ© události ]</a><br>
     81<a href="images/SunriseChat-Nastaveni-Uzivatelske_udalosti.png">[ Okno NastavenĂ­ - UĹľivatelskĂ© události ]</a><br>
    7682<a href="images/Screenshot6.png">[ Okno Informace ]</a><br>
    7783</td><td valign="top">
    78 <strong>Pouľité součásti:</strong><br>
    79 <a href="fndSck327.zip">[ Sockets 3.27 source ]</a> <a href="http://fundementals.sourceforge.net/">Domovská stránka</a><br>
    80 <a href="nsis20.exe">[ NSIS 2.0 Installer ]</a> <a href="http://nsis.sourceforge.net/">Domovská stránka</a><br>
    81 <a href="CoolTrayIcon.zip">[ CoolTrayIcon source ]</a> <a href="http://subsimple.com/delphi.asp">Domovská stránka</a><br>
     84<strong>PouĹľitĂ© součásti:</strong><br>
     85<a href="fndSck327.zip">[ Sockets 3.27 source ]</a> <a href="http://fundementals.sourceforge.net/">Domovská stránka</a><br>
     86<a href="nsis20.exe">[ NSIS 2.0 Installer ]</a> <a href="http://nsis.sourceforge.net/">Domovská stránka</a><br>
     87<a href="CoolTrayIcon.zip">[ CoolTrayIcon source ]</a> <a href="http://subsimple.com/delphi.asp">Domovská stránka</a><br>
    8288<a href="GIFImage-modified.zip">[ GIFImage modified source ]</a> <a href="http://home20.inet.tele.dk/tolderlund/delphi/">Zdroj souboru</a><br>
    83 <a href="RichView_modified.zip">[ RichView modified source ]</a> <a href="http://www.trichview.com/download/">Domovská stránka</a><br>
     89<a href="RichView_modified.zip">[ RichView modified source ]</a> <a href="http://www.trichview.com/download/">Domovská stránka</a><br>
    8490</td></tr></table>
    85 <hr>
    86 <?php
     91<hr>';
     92
    8793/*
    88 <img src="images/notes.png" alt="Notes"> <strong>Poznámky uľivatelů:</strong><div class="UserNotes">
     94<img src="images/notes.png" alt="Notes"> <strong>Poznámky uĹľivatelĹŻ:</strong><div class="UserNotes">
    8995<?
    9096if(array_key_exists('nick', $_POST) and array_key_exists('title', $_POST) and array_key_exists('content', $_POST))
    9197{
    9298  DB_Insert('user_notes', array('content' => addslashes($_POST['content']), 'nick' => addslashes($_POST['nick']), 'title' => addslashes($_POST['title']), 'time' => 'NOW()', 'remote_addr' => gethostbyaddr($_SERVER['REMOTE_ADDR'])));
    93   echo('<br>Vaąe poznámka uloľena!<br>');
     99  echo('<br>VaÄ…e poznámka uloĹľena!<br>');
    94100}
    95101echo('<br>');
     
    97103DB_Select('user_notes', '*', '1  ORDER BY time DESC');
    98104while($Row = DB_Row())
    99 { 
     105{
    100106  echo('<div class="UserNotesItem"><div class="UserNotesTitle"><span>'.HumanDate($Row['time']).'</span><strong>'.$Row['title'].' ('.$Row['nick'].')</strong></div>');
    101107  echo('<div class="UserNotesContent">'.$Row['content'].'</div></div>');
    102108}
    103109echo('<div class="UserNotesForm"><form action="index.php" method="post"><table align="center" cellspacing="0" class="UserNotesTable">'.
    104 '<tr><th colspan="2">Přidat novou poznámku</th></tr>'.
    105 '<tr><td>Jméno:</td><td><input size="80" name="nick" type="text"></td></tr>'.
     110'<tr><th colspan="2">PĹ™idat novou poznámku</th></tr>'.
     111'<tr><td>JmĂ©no:</td><td><input size="80" name="nick" type="text"></td></tr>'.
    106112'<tr><td>Titulek:</td><td><input size="80" name="title" type="text"></td></tr>'.
    107113'<tr><td>Text:</td><td><textarea rows="4" cols="60" name="content"></textarea></td></tr>'.
     
    110116echo('</div></div>');
    111117*/
    112 ?>
    113 <br>
    114 <div id="AdminInfo">| Web mistr: Jiří Hajda | e-mail: robie@centrum.cz | ICQ: 277158770 | <a href="http://validator.w3.org/check?uri=http://zdechov.net/sunrisechat/">HTML</a> | Naposledy aktualizováno: 3.2.2006 |</div>
    115118
    116 </body></html>
     119$Output .= '<br>
     120<div id="AdminInfo">| Web mistr: Jiří Hajda | e-mail: robie@centrum.cz | ICQ: 277158770 | <a href="http://validator.w3.org/check?uri='.$Options['RootPath'].'">HTML</a> | Naposledy aktualizováno: 3.2.2006 |</div>
     121
     122</body></html>';
     123
     124echo($Output);
  • 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>';
  • web/statistic.php

    r16 r17  
    11<?php
    22include_once('style.php');
    3 ShowHeader('<strong style="font-size: 26pt;">ZděchovNET</strong> - komunitní počítačová sí»<br>','Statistika');
     3ShowHeader('<strong style="font-size: 26pt;">ZdÄ›chovNET</strong> - komunitnĂ­ poÄŤĂ­taÄŤová sí»<br>','Statistika');
    44
    55echo(StatShow());
  • web/style.php

    r16 r17  
    3131{
    3232  global $Time_Start, $refresh, $Charset, $Description, $Keywords;
    33   $Time_Start = GetMicrotime();         // Zjisti počáteční čas
     33  $Time_Start = GetMicrotime();         // Zjisti počáteÄŤnĂ­ ÄŤas
    3434  $Cesty = array(
    35     '/www/index.php' => '<a href="/index.php">Rozcestník</a>',
    36     '/www/vyzva.php' => '<a href="/index.php">Rozcestník</a> &gt; <a href="/www/vyzva.php">Výzva k připojení</a>',
    37     '/www/statistic.php' => '<a href="/index.php">Rozcestník</a> &gt; <a href="/www/statistic.php">Statistika</a>',
     35    '/www/index.php' => '<a href="/index.php">RozcestnĂ­k</a>',
     36    '/www/vyzva.php' => '<a href="/index.php">RozcestnĂ­k</a> &gt; <a href="/www/vyzva.php">VĂ˝zva k pĹ™ipojenĂ­</a>',
     37    '/www/statistic.php' => '<a href="/index.php">RozcestnĂ­k</a> &gt; <a href="/www/statistic.php">Statistika</a>',
    3838  );
    3939  echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    6464  global $Time_Start;
    6565  $Time = floor((GetMicrotime() - $Time_Start)*100)/100;
    66   echo('</div><div style="border-width: 1 0 0 0; border-color: gray; border-style: solid;" align="center"><i style="font-size: x-small;">| Poslední aktualizace: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' | Doba generování stránky: '.$Time.' s | Webmistr: robie@centrum.cz |</i></div>');
     66  echo('</div><div style="border-width: 1 0 0 0; border-color: gray; border-style: solid;" align="center"><i style="font-size: x-small;">| PoslednĂ­ aktualizace: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' | Doba generovánĂ­ stránky: '.$Time.' s | Webmistr: robie@centrum.cz |</i></div>');
    6767  //ShowArray($GLOBALS);
    6868  echo('</body></html>');
    6969}
    7070
    71 ?>
Note: See TracChangeset for help on using the changeset viewer.