Problem z edycją pliku html w PHP


(Miodzik27) #1

Tworze plugin do systemu cms getsimple. Ma to być księga gości i pojawił się pewien problem. Nie mogę edytować pliku html z poziomu skryptu php, mogę tylko wyświetlić jego zawartość za pomocą instrukcji include. Nie wyświetlają się żadne błędy, wszystko niby jest poprawnie, ale jak sprawdzam czy kod został dodany do pliku data.html okazuje się że nie (plik pozostał bez zmian).Serwer działa w oparciu o xampp na linux (lampp).

Część kodu odpowiedzialna za dodanie kodu do pliku:

if($GBFormImieLiczbaZnakow < 15) {

			if($GBFormEmailLiczbaZnakow < 30) {

				if($GBFormWpisLiczbaZnakow < 1000) {


					$GBPlikDataA = '

| ['.$GBFormImie.'](mailto:'.%24GBFormEmail.') | '.date('Y-m-d').' '.date('H:i').' |
| '.$GBFormWpis.' |



(Drobok) #2

Skrypt wygląda dobrze. Masz prawa 777 dla pliku w którym jest ten skrypt, oraz co najmniej 666 dla edytowanego ?


(Miodzik27) #3

Ok, przed kodem edytującym umięściłem funkcje:

chmod("/guestbook/data.html", 0755);

Ale niestety nadal nie działa! (A jeszcze wrzuciłem ten chmod w if żeby sprawdzał czy to w ogóle działa ale if(chmod....) { echo('ok'); } else { echo('nie ok'); } ale wyświetla nie ok ..... choć nie wiem czy tak można:) )


(Masters87) #4

umieść cała procedurę w blokach

try{

//tutaj kod otwierania i zapisu do pliku

}catch(Exception $e){

echo $e->getMessage();

}

Może przechwyci jakiś wyjątek :slight_smile:


(Miodzik27) #5

Niestety nic się nie dzieje :slight_smile:

-- Dodane 16.08.2011 (Wt) 11:50 --

Ale coś jest nie tak bo przez instrukcje include wczytuje plik data.html bez problemu a jak wpisze adres http://localhost/aikido/plugins/guestbook/data.html w przeglądarke to wyskakuje komunikat

Zabroniony dostęp!


Nie masz dostępu do żądanego obiektu. Jest on zabezpieczony przed odczytem lub nie może być odczytany przez serwer.


Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.


Error 403


localhost

wto, 16 sie 2011, 11:50:24

Apache/2.2.17 (Unix) DAV/2 mod_ssl/2.2.17 OpenSSL/1.0.0c PHP/5.3.5 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

(Masters87) #6

to w takim razie spróbuj zmienić chmod tego pliku w konsoli linuxa na 777

i jeszcze przychodzi jedna rzecz na myśl, zablokuj plik na czas zapisu:

flock($fp,2)

i po zapisanie odblokuj go:

flock($fp,3)

(Miodzik27) #7

Jestem w miarę początkujący w linux to możesz mi wyjaśnić jak te uprawnienia zmienić na 777 :-o


(Masters87) #8
sudo chmod 777 file

gdzie file to nazwa pliku lub ścieżka (jeśli nie jesteś w katalogu gdzie znajduje się plik)


(Miodzik27) #9

Ani flock ani chmod nie działa :((


(Masters87) #10

proponuje Ci zrobić tak:

  1. Wyrzuć ten lammp!

  2. Zainstaluje normalny serwer Apache + PHP + ewentualnie MySQL,PostgreSQL

  3. korzystaj z normalnego serwera (pliki umieszczasz w /var/www/) :slight_smile:


(Miodzik27) #11

Ok zobacze co da sie zrobić :slight_smile:

-- Dodane 16.08.2011 (Wt) 12:32 --

Dobra zainstalowałem serwer apache + php i wszystko przeniosłem i wszystko działa ok ale problem polega na tym że ten skrypt nadal nie działa :frowning: