| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
Zdravím,
Rozhodol som sa spraviť si skript ktorý mi bude robiť štatistiku prístupov a tak. Mám súbor pocitadlo.php, ktorý vykonáva všetky zápisy do súborov .db. Keď navštívim stránku xxxxx.xx/xx/pocitadlo.php, tak to funguje (skript vypíše iba "0", a do súborov .db sa zapíše všetko čo sa má, priradí sa uživateľovi cookie...). Keď však daný súbor vložím pomocou include do iného súboru .php tak mi tam vybehne veľa chýb s fopen (failed to open stream: No such file or directory) a od toho sa odvíjajúcich chýb s fwrite a fread (supplied argument is not a valid stream resource). Nechápem prečo mi túto chybu hlási iba keď to mám pomocou include - a to aj v prípadoch keď ten súbor existuje - niektoré som totiž vytvoril dopredu, iné nechávam vytvárať skript.
pocitadlo.php je tu:
Kód: <?php
date_default_timezone_set('Europe/Vienna'); $formatdatumu="D - d.m.Y - G:i:s"; $datum=date($formatdatumu); $pozadovanastranka=$_SERVER['SCRIPT_NAME']; $zapisdoidlogu = $datum ." Požadovaná stránka: ".$pozadovanastranka."<br />";
if(!isset($_COOKIE["id"])){
//precita subor s poctom id, zvysi o jedno a to priradi novemu uzivatelovi $subor="db/pocetid.db";
if (!file_exists($subor) OR filesize($subor)==0) { $pocetid=1; $novyzapis=fopen($subor, "w"); fwrite($novyzapis,$pocetid); fclose($novyzapis); } else{ $otvor=fopen($subor, "r"); $pocetid=fread($otvor, filesize($subor)); $pocetid+=1; fclose($otvor); $novyzapis=fopen($subor, "w"); fwrite($novyzapis,$pocetid); fclose($novyzapis); }
setcookie("id",$pocetid, time()+315360000);
//vzhladom na to ze som vo vetve noveho navstevnika vytvorim subor s jeho id $subor2="db/uzivatele/".$pocetid.".db"; $vytvoreninoveho=fopen($subor2, "w"); fwrite($vytvoreninoveho,$zapisdoidlogu); fclose($vytvoreninoveho);
//teraz zapis do logu, ktory bude pre obe vetvy $obsahzapisu=$zapisdoidlogu." ID: ".$pocetid."<br/>"; $subor3="db/log.db"; $zapisdocelkovehologu=fopen($subor3, "a"); fwrite($zapisdocelkovehologu,$obsahzapisu); fclose($zapisdocelkovehologu); } else { $idnavstevnika=$_COOKIE["id"]; $logexistujuceho="db/uzivatele/".$idnavstevnika.".db"; $otvorexistujuci=fopen($logexistujuceho, "a"); fwrite($otvorexistujuci, $zapisdoidlogu); fclose($otvorexistujuci);
$obsahzapisu2=$zapisdoidlogu." ID: ".$idnavstevnika."<br/>"; $subor32="db/log.db"; $zapisdocelkovehologu2=@fopen($subor32, "a"); @fwrite($zapisdocelkovehologu2,$obsahzapisu2); @fclose($zapisdocelkovehologu2); }
//navsteva sa zapocita iba ak cookie navsteva nie je nastavena
if(!isset($_COOKIE["navsteva"])) { //ostava zapis do pocitadla samotneho $suborpocitadla="db/navstevnici/navstevnikov.db";
if(!file_exists($suborpocitadla)){ $xyz=fopen($suborpocitadla, "w"); fclose($xyz); echo "halo"; }
$suborakopole=file($suborpocitadla, FILE_IGNORE_NEW_LINES); $radku= count($suborakopole); $poslednyradek=$radku-1; $obsahposlednehoradku=$suborakopole[$poslednyradek]; $datum2=date("d.m.Y"); list($datum3, $dnes)=split("%", $obsahposlednehoradku);
if($datum3==$datum2){ $dnes++; $obsahposlednehoradku=$datum3."%".$dnes;
$i=0; while ($i<$poslednyradek){ $novepolenazapis .= $suborakopole[$i]."\n"; $i++; } $novepolenazapis .= $obsahposlednehoradku."\n"; } else{ $i=0;
while ($i<=$poslednyradek){ $novepolenazapis .= $suborakopole[$i]."\n"; $i++; } $novepolenazapis .= $datum2."%1"."\n"; }
$otvorsuborpocitadla=fopen($suborpocitadla, "w"); fwrite($otvorsuborpocitadla, $novepolenazapis); fclose($otvorsuborpocitadla);
setcookie("navsteva","ano"); }
//pocitadlo pre jednotlive stranky
$search=array("/", "."); $replace=array("_", "_"); $pozadovanastrankaupr=str_replace($search, $replace, $pozadovanastranka);
$subor11="db/stranky/s".$pozadovanastrankaupr.".db";
if(!file_exists($subor11)){ $xyzz=fopen($subor11, "w"); fwrite($xyzz, 1); fclose($xyzz); } else { $otvorjednot=fopen($subor11, "r"); $sucasnypocetnav=fread($otvorjednot, filesize($subor11)); $sucasnypocetnav++; fclose($otvorjednot);
$jednotstranka=fopen($subor11, "w"); fwrite($jednotstranka, $sucasnypocetnav); fclose($jednotstranka); }
//spravit statistiku pre kazdu stranku //ak bude viac ako 30 riadkov tak novy subor //spojit ip id a datum ?>
živá ukážka: www.prodetibrno.info/skuska/pocitadlo/pocitadlo.php - v pohode fungujúce
www.prodetibrno.info/skuska/doucovani.php
http://www.prodetibrno.info/skuska/pocitadlo/db/log.db - log každého pohybu
http://www.prodetibrno.info/skuska/poci ... evnikov.db - počítadlo návštev
http://www.prodetibrno.info/skuska/poci ... atele/2.db - logy návštevníkov
http://www.prodetibrno.info/skuska/poci ... dlo_php.db - pocitadlo návštev pre jednotlivu stránku
Fakt nechápem prečo mi tieto chyby vyhadzuje a prosil by som o radu
|
|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 Bydlisko: Veľký Krtíš... | Napísal Draex: 26.03.2011 11:29 | |
|
skús použiť absolútne adresy
|
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 26.03.2011 14:53 | |
|
ked pise ze ten subor neexistuje tak neexistuje.
pri include sa cesta nachadza v priecinku suboru na ktory sa odkazuje v adress bare prehliadaca.
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
nj. už som to zistil dík za príspevok
|
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|