Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]licznik błąd w fclose
Alessio
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


eh zaraz mnie cos trafi,
  1. <?php
  2. class Licznik
  3. {
  4. private $licz;
  5. private $plik;
  6.  
  7. public function __contruct()
  8. {
  9. if(!(file_exists("licznik.txt") || !isset($_COOKIE['zliczony'])))
  10. {
  11. $this->plik = fopen("licznik.txt", "w+");
  12. fputs($this->plik = "-");
  13. $this->licz = 1;
  14.  
  15. }
  16. else
  17. {
  18. $this->licz = filesize("licznik.txt");
  19. $this->plik = fopen("licznik.txt");
  20.  
  21. }
  22. if (!$_COOKIE['zliczony'])
  23. {
  24. flock($this->plik,2);
  25. fputs($this->plik,"-");
  26. flock($this->plik,3);
  27. setcookie('zliczony',1);
  28. }
  29. }
  30.  
  31. public function __destruct()
  32. {
  33. fclose($this->plik);
  34. }
  35. public function pokazLicznik()
  36. {
  37. return $this->licz;
  38. }
  39. }
  40. $Licznik = new Licznik();
  41. echo "Stronę tą odwiedzono ".$Licznik->pokazLicznik()." razy";
  42.  
  43. ?>
  44.  

co tu jest źle questionmark.gif
Warning: fclose(): supplied argument is not a valid stream resource in C:\wamp\www\obiektowy\test.php on line 33
czemu? może mi ktoś poprawić ten kod

Ten post edytował Alessio 16.10.2009, 19:46:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Bo jeżeli wykonuje się destruktor to niszczy obiekt ($this) z tego co wiem.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Zyx
post
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Panowie, z całym szacunkiem, ale powypisywaliście straszliwe głupoty. Obiekt niszczony jest po zakończeniu działania przez destruktor, to po pierwsze, a po drugie on tu akurat nie ma nic do rzeczy. I co ma niby kolejność jego napisania/wystąpienia do błędów?

Alessio -> Czy nie zastanowiłeś się, dlaczego błąd pojawia się dopiero w destruktorze, skoro teoretycznie powinien wywalić się wcześniej na fputs() i flock(), jeśli plik nie został otwarty? Przyjrzyj się nazwie konstruktora, bo na mój gust zjadłeś tam jedną literkę i on się po prostu nie wykonuje... smile.gif

Ten post edytował Zyx 16.10.2009, 20:41:38


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(Zyx @ 16.10.2009, 21:41:09 ) *
Alessio -> Czy nie zastanowiłeś się, dlaczego błąd pojawia się dopiero w destruktorze, skoro teoretycznie powinien wywalić się wcześniej na fputs() i flock(), jeśli plik nie został otwarty? Przyjrzyj się nazwie konstruktora, bo na mój gust zjadłeś tam jedną literkę i on się po prostu nie wykonuje... smile.gif

Jestem ślepy, ale moim zdaniem ma dobrze jeżeli chodzi o konstruktor, w szczególności że się wykonuje kolego.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Zyx
post
Post #5





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Ech...

__contruct <---- tak ty napisałeś
__construct <---- tak wymaga PHP

Sprawdź dokładnie, bo Twoja metodologia testowania wydaje mi się mocno naciągana, albo masz jakieś dziwne PHP smile.gif.

PS. Uwaga ortograficzna: "TĘ stronę", a nie "TĄ stronę" smile.gif

Ten post edytował Zyx 16.10.2009, 20:48:33


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:30