Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesja i usuwanie pliku..., Czy to mozliwe?
michaeel
post
Post #1





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

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


Witam!

To moj pierwszy post smile.gif Troszke skrobie w php i mam zrobiony caly dzienniczek ucznia. Jednak ostatnio taki problem przyszedl mi do glowy...

Calosc opiera sie na plika tekstowych (bez bazy danych) i chodzi mi o mozliowsc edycji.
Kazdy uczen ma swoj plik z ocenami..przypuscmy ze o godzinie 14 edytuje tego ucznia nauczyciel historii, minute pozniej otiwera tego ucznia nauczyciel geografii i zapisuje plik, a ok 14.05 plik zapisuje nauczyciel hisotrii. Wszystko sie dzieje na roznych komputerach..i jak problem powstaje?otoz zmian nauczyciela geografii nie widac - zostaly nadpisane..

i tu mam taki problem..chcialbym jakos zablokowac plik do edycji jesli zostal otwarty i do glowy przyszly mi sesje..no tak wszystko fajnie..plik zablokuje (funkcja ktora cos tam zrobi ze jak raz sie go otworzy do mozna go otworzyc dopiero jak osoba skonczy edycje..ale co jesli osoba poprostu zamknie przegladarke? Plik zostanie zablokowany -> nikt go nie odczyta dopuki nie sicagnie sie blokady...Czy ma ktos jakis pomysl jak to mozna rozwiazac?


--------------------
Linux Gentoo | gcc 4.1.1 | kernel 2.6.17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
bro_da
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.05.2006
Skąd: Bydgoszcz

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


http://pl2.php.net/flock


pozdro
Go to the top of the page
+Quote Post
michaeel
post
Post #3





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

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


wiem co to jest flock i owszem uzywam go. jednak tutaj chodzi o troszke inny sposob zabezpieczenia..

Nauczyciel edytujac ucznia widzi wszystkei przedmioty, dodaje ocoeny swoje i zapisuje plik -> tym samym nadpisujac poprzedni (bez wzgledu co w nim bylo)


--------------------
Linux Gentoo | gcc 4.1.1 | kernel 2.6.17
Go to the top of the page
+Quote Post
bro_da
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.05.2006
Skąd: Bydgoszcz

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


no chyba właśnie to realizuje polecenie flock();
nauczyciel historii otwiera plik i go blokuje, w ten sposób nauczyciel geografii musi czekać

dobrze kombinuje? winksmiley.jpg
Go to the top of the page
+Quote Post
michaeel
post
Post #5





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

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


chcialbym aby tak bylo smile.gif

a flock dziala troszke inaczej..chodzi o to ze owszem blokuje go ale tuz przed zapisem. takze dane nie zostana dopisane ani nic sie nie zepsuje..

poprstu nauczyciel Geografii ktory wpisze oceny ich nie zobaczy jesli zapisze plik przed nauczycielem historii, gdyz ten jako pierwszy otrwal plik i w polu z ocenaimi do geografii ich nie mial smile.gif


--------------------
Linux Gentoo | gcc 4.1.1 | kernel 2.6.17
Go to the top of the page
+Quote Post
bro_da
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.05.2006
Skąd: Bydgoszcz

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


dawno nie bawiłem się na plikach winksmiley.jpg
może poprosu zmień nazwę pliku po otwarciu przez kogoś,
jesli w tym czasie ktoś będzie próbował otworzyć plik, to dostanie komunikat, że plik jest edytowany i musi poczekać...

w tym momencie nic innego ne przychodzi mi do głowy winksmiley.jpg

//edit:
dałbym głowę sobie uciąć, że można zablokować odczyt pliku flockiem...

Ten post edytował bro_da 27.09.2006, 23:34:26
Go to the top of the page
+Quote Post
michaeel
post
Post #7





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

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


wiesz tak tez myslalem...ale to musialby dzialac tez tak ze jezeli ktos otworzy plik i np. nie zapisze a zamknie przegladarke to ten plik bedzie sie dalo edytowac smile.gif


flock stosuje w momencie zaraz przed zapisem (aby zapobiec np. kliknieciu przycisku zapisz w tym samym czasie winksmiley.jpg)


--------------------
Linux Gentoo | gcc 4.1.1 | kernel 2.6.17
Go to the top of the page
+Quote Post
gszesiek
post
Post #8





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 17.09.2006

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


a może prawa dostępu winksmiley.jpg
(napisz jak już będziesz miał właściwe rozwiązanie)


--------------------
Go to the top of the page
+Quote Post
michaeel
post
Post #9





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

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


heh..rozwiazlem to moze nie tak jak chcialem ale mam..
  1. <?php
  2. if(file_exists("$plik_wrk"))
  3.  
  4. {
  5.  
  6. $uczen = str_replace("_"," ",$uczen);
  7. $teraz = date('Y.m.d H:i:s');
  8. $czas = filemtime($plik_wrk);
  9. $kosz = $czas + (* 60);
  10. $kosz_do = date('Y.m.d H:i:s',$kosz);
  11. $kiedy = date('H:i:s',$kosz);
  12.  
  13.  
  14. if($kosz_do > $teraz)
  15. {
  16. include("admin_menu.dat");
  17. echo "<center><table border=0 width=390 cellspacing=0 cellpadding=0 style='border: 1px solid #000000; background-color: #ececec;'><tr><td>";
  18.  
  19. die ("<center><p><p><img src=dimg/uwaga.png align=absmiddle><br>Uczeń <b>$uczen</b> aktualnie jest edytowany!<br><b>Spróbuj zalogować się po godz $kiedy!</b><br><br><a href=java script:back(1)>Wstecz</a></td></tr></table><p></center>");
  20. }
  21. else
  22. {
  23. unlink($plik_wrk);
  24. };
  25.  
  26. }
  27. ?>


dziala smile.gif moze nie tak jak chcialem..ale jest smile.gif


--------------------
Linux Gentoo | gcc 4.1.1 | kernel 2.6.17
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: 20.08.2025 - 06:12