[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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


Offline

Užívateľ
Užívateľ
počítadlo, chyby s fopen,fwrite..., iba pri include

Registrovaný: 27.11.08
Prihlásený: 08.07.17
Príspevky: 634
Témy: 98 | 98
Bydlisko: Veľký Krtíš...

skús použiť absolútne adresy


Offline

Užívateľ
Užívateľ
počítadlo, chyby s fopen,fwrite..., iba pri include

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6

ked pise ze ten subor neexistuje tak neexistuje.
pri include sa cesta nachadza v priecinku suboru na ktory sa odkazuje v adress bare prehliadaca.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150
Napísal autor témyOffline : 26.03.2011 21:02 | počítadlo, chyby s fopen,fwrite..., iba pri include

nj. už som to zistil :-) dík za príspevok


 [ Príspevkov: 4 ] 


počítadlo, chyby s fopen,fwrite..., iba pri include



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

vypis chyby pri napalovani pri DVD hp DVDRAM GT30L

v Optické zariadenia

6

925

22.09.2010 17:53

nexter

V tomto fóre nie sú ďalšie neprečítané témy.

Pocitadlo casu straveneho pri Internete

v Ponuka práce

7

2072

14.07.2009 21:59

tlacitko Enter

V tomto fóre nie sú ďalšie neprečítané témy.

chyby pri memteste

v Pamäte

7

314

29.08.2011 17:39

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

chyby pri bootovani HDD

v Pevné disky a radiče

3

1208

29.01.2010 0:13

street2style

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] PHP: problem s INCLUDE pri RewriteEngine On

v PHP, ASP

2

323

17.02.2009 14:33

max-m

V tomto fóre nie sú ďalšie neprečítané témy.

Chyby pri prihlasovaní cez MySQL

v PHP, ASP

4

672

26.11.2011 22:02

peco.voki

V tomto fóre nie sú ďalšie neprečítané témy.

ATI Radeon X550XTX-chyby pri hrach

v ATI/AMD grafické karty

19

1668

13.07.2009 16:42

krsoprd

V tomto fóre nie sú ďalšie neprečítané témy.

kód chyby 0x80070570 pri instal win7

v Operačné systémy Microsoft

6

971

31.08.2012 11:18

zentin

V tomto fóre nie sú ďalšie neprečítané témy.

WINDOWS 7 - CHYBY PRI NAPALOVANI CD/DVD

v Operačné systémy Microsoft

4

1104

20.02.2010 12:08

vazovski

V tomto fóre nie sú ďalšie neprečítané témy.

Druhý OS spustiť iba pri vyžiadaní

v Operačné systémy Microsoft

10

150

31.12.2013 18:22

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Jquery funkcne ale iba pri prvom kliknuti

v JavaScript, VBScript, Ajax

7

425

08.02.2012 20:08

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Nezapne mi PC iba pri zapnuti zdroja

v nVidia čipové sady

1

882

01.09.2009 12:32

AsuSmaNiaK

V tomto fóre nie sú ďalšie neprečítané témy.

Horizontalne čiary cez display - iba pri hrani hry.

v nVidia grafické karty

2

122

13.12.2014 22:15

coregamer

V tomto fóre nie sú ďalšie neprečítané témy.

Graficky ovadač prestane pracovat iba pri prvom spusteni hry

v Ovládače

11

366

24.12.2015 11:15

vaci

V tomto fóre nie sú ďalšie neprečítané témy.

Zväčšiť pamäť iPhonu zo 16 na 128GB iba za 55€ ? Žiaden problém .. ale iba v Číne

v Novinky

11

646

15.02.2016 15:06

liqua1

V tomto fóre nie sú ďalšie neprečítané témy.

počítadlo

v PHP, ASP

4

345

29.05.2009 15:26

dessert



© 2005 - 2017 PCforum, edited by JanoF