php. Tworzenie pliku 'tylko do odczytu'

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Nefro
Nowy
Nowy
Posty: 144
Rejestracja: wt sty 27, 2004 8:35 am
Lokalizacja: Nałeczów
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: Nefro »

Chcesz ustalic atrybut tylko do odczytu pewnie dlatego aby nie nadpisywały/zaspisywały sie dane- tak? Bo jezeli tak to mozna obejsc w kodze zapisywanie.
wrna
Posty: 17
Rejestracja: czw kwie 21, 2005 2:04 pm

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: wrna »

Tak, nie chce zeby zminiala sie tresc pliku. A gra sama mi dopisuje tam dane,a jak jest tylko do odczytu to nie dopisuje. A raczej trudniej jest zmienic cos w programie niz na stronie.
Nefro
Nowy
Nowy
Posty: 144
Rejestracja: wt sty 27, 2004 8:35 am
Lokalizacja: Nałeczów
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: Nefro »

Wiesz tak analizuje ten kod i mi sie wydaje ze on dodaje jakies postacie do gry czy cos w tym stylu. Ale nie wiem dokładnie jaka rola jest tego pliku bo skoro nie chcesz aby cokolwiek sie zapisywało to mozesz usunąc wszystkie polecienia fwrite a co zatym idzie fopen i fclose
w dodatku jeszcze mi sie wydaje ze to nie jest cały kod.
wrna
Posty: 17
Rejestracja: czw kwie 21, 2005 2:04 pm

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: wrna »

Tak to dodaje postac do gry. Gdizes pare postow wyzej dalem linka do calej tej mojej strony., bo ten skrypt odwoluje sie do innego pliku. A mi nie chodzi o to zeby skasowac fwrite tylko zeby ten plik wraz z zawartoscia ktora stworzy ten plik byl z prawami tylko do odczytu.
Nefro
Nowy
Nowy
Posty: 144
Rejestracja: wt sty 27, 2004 8:35 am
Lokalizacja: Nałeczów
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: Nefro »

Bo wiesz przy otwieraniu pliku ustala sie tryb otwarca pliku zobacz:

fopen("nazwa_pliku","tryb");
tryb może być dowolny z poniższych:


'r' - Otwórz tylko do odczytu; ustawia wskaźnik pliku na początku pliku.

'r+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku.

'w' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć.

'w+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć.

'a' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć.

'a+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć.
w skrypcie tym nasz tryb "w" moze to zmienic na "r" ale do końca nie wiem czy to dla ciebie bedzie przydatne.
paszczak
Nowy
Nowy
Posty: 123
Rejestracja: ndz paź 03, 2004 2:21 pm
Lokalizacja: Sopot
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: paszczak »

z tego co zrozumialem, to nie chodzi o ochrone tych plikow przed zapisem przez skrypt tylko przez "program trzeci"...

nie rozumiem jedynie dlaczego nie dziala odwolanie do ATTRIB...
sprobuj zamiast zmiennej wpisac "na sztywno" jakis plik wraz ze sciezka (oczywiscie taki ktory istnieje) i zobacz czy zadziala...

mozesz jeszcze wywolac to polecenie z poziomu systemu (konsoli), zeby miec pewnosc, ze dziala...
wrna
Posty: 17
Rejestracja: czw kwie 21, 2005 2:04 pm

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: wrna »

@Nefro: Tez tego probowalem , wyskakuje cos takiego:
Warning: fopen(D:\gierki\tibia\ots\data\konta\play\/aaaaa.xml) [function.fopen]: failed to open stream: No error in D:\gierki\Tibia\WebServ\httpd\strony\criaracc.txt on line 96

Warning: fwrite(): supplied argument is not a valid stream resource in D:\gierki\Tibia\WebServ\httpd\strony\criaracc.txt on line 132

Warning: fclose(): supplied argument is not a valid stream resource in D:\gierki\Tibia\WebServ\httpd\strony\criaracc.txt on line 133
@paszczak: Chodzi mi dokladnie o to co ty zrozumiales. Tez sie zastanawiam czemu innym to dziala, tak przynajmniej pisza w manualu, a mi nie. "Na szytwno" tez nie dziala.

A jak wywolac to polecenie w konsoli ?

Moze zeby dzialalo to potrzeba jakies SP czy cos.
Nefro
Nowy
Nowy
Posty: 144
Rejestracja: wt sty 27, 2004 8:35 am
Lokalizacja: Nałeczów
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: Nefro »

Wiesz rozumiem juz o co chodzi, dotychczasowe moje rady nie pomogą. Jak na razie nie mam pojecia jak rozwiązać twoj problem.
paszczak
Nowy
Nowy
Posty: 123
Rejestracja: ndz paź 03, 2004 2:21 pm
Lokalizacja: Sopot
Kontakt:

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: paszczak »

uruchom w systemie "wiersz polecenia" (powinno byc w akcesoriach)

i napisz tam :

Kod: Zaznacz cały

attrib +r nazwa_pliku
oczywiscie wraz z pelna sciezka... i zobacz czy zmieni atrybuty na takie jakie chcesz...
wrna
Posty: 17
Rejestracja: czw kwie 21, 2005 2:04 pm

Re: php. Tworzenie pliku 'tylko do odczytu'

Post autor: wrna »

Z wiersza polecen dziala.
system("attrib +r $account");
Jak daje to do skrytpu to nie zmienia praw do pliku ale jesli zamias zmiennej dam sciezke do pliku jakiegos innego pliku ktory juz istnieje to wtedy dziala.

Edit:
Widze, ze skonczyly sie wam pomysly. Sprobuje rozwiazac ten problem od drugiej strony,ale bede sie musial teraz c++ pouczyc. Dzieki wszystkim za pomoc.
ODPOWIEDZ