Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wlasną klasą plik
Forum PHP.pl > Forum > Przedszkole
xmarko
Witam,
Klasy dopiero zaczynam - buduje moja pirwsza klasę, oto kod klasy PLIK ( plik :class_plik.inc)
  1. <?php
  2.  
  3.  
  4. class PLIK {
  5.  
  6. var $nazwa_pliku ;
  7. var $prawa ;
  8. var $tryb ;
  9. var $chmod ;
  10.  
  11. function Wez_nazwa_pliku()  {
  12. return $this->nazwa_pliku ;
  13. }
  14. function Wez_prawa() {
  15. return $this->prawa ;
  16. }
  17. function Wez_tryb() {
  18. return $this->tryb ;
  19. }
  20. function Wez_chmod()  {
  21. return $this->chmod ;
  22. }
  23.  
  24.  
  25. function Ustaw_nazwa_pliku( $nazwa_pliku ) {
  26. $this->nazwa_pliku = $nazwa_pliku ;
  27. }
  28. function Ustaw_prawa( $prawa ) {
  29. $this->prawa = $prawa ;
  30. }
  31. function Ustaw_tryb( $prawa ) {
  32. $this->tryb = $tryb ;
  33. }
  34.  
  35. function Ustaw_chmod ( $chmod ) {
  36. $this->chmod = $chmod ;
  37. }
  38.  
  39. function Plik_otworz( $nazwa_pliku , $prawa , $tryb, $chmod) {
  40. if(!file_exists(&#092;"$nazwa_pliku\"))
  41.  
  42. {
  43. $plik = fopen( $nazwa_pliku , $tryb);
  44.  
  45. flock( $plik , $prawa ); /* blokuje plik */
  46. flock( $plik , LOCK_UN ); /* odblokowuje plik */
  47. // tu bedzie wprowadzony zapis do pliku
  48. fclose( $plik );
  49. chmod( $nazwa_pliku , octdec( $chmod ) );/*zmienia prawa dostępu */
  50. echo &#092;"jest\";
  51.  
  52. }
  53. }
  54.  
  55. }
  56.  
  57. ?>

A oto wywołanie klasy :
  1. <?php
  2.  
  3. require (class_plik.inc);
  4. $nazwa_pliku = &#092;"magazyn8.mj\";
  5. $prawa = &#092;"LOCK_EX\";
  6. $chmod = &#092;"0777\"; 
  7. $tryb = &#092;"a+\";
  8.  
  9. $plik = new PLIK();
  10. $plik->Ustaw_nazwa_pliku( $nazwa_pliku );
  11. $plik->Ustaw_prawa( $prawa );
  12. $plik->Ustaw_tryb( $tryb );
  13. $plik->Ustaw_chmod( $chmod);
  14. $plik->Plik_otworz( $nazwa_pliku , $prawa , $tryb, $chmod );
  15. ?>

Niestety moja klasa nie działa.
Funkcja Plik_otworz () - sprawdziłem działa w nowym pliku bez klasy przy takim kodzie :
  1. <?php
  2. $nazwa_pliku = &#092;"magazyn7.mj\";
  3. $prawa = &#092;"LOCK_EX\";
  4. $chmod = &#092;"0777\"; 
  5. $tryb = &#092;"a+\";
  6.  
  7.  
  8.  
  9. function Plik_otworz( $nazwa_pliku , $prawa , $tryb, $chmod) {
  10. if(!file_exists(&#092;"$nazwa_pliku\"))
  11.  
  12. {
  13. $plik = fopen( $nazwa_pliku , $tryb);
  14.  
  15. flock( $plik , $prawa ); /* blokuje plik */
  16. // fputs( $plik , $dane );
  17. flock( $plik , LOCK_UN ); /* odblokowuje plik */
  18.  
  19. fclose( $plik );
  20. chmod( $nazwa_pliku , octdec( $chmod ) );/*zmienia prawa dostępu */
  21. echo &#092;"jest\";
  22.  
  23. }
  24. }
  25. Plik_otworz( $nazwa_pliku , $prawa , $tryb, $chmod);
  26.  
  27. ?>

Prosze o pomoc, nie wiem gdzie popełniam błąd. Klasa wydaje mi się, ze jest dobrze zbudowana, może przy jest wywoływaniu jest bład - nie jest tworzny plik zadeklarowany w zmiennej : $nazwa_pliku.
Zwracam sie wiec o wszelkie sugestie, propozycje zmiany kody na prawidłowy.
Za pomoc z góry DZIKUJ
nospor
linia 31, funkcja Ustaw_tryb ma parametr $prawa a ty odwolujesz sie do tryb.To blad na poczatek
kyno
  1. <?php
  2.  
  3. function Plik_otworz( $nazwa_pliku = null, $prawa = null, $tryb = null, $chmod = null)
  4. {
  5. if($nazwa_pliku) $this->nazwa_pliku = $nazwa_pliku;
  6. if($prawa)  $this->prawa = $prawa;
  7. if($tryb) $this->tryb = $tryb;
  8. if($chmod)  $this->chmod = $chmod;
  9.  
  10. if(!file_exists($this->nazwa_pliku))
  11. {
  12. echo $this->nazwa_pliku. $this->prawa. $this->tryb. $this->chmod;
  13.  
  14. $plik = fopen( $this->nazwa_pliku , $this->tryb);
  15. flock( $plik , $this->prawa ); /* blokuje plik */
  16. flock( $plik , LOCK_UN ); /* odblokowuje plik */
  17. // tu bedzie wprowadzony zapis do pliku
  18. fclose( $plik );
  19. chmod( $this->nazwa_pliku , octdec( $this->chmod ) );/*zmienia prawa dostępu */
  20. echo &#092;"jest\";
  21. }
  22.  
  23. }
  24.  
  25. ?>


I wtedy możesz sie odwoływć w taki spób:
  1. <?php
  2.  
  3.  
  4. $nazwa_pliku = &#092;"cos.php\";
  5. $prawa = &#092;"LOCK_EX\";
  6. $chmod = &#092;"0777\";
  7. $tryb = &#092;"a+\";
  8.  
  9. $plik = new PLIK();
  10. $plik->Ustaw_nazwa_pliku( $nazwa_pliku );
  11. $plik->Ustaw_prawa( $prawa );
  12. $plik->Ustaw_tryb( $tryb );
  13. $plik->Ustaw_chmod( $chmod);
  14. $plik->Plik_otworz();
  15.  
  16. ?>

albo
  1. <?php
  2.  
  3. $nazwa_pliku = &#092;"cos.php\";
  4. $prawa = &#092;"LOCK_EX\";
  5. $chmod = &#092;"0777\";
  6. $tryb = &#092;"a+\";
  7.  
  8. $plik = new PLIK();
  9. $plik->Plik_otworz( $nazwa_pliku , $prawa , $tryb, $chmod);
  10.  
  11. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.