Ahoj Martine,
mám krátký dotaz v podstatě jen na tebe, protože si myslím, že nás nebude mnoho, kteří využívají ty samé statistiky, jaké máš na 1zsostrov.cz.
Zveřejnila jsem obsahy souborů, takže pokud by něco napadlo velké odborníky jako je např. pa3k, byla bych moc ráda :-).
Už při přechodu z phpRS 2.8.0 na 2.8.1 jsem měla a statistikama problém, který se mi naštěstí podařilo vyřešit. Teď při přechodu z PHP4 na PHP5 mi to opět dělá chybu, ale nejsem schopná zjistit proč. PhpRS jsem měla na webu s PHP4, kde mi statistiky bez problémů fungovali. Teď ho chci dávat na PHP5 a tak jsem jen nejprve přesunula na local, abych odladila případné chyby. Použila jsem nové EasyPHP s těmito verzemi AMP:
PHP 5.2.0
Apache 2.2.3
MySQL 5.0.27
PhpRS jede v pohodě až na statistiky. Při spuštění index.php?akce=navstevnost to vypíše spoustu chyb, díky nimž se rozpadne layout.
Obrázek rozpadlého webu jsem nahrála zde: [
http://uloz.to/71906/pokazene-statistiky.jpg]
(cesta k souboru je vyčerněna, protože obsahuje název webu, který nemohu zveřejnit)
Chyby to vypisuje tyto:
Notice: Undefined offset: 32 in x:\xxx\engine.php on line 267
Notice: Undefined offset: 33 in x:\xxx\engine.php on line 267
Notice: Undefined offset: 34 in x:\xxx\engine.php on line 267
Notice: Undefined offset: 35 in x:\xxx\engine.php on line 267
Notice: Undefined offset: 2 in x:\xxx\engine.php on line 313
Notice: Undefined offset: 1 in x:\xxx\engine.php on line 313
Notice: Undefined offset: 1 in x:\xxx\engine.php on line 313
V engine.php je na řádku 263 až 274 toto:
for($i=1;$i<=7;$i++):
echo '<td align="center">';
$day = $x*7+$i-$first+1; // na základě obou cyklů postupně počítá den
if($date[$day] == $i)
DateLink($day, $day, $day); // odkaz na denní statistiku
else
echo " ";
echo '</td>';
endfor;
echo '</tr>';
a na 310 až 326 je toto:
// převod na český zápis data
$explode1 = explode(" ", $maxdate);
$explode2 = explode("-", $explode1[0]);
$maxdatecz = (int)$explode2[2] . ". " . (int)$explode2[1] . ". " . $explode2[0] . " " . $explode1[1];
$from = explode("-", $from_date); //od
$to = explode("-", $to_date); //do
$period = (int)$from[2] . ". " . (int)$from[1] . ". " . $from[0] . " - " . (int)$to[2] . ". " . (int)$to[1] . ". " . $to[0];
echo "<p align=\"center\" class=\"statistika3\">období: " . $period . "</p>";
echo "<p align=\"center\" class=\"statistika4\">souhrnné statistiky</p>
<table cellspacing=\"0\" cellpadding=\"5\" border=\"1\" align=\"center\" class=\"statistika2\">
<tr><td>pageviews</td> <td>" . $pageviews ."</td></tr>
<tr><td>visits</td> <td>" . $visits ."</td></tr>
<tr><td>unikátních ip</td> <td>" . $unique_ip ."</td></tr>
<tr><td>poslední přístup</td> <td>" . $maxdatecz ."</td></tr>
</table><br>";
Zatím jsem se to snažila opravit tím, co jsi tady psal, že jsem nahradila v counter.php toto:
$REMOTE_HOST -> $_SERVER['REMOTE_HOST']
$HTTP_USER_AGENT -> $_SERVER['HTTP_USER_AGENT']
$REMOTE_ADDR -> $_SERVER['REMOTE_ADDR']
A dále jsem nahradila začátky:
<?
Novějším zápisem:
<?php
(phpRS 2.8.1 už má všude <?php , ale na statistikách jsem měla stále jen <? )
Ale nic se zatím nezměnilo – pořád to ukazuje ty chyby...
Vypnutí error_reporting v PHP.ini to řeší, ale ráda bych měl čistý kód.
Nenapadá, prosím, tebe nebo někoho jiného něco?
Předem moc děkuji za jakoukoliv radu.