Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z edytorem plików online php
malanek222
post 17.02.2018, 18:05:49
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.02.2018

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


Witam, chcę zbudować prosty edytor plików na serwerze, przez przeglądarkę, lecz nie potrafię zrobić tak, aby po wejściu w podfolder otrzymać zmienną, do pliku który się w nim znajduje, próbowałem długo, oraz nie znalazłem niczego interesującego na innych forach. Tu podaję kod który do tej pory mam, działa on tylko z plikami które nie są w folderach, w folder można wejść, ale nie można uruchomić już z tam tond pliku, ponieważ wpisuje się w zmienną nieprawidłowa ścieżka do tego pliku, skrypt pomija folder w którym się aktualnie znajduje i od razu podaje samą nazwę pliku z rozszerzeniem. Z góry dziękuję za pomoc smile.gif
  1. if( $_GET['dir']=="show")
  2. {
  3. $file = $_GET['name'];
  4.  
  5. echo '<table border="1">';
  6. if ($dir = opendir("./$file"))
  7. {
  8. echo'<center><h2><a href="cos.php"><== Powrót do panelu</a></h2></center>';
  9. while( $file = readdir($dir))
  10. {
  11. if ($file<>"." && $file<>".." && $file<>"edit_files.php" )
  12. {
  13. if(is_dir($file))
  14. {
  15. echo "<tr><td><a href='edit_files.php?dir=show&name=$file'><img width='25px' height='25px' src='home_zdj/coss.png'>$file\n</a></td></tr>";
  16.  
  17. }
  18. else
  19. {
  20. echo "<tr><td><a href='edit_files.php?dir=edit&name=$file'><img width='25px' height='25px' src='home_zdj/coss2.png'>$file\n</a></td></tr>";
  21. }
  22. }
  23. }
  24. closedir($dir);
  25. }
  26. echo '</table>';
  27. }
  28.  
  29.  
  30.  
  31. else if($_GET['dir']=="edit")
  32. {
  33. $file = $_GET['name'];
  34.  
  35.  
  36.  
  37. if(is_file($file))
  38. {
  39. if ($file<>"" && file_exists($file))
  40. {
  41. echo "<h3><center><p> </p>Edycja pliku: <b>$file</b></h3></center>";
  42. echo '<form action="edit_files.php?dir=save" method="post"><input type="hidden" name="sciezka" value="'.$file.'" /><textarea name="tekst" rows="50" cols="200">';
  43. $f = fopen($file,"r");
  44. while(!feof($f)) echo fread($f,1024);
  45. fclose($f);
  46. echo '</textarea><input type="submit" value="Zapisz" /></form>';
  47. }
  48. }
  49.  
  50. }
  51. else if($_GET['dir']=="save")
  52. {
  53. $edycja = $_POST["sciezka"];
  54. $nowedane = $_POST["tekst"];
  55. $fp = fopen($edycja, "w+");
  56. fwrite($fp, $nowedane);
  57. fclose($fp);
  58. echo "<center><h2>pomyślnie zapisano plik<br /><a href='cos.php'>powrót do panelu</a><br/><a href='edit_files.php?dir=show'>powrót do plików</a></h2></center>";
  59. }
  60.  
  61.  
Go to the top of the page
+Quote Post
aras785
post 17.02.2018, 19:08:47
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Cześć.

Masz problem, że ścieżkami. W zmiennej $_GET['name'] trzymałeś aktualny folder, zamiast całej ścieżki.

Lekko poprawiony kod:
  1. <?php
  2. if($_GET['dir']=="show")
  3. {
  4. $current_file = isset($_GET['name'])?$_GET['name']:'.';
  5.  
  6. echo '<table border="1">';
  7. if ($dir = opendir("./$current_file"))
  8. {
  9. echo'<center><h2><a href="cos.php"><== Powrót do panelu</a></h2></center>';
  10. while( $file = readdir($dir))
  11. {
  12. if ($file<>"." && $file<>".." && $file<>"edit_files.php" )
  13. {
  14. if(is_dir($current_file.'/'.$file))
  15. {
  16. echo "<tr><td><a href='edit_files.php?dir=show&name=$current_file/$file'><img width='25px' height='25px' src='home_zdj/coss.png'>$file\n</a></td></tr>";
  17.  
  18. }
  19. else
  20. {
  21. echo "<tr><td><a href='edit_files.php?dir=edit&name=$current_file/$file'><img width='25px' height='25px' src='home_zdj/coss2.png'>$file\n</a></td></tr>";
  22. }
  23. }
  24. }
  25. closedir($dir);
  26. }
  27. echo '</table>';
  28. }
  29.  
  30.  
  31.  
  32. else if($_GET['dir']=="edit")
  33. {
  34. $file = $_GET['name'];
  35.  
  36.  
  37.  
  38. if(is_file($file))
  39. {
  40. if ($file<>"" && file_exists($file))
  41. {
  42. echo "<h3><center><p> </p>Edycja pliku: <b>$file</b></h3></center>";
  43. echo '<form action="edit_files.php?dir=save" method="post"><input type="hidden" name="sciezka" value="'.$file.'" /><textarea name="tekst" rows="50" cols="200">';
  44. $f = fopen($file,"r");
  45. while(!feof($f)) echo fread($f,1024);
  46. fclose($f);
  47. echo '</textarea><input type="submit" value="Zapisz" /></form>';
  48. }
  49. }
  50.  
  51. }
  52. else if($_GET['dir']=="save")
  53. {
  54. $edycja = $_POST["sciezka"];
  55. $nowedane = $_POST["tekst"];
  56. $fp = fopen($edycja, "w+");
  57. fwrite($fp, $nowedane);
  58. fclose($fp);
  59. echo "<center><h2>pomyślnie zapisano plik<br /><a href='cos.php'>powrót do panelu</a><br/><a href='edit_files.php?dir=show'>powrót do plików</a></h2></center>";
  60. }
  61.  
  62.  


Ten post edytował aras785 17.02.2018, 19:11:35
Go to the top of the page
+Quote Post
malanek222
post 17.02.2018, 19:21:10
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.02.2018

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


Wielkie dzięki aras785, wszystko działa biggrin.gif
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 Wersja Lo-Fi Aktualny czas: 16.04.2024 - 12:46