Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]EDYTOR PLIKOW TXT
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam mam takie male pytanie skoro na opcjach plikowych zabardzo sie nie znam chce napisac taki maly edytor jednak mam problem a wiec robie petle while ktore wczytuje wszystkie pliki i przy kazdym pliku robie link "edytuj" chodzi o to ze jak skrypt ma wiedziec o jaki plik chodzi??
  1. <?php
  2. $katalog = '/var/www/kat/';
  3. $kat = opendir($katalog);
  4. while($plik = readdir($kat)) {
  5. echo('<li>'.$plik.'</li><a href="?action=edytuj">edytuj</a>');
  6. }
  7. closedir($kat);
  8. ?>

Mniej wiecej o cos takiego potem robie switch dla action=edytuj jednak wiem jak wczytac zawartosc pliku to textarea lecz czy robvia tak jak mowie skrypt wie o jaki plik chodzi.Pytam bo robiac to na bazie jest id posta i wtedy daje sie go w get i nie problemu jak tu to rozwiazac??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. $katalog = '/var/www/kat/';
  3. $kat = opendir($katalog);
  4. while($plik = readdir($kat)) {
  5. echo('<li>'.$plik.'</li><a href="?action=edytuj&file=' . $plik . '">edytuj</a>');
  6. }
  7. closedir($kat);
  8. ?>


EDIT: ~phpion po co śmiecić w adresie? Katalog i tak jest stały więc przy otwieraniu pliku można dodać ścieżkę do katalogu.

Ten post edytował webdicepl 20.01.2008, 19:32:06
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Musisz przekazać w linku ścieżkę do pliku:
  1. <?php
  2. echo('<li>'.$plik.'</li><a href="?action=edytuj&plik='.$katalog.$plik.'">edytuj</a>');
  3. ?>

Zabezpiecz to sobie jakoś żeby nie można było edytować wszystkich plików winksmiley.jpg
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Potem bede zabiepieczal teraz tylko tak sobie to robie smile.gif dzieki

P.S nie usuwajcie zaraz bedzie nastepne pytanko

EDTI juz mam smile.gif

  1. <?php
  2. echo('<html>
  3. <head><meta http-equiv="content-type" charset="utf-8" /></head>
  4. <title>EdYtOr bY MARCIO</title>
  5. <body>
  6. <center><h1>EDYTOR PLIKOW TXT.</h1></center>
  7. ');
  8.  
  9. $action = $_GET['action'];
  10. switch($action) {
  11.  
  12. case 'edytuj':
  13.  
  14. global $plik;
  15. global $katalog;
  16.  
  17. $wp = fopen($katalog.$plik, 'r');
  18. $zawartosc = fread($wp, filesize($katalog.$plik));
  19. fclose($wp);
  20. echo('<html>
  21. <head><meta http-equiv="content-type" charset="utf-8" /></head>
  22. <title>EdYtOr bY MARCIO</title>
  23. <body>
  24. <form method="post">
  25. <table align="center">
  26. <tr><td>
  27. <textarea name="message" rows="3" cols="70" style="background-color:#000000; color:#CCCCCC";>'.stripslashes($zawartosc).'</textarea></td></tr>
  28. <tr>
  29. <td align="center" valign="top"><input type="submit" value="Aktualizuj" /></td></tr>
  30. </table>
  31. ');
  32. if(!empty($_POST['message'])) {
  33. $fp = fopen($katalog.$plik, 'ab');
  34. fwrite($fp, $_POST['message']);
  35. fclose($fp);
  36. echo('<script>alert("Dodano");</script>');
  37. }
  38. else echo('<script>alert("Blad");</script>');
  39. break;
  40. }
  41.  
  42. $katalog = '/var/www/kat/';
  43. $kat = opendir($katalog);
  44. while($plik = readdir($kat)) {
  45. echo('<li>'.$plik.'|<a href="?action=edytuj&&plik='.$katalog.$plik.'">edytuj</a></li>');
  46. }
  47. closedir($kat);
  48. echo('</body></html>');
  49. ?>

Nie wiem jaki resource mam dac kombinuje juz 30min i sie pogubilem smile.gif mam takie blad
Cytat
Warning: fread(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 18

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 19
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 34

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 35

Zly uchwyt pliku to jaki mam dac??

Ten post edytował marcio 20.01.2008, 20:10:55


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
John
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

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


  1. <?php
  2. $wp = fopen($katalog.$plik, 'r');
  3. ?>

czy zmienna katalog zawiera separator ścieżki ( np. / ) ?

ja bym proponował
  1. <?php
  2. $wp = fopen($katalog.DIRECTORY_SEPARATOR.$plik, 'r');
  3. ?>


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


EDIT:Nowy kod == nowe problemy smile.gif
Ogolnie to mi opornie idzie z tymi plikami wiec prosze o pomoc po pierwsze wiem ze napewno daje zly uchwyt pliku do fopen,fwrite etc... poniewaz widac bledy ale sam juz nie wiem co mam dac mam nadzieje ze ktos pomoze bo pliki to nie moja mocna strona w php

P.S do tego nie wiem czemu nie moge wykonwac funckji chmod z tego co widze po innych bledach w kodzie to chodzi o to ze przekazuje do wszystkich argumentow tylko katalog tak jakby zmienna $plik by byla pusta ale dlaczego daje global $plik; a zmnienna przeciez ma przypisana wartosc??
  1. <?php
  2. echo('<html>
  3. <head><meta http-equiv="content-type" charset="utf-8" /></head>
  4. <title>EdYtOr bY MARCIO</title>
  5. <body>
  6. <center><h1>EDYTOR PLIKOW TXT.</h1></center>
  7. ');
  8.  
  9. $action = $_GET['action'];
  10. switch($action) {
  11.  
  12. case 'edit':
  13.  
  14. global $plik;
  15.  
  16. if(is_readable($plik)) {
  17.  
  18. $wp = fopen("/var/www/kat/".$plik, 'r');
  19.  
  20. while(!feof($wp)) 
  21. $zawartosc = fgets($wp, 1024);
  22. fclose($wp);
  23. echo('<html>
  24. <head><meta http-equiv="content-type" charset="utf-8" /></head>
  25. <title>EdYtOr bY MARCIO</title>
  26. <body>
  27. <form method="post" action="?action=edit&file='.$_GET['plik'].'">
  28. <table align="center">
  29. <tr><td>
  30. <textarea name="message" rows="10" cols="70" style="background-color:#000000; color:#CCCCCC";>'.$zawartosc.'</textarea></td></tr>
  31. <tr>
  32. <td align="center" valign="top"><input type="submit" value="Aktualizuj" /></td></tr>
  33. </table>
  34. </form>
  35. ');
  36. }
  37.  
  38. if(!empty($_POST['message']) && is_writable($plik)) {
  39.  
  40.  $fp = fopen("/home/marcio/kat/".$plik, 'w');
  41. fwrite($fp, $_POST['message']);
  42.  fclose($fp);
  43.  echo('<script>alert("Dodano");</script>');
  44. }
  45. else {
  46.  
  47. if(chmod("/var/www/kat/".$plik, 0777)) {
  48.  $fp = fopen("/var/www/kat/".$plik, 'w');
  49. fwrite($fp, $_POST['message']);
  50.  fclose($fp);
  51. echo('<script>alert("Dodano");</script>');
  52.  }
  53. }
  54. break;
  55.  
  56. case 'delete':
  57.  
  58. if(is_writable($plik)) {
  59.  if(unlink("/var/www/kat/".$plik)) 
  60. echo('<script>alert("Usunieto plik!!");</script>');
  61. }
  62. else if(is_writable($plik) && chmod("/home/marcio/kat/".$plik, 0777)) {
  63.  if(unlink("/var/www/kat/".$plik)) 
  64. echo('<script>alert("Usunieto plik!!");</script>');
  65. }
  66. break;
  67. }
  68.  
  69. $katalog = '/var/www/kat/';
  70. $kat = opendir($katalog);
  71.  
  72. while($plik = readdir($kat)) {
  73.  
  74. $file = $_GET['file'];
  75. $plik = basename($katalog.$plik);
  76. echo('<li>'.$plik.'|<a href="?action=edit&file='.$plik.'">edytuj</a>|<a href="?action=delete&file='.$plik.'">usun</a></li>
  77. <table>
  78. <tr><td>
  79. Rozmiar: '.@filesize($plik).'B<Br>
  80. Typ pliku: '.@filetype($plik).'<Br>
  81. Chmod: '.decoct(@fileperms($plik)).'<Br>
  82. Do odczytu: '.(@is_readable($plik)'tak' : 'nie').'<Br>
  83. Do zapisu: '.(@is_writable($plik)'tak' : 'nie').'<Br>
  84. </td></tr>
  85. </table>
  86. ');
  87. }
  88. closedir($kat);
  89. echo('</body></html>');
  90. ?>

Po pierwsze nie ma zawartosci pliku w textarea po drugie sa takie bledy przy dodawaniu:
Cytat
Warning: fopen(/var/www/kat/) [function.fopen]: failed to open stream: Is a directory in /var/www/edytor.php on line 33

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 34

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/edytor.php on line 35
Warning: chmod() [function.chmod]: Operation not permitted in /var/www/edytor.php on line 47

Znowu cos zle z uchwytami i ze argument w fopen jest katalogiem czy cos i nie wiem jak zawsze co jest zle pytam bo na plikach sie tak dobrze nie znam

P.S tylko nie krzyczcie po mnie smile.gif

To jak??Dalem nawet chmod 77 na katalog i dalej nic

Ten post edytował marcio 22.01.2008, 15:20:09


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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 - 18:13