Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak zrobić panel do edycji pliku
gg1985
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

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


Witam

Czy ktoś zna może jakiś szablon do edycji zawartości pliku ? Chodzi mi o to, żeby plik na serwerze był wczytywany, jego zawartość edytowana przeze mnie i zapisywana, ewentualnie prosiłbym o jakieś pomocne sugestie.

Pozdrawiam

Ten post edytował gg1985 13.08.2008, 13:58:59


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
dadexix
post
Post #2





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


file_get_contents" title="Zobacz w manualu PHP" target="_manual
file_put_contents" title="Zobacz w manualu PHP" target="_manual
Coś więcej trzeba? najpierw pierwszą funkcją otwierasz plik, potem wysyłasz w textarea, i wysyłasz do serwera oraz zapisujesz za pomocą drugiej funkcji

może się też przydać Ci chmod" title="Zobacz w manualu PHP" target="_manual


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
barthpl
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


No i warto jeszcze rozpatrzeć blokowanie pliku. Znaczy się aby w danym czasie mógł być edytowany tylko przez jedną osobę. Swoją drogą to właśnie się zastanawiam jak to najbardziej efektywnie wykonać.


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
dadexix
post
Post #4





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


hmmm może by zaznaczać że plik właśnie edytowany?
  1. <?php
  2. $prems = substr(sprintf('%o', fileperms('/etc/passwd')), -4);
  3. if($prems == "0000"){
  4. echo "Plik właśnie edytowany";
  5. }else{
  6. $a = file_get_contents([...]);
  7. chmod([..],0000);
  8. }
  9. NA ZAPIS PLIKU:
  10. chmod([..],0777);
  11. ?>


To taki przykłąd, poprostu plik który nie ma praw do odczytu,zapisu,wykonywania przez nikogo to dla skryptu plik edytowany:)


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
gg1985
post
Post #5





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

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


Dzięki wszystkim, zaraz biorę się do roboty.


--------------------
Go to the top of the page
+Quote Post
barthpl
post
Post #6





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


No tak to jest fajny pomysł... ...tylko może zamiast całkowitego blokowania zastanowiłbym się nad pozostawieniem dostęp do odczytu. W końcu w trakcie edycji przez admina może jakiś użytkownik będzie miał ochotę przejrzeć "ostatnią wersję".


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
golaod
post
Post #7





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


http://pl.php.net/manual/pl/function.chmod.php
Ktoś już to wcześniej podawał. Jest tam all opisane.
Lub prościej. Bez chmod'ów http://pl.php.net/manual/pl/function.flock.php

Ten post edytował golaod 13.08.2008, 14:43:02
Go to the top of the page
+Quote Post
gg1985
post
Post #8





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

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


Witam ponownie

Zacząłem coś tam pisać i utkwiłem na momencie, gdy w textarea już zedytowałem plik i teraz chciałbym go nadpisać po kliknięciu w "Zapisz". Do tej pory napisałem tyle:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  5. <title>Edytor plików</title>
  6. <link href="style.css" type="text/css" rel="stylesheet" />
  7. <link rel="shortcut icon" href="ikona.jpg" />
  8. </head>
  9. <body>
  10. <div id="tcent">
  11. <?php
  12. if (count($_POST))
  13. {
  14.       $result .= $_POST['nazwa_pliku'];
  15.           if(isset($_POST['file'])) file_put_contents($result,$_POST['file']);
  16.           $file = file_get_contents($result);
  17.           echo '<form method="POST"><textarea class="area" style="width: 800px; height: 600px; padding: 5px" name="file">'.$file.'</textarea><input class="area" type="submit" value="Zapisz" /></form>';
  18. }
  19. else
  20. {
  21. ?>
  22. <form action="?" method="post">
  23. <p>
  24. Nazwa pliku do edycji:
  25. <br>
  26. <input class="area" type="text" name="nazwa_pliku" maxlength="40" />
  27. </p>
  28. <p>
  29. <input class="area" type="submit" value="wyślij" />
  30. </p>
  31. </form>
  32. <?php
  33. }
  34. ?>
  35. </div>
  36. </body>
  37. </html>


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





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
gdy w textarea już zedytowałem plik i teraz chciałbym go nadpisać po kliknięciu w "Zapisz".

Przecież file_put_contents" title="Zobacz w manualu PHP" target="_manual nadpisuje zawartość istniejącego pliku...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
q3d
post
Post #10





Grupa: Zarejestrowani
Postów: 98
Pomógł: 7
Dołączył: 10.01.2006

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


Gdy klikniesz zapisz skrypt nie przesyła już zmiennej $_POST['nazwa_pliku'], która próbujesz przypisać do zmiennej $result.
Jedyne co przesyłasz to $_POST['file']. Dlatego w zmiennej $result nie masz nazwy pliku i pierwszy argument funkcji file_put_contents jest błedny.
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: 21.08.2025 - 23:55