Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Warning: fclose() expects parameter 1 to be resource, integer given in, blad podczas wywolania funkcji fclose()
michat34
post
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


witam, oprocz bledu zadam o razu 2. pytanie aby nie zakladac nowego watku. ale najpierw blad (IMG:style_emoticons/default/wink.gif)
kod:
  1. echo 'Rejestracja przebiegla pomyslnie';
  2. $fp = fopen("uzytkownicy.txt",a);
  3. $login2 = $_POST['login2'];
  4. $haslo2 = $_POST['haslo2'];
  5. $fp = fwrite($fp,"$login2|");
  6. fclose($fp);
  7. $fp2 = fopen("passy.txt",a);
  8. $fp2 = fwrite($fp2,"$login2 = $haslo2|");


wyskakuje error - Warning: fclose() expects parameter 1 to be resource, integer given in...

moglby ktos wyjasnic dlaczego? wydaje mi sie ze uzylem wszystkiego jak nalezy, fclose wymaga uchwytu, jest uchwyt: $fp. ale mimo wszystko napewno cos zle zrobilem wiec prosze o wskazanie bledu. i teraz pytanie:
na kursie wyczytalem ze nalezy zamykac pliki funkcja fclose gdy skonczymy cos do nich zapisywac. bylo to dosyc mocno podkreslone. tutaj nie zamknalem ani $fp ani $fp2 i cały skrypt (wydaje sie ze) dziala jak nalezy. stad moje pytanie: co jezeli ignorowaloby sie zamykanie plikow, jakie sa konsekwencje?

dziekuje i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@untorched: Formalnie, wypadałoby jeszcze sprawdzać czy fwrite i fclose wykonały się w pełni poprawnie. Ot, cudowne API PHP-owskiej biblioteki standardowej.
@michat34: W momencie gdy skrypt PHP kończy swoją pracę wszystkie zewnętrzne zasoby (m.in. uchwyty do plików) są zamykane i zwalniane. Także nawet jeżeli byś w skrypcie mocno nawalił, istnieje duże prawdopodobieństwo, że nic złego się nie stanie. Nie mniej jednak, niezamknięcie pliku:
1. Niepotrzebnie wydłuża czas, gdy jest on otwarty, czyli wydłuża czas istnienia blokady systemowej na pliku.
2. Nie jestem pewien jak wygląda dokładnie implementacja fwrite w PHP, ale istnieje szansa, że jeżeli nie zamkniesz pliku w pewnych przypadkach żadne dane nie zostaną do niego zapisane. Tu należy pamiętać, że ostatecznie PHP zwalnia wszystkie zasoby, ale istnieje możliwość, że jego praca zostanie gwałtownie przerwana (np. brak zasilania).
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 16:35