Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Edycja pliku
Forum PHP.pl > Forum > Przedszkole
cypeczek
Witajcie panowie,
rozpocząłem przygodę z PHP i buduje własny mini CMS. Mam jedno pytanie, jak ma wyglądać funkcja, która wywołuje plik css do okna, pozwala na jego edycję apotem na zapis w tym samym katalogu? Jeżeli ktoś miałby chwilę to prosiłbym o jakiś przykład, jak nie t chocaż nazwy funkcji i instrukcję jak to po kolei ogarnąć. Z góry dzięki.
IceManSpy
Możesz wykorzystać http://ckeditor.com , choć nie będzie kolorować składni. Wczytujesz do jakiejś zmiennej plik css, a potem wyświetlasz do w edytorze. Edytujesz, a następnie klikasz zapisz, zapisze Ci wynik do zmiennej, a potem zrób z tym co potrzebujesz.
ShadowD
edycja plików php -> google, fopen itd.
cypeczek
Dziękuje Panowie, naprowadziliście mnie na rozwiązanie. Napisałem taki kod:

  1. <?
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>Panel Administratora</title>
  8. <link href="style/css/transdmin.css" rel="stylesheet" type="text/css" media="screen" />
  9. <!--[if IE 6]><link rel="stylesheet" type="text/css" media="screen" href="style/css/ie6.css" /><![endif]-->
  10. <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="style/css/ie7.css" /><![endif]-->
  11. <script type="text/javascript" src="style/js/jquery.js"></script>
  12. <script type="text/javascript" src="style/js/jNice.js"></script>
  13. </head>
  14. <body>
  15. <div id="wrapper">
  16. <h1><a href="./index.php"><span>Panel Administracyjny</span></a></h1>
  17. <ul id="mainNav">
  18. <li><a href="./index.php" class="active">Główna</a></li>
  19. <li><a href="./modules/main_info.php">Newsy</a></li>
  20. <li><a href="./wykop.php">Wykop</a></li>
  21. <li><a href="./styl.php">Styl</a></li>
  22. <li class="logout"><a href="./wylog.php">Wyloguj</a></li>
  23. </ul>
  24. <div id="containerHolder">
  25. <div id="container">
  26. <?if(!empty($_SESSION['uzyt'])){?>
  27. <table cellpadding="0" cellspacing="0" width="342" height="228">
  28. <tr>
  29. <td height="228" valign="top">
  30. <?
  31. $plik = '../styl/glowny.css';
  32. $uchwyt = fopen($plik, 'r');
  33. $tresc = fread($uchwyt, filesize($plik));
  34. fclose($uchwyt);
  35. $uchwyt = fopen($plik, 'r');
  36. fclose($uchwyt);
  37. ?>
  38. <?
  39. if ( !$_POST['wyslij'] ) {?>
  40. <FORM ACTION="styl.php?wyslij" METHOD="POST">
  41. <p align="center">
  42. <TEXTAREA NAME=edycja rows="30" cols="78"> <? echo $tresc ?> </TEXTAREA><br>
  43. <INPUT TYPE="submit" VALUE="Zapisz" name=wyslij>
  44. </p>
  45. </FORM>
  46. <?
  47. } else
  48. {
  49. $plik = '../styl/glowny.css';
  50. $uchwyt = fopen($plik, 'w');
  51. fwrite($uchwyt, $_POST['edycja']);
  52. fclose($uchwyt);
  53. }
  54. echo"<br><br><a href=\"styl.php\">Powrót do edycji</a>";
  55. ?></td>
  56. </tr>
  57. </table>
  58. </center>
  59. <?}else{ echo '<p>Brak autoryzacji.</p>'; echo '<p>Dostęp zabroniony.</p>'; echo '<br><a href="loguj.php">Zaloguj</a>'; }?>
  60. </div>
  61. </div>
  62. </div>
  63. </body>
  64. </html>


Już zawiera stylowanie moje, ale to nie ważne. Działa bez zarzutów tylko powiedzcie mi czy są tu jakieś błędy czy luki bezpieczeństwa?

I jeszcze jedno pytanie, czy pli php mogę edytować w ten sam sposób?

Panowie nowe pytanie, jeśli na jedne stronie chcę wrzucić kilka taki textera to co mam zmienić żeby mi się nie pogryzły i żeby dobre pliki zapisywały?

Czy ktoś miałby chwilę aby pomóc pisząc odpowiedź?
IceManSpy
Możesz każdy plik edytować, nawet php. Problem będzie w tym jak zapomnisz jakiegoś znaczka i będzie syntax error.
Aby użyć kilka textarea wystarczy że inny będą miały name np jak w Twoim kodzie jest: <TEXTAREA NAME=edycja rows="30" cols="78"> to możesz dać:
<TEXTAREA NAME=edycja rows="30" cols="78">
<TEXTAREA NAME=podsumowanie rows="30" cols="78">

Ważne jest, aby na serwerze właściwym pliki, które będziesz edytować miały odpowiednie atrybuty do edycji.
cypeczek
A tutaj muszę zmienić wszystkim nazwy zmiennych?

  1. $plik = '../styl/glowny.css';
  2. $uchwyt = fopen($plik, 'r');
  3. $tresc = fread($uchwyt, filesize($plik));
  4. fclose($uchwyt);
  5. $uchwyt = fopen($plik, 'r');
  6. fclose($uchwyt);


I jeszcze powiedzcie mi jak to jest bo mam pliki z uprawnieniami na serwerze 755 i mi zapisuje ładnie, tak ma być?
IceManSpy
W tym nic nie musisz zmieniać, bo przecież odczytujesz tylko wszystko z pliku do zmiennej treść. I po co robisz 5 i 6 linijkę w/w kodzie? Otwierasz a potem od razu zamykasz, bez sensu smile.gif

Co do uprawnień, to nie powiem Ci dokładnie, ale chyba powinno być 777, ale lepiej niech ktoś to potwierdzi lub zaprzeczy smile.gif
cypeczek
Czyli jak chcę edytować na jednej stronie powiedzmy 3 pliki to tak powinien wyglądać ten kod poprawie?

  1. <table cellpadding="0" cellspacing="0" width="342" height="228">
  2. <tr>
  3. <td height="228" valign="top">
  4. <?
  5. $plik = '../styl/glowny.css';
  6. $uchwyt = fopen($plik, 'r');
  7. $tresc = fread($uchwyt, filesize($plik));
  8. fclose($uchwyt);
  9. ?>
  10. <?
  11. if ( !$_POST['wyslij'] ) {?>
  12. <FORM ACTION="styl.php?wyslij" METHOD="POST">
  13. <p align="center">
  14. <TEXTAREA NAME=edycja rows="30" cols="78"> <? echo $tresc ?> </TEXTAREA><br>
  15. <INPUT TYPE="submit" VALUE="Zapisz" name=wyslij>
  16. </p>
  17. </FORM>
  18. <?
  19. } else
  20. {
  21. $plik = '../styl/glowny.css';
  22. $uchwyt = fopen($plik, 'w');
  23. fwrite($uchwyt, $_POST['edycja']);
  24. fclose($uchwyt);
  25. }
  26. echo"<br><br><a href=\"styl.php\">Powrót do edycji</a>";
  27. ?></td>
  28. </tr>
  29. </table>
  30.  
  31. <table cellpadding="0" cellspacing="0" width="342" height="228">
  32. <tr>
  33. <td height="228" valign="top">
  34. <?
  35. $plik2 = '../styl/html.css';
  36. $uchwyt2 = fopen($plik2, 'r');
  37. $tresc2 = fread($uchwyt, filesize($plik2));
  38. fclose($uchwyt2);
  39. ?>
  40. <?
  41. if ( !$_POST['wyslij2'] ) {?>
  42. <FORM ACTION="styl.php?wyslij" METHOD="POST">
  43. <p align="center">
  44. <TEXTAREA NAME=edycja2 rows="30" cols="78"> <? echo $tresc2 ?> </TEXTAREA><br>
  45. <INPUT TYPE="submit" VALUE="Zapisz" name=wyslij2>
  46. </p>
  47. </FORM>
  48. <?
  49. } else
  50. {
  51. $plik2 = '../styl/html.css';
  52. $uchwyt2 = fopen($plik2, 'w');
  53. fwrite($uchwyt2, $_POST['edycja2']);
  54. fclose($uchwyt2);
  55. }
  56. echo"<br><br><a href=\"styl.php\">Powrót do edycji</a>";
  57. ?></td>
  58. </tr>
  59. </table>
  60.  
  61. <table cellpadding="0" cellspacing="0" width="342" height="228">
  62. <tr>
  63. <td height="228" valign="top">
  64. <?
  65. $plik3 = '../styl/top.css';
  66. $uchwyt3 = fopen($plik3, 'r');
  67. $tresc3 = fread($uchwyt3, filesize($plik3));
  68. fclose($uchwyt3);
  69. ?>
  70. <?
  71. if ( !$_POST['wyslij3'] ) {?>
  72. <FORM ACTION="styl.php?wyslij3" METHOD="POST">
  73. <p align="center">
  74. <TEXTAREA NAME=edycja3 rows="30" cols="78"> <? echo $tresc3 ?> </TEXTAREA><br>
  75. <INPUT TYPE="submit" VALUE="Zapisz" name=wyslij3>
  76. </p>
  77. </FORM>
  78. <?
  79. } else
  80. {
  81. $plik3 = '../styl/top.css';
  82. $uchwyt3 = fopen($plik3, 'w');
  83. fwrite($uchwyt3, $_POST['edycja3']);
  84. fclose($uchwyt3);
  85. }
  86. echo"<br><br><a href=\"styl.php\">Powrót do edycji</a>";
  87. ?></td>
  88. </tr>
  89. </table>
IceManSpy
Tylko w tym kodzie, jak wy edytujesz 1 textarea i drugi, a potem klikniesz w 1 zapisz, t Ci tylko 1 zapisze. Musisz wszystko dać w jednym formie.
cypeczek
Coś takiego?

  1. <table cellpadding="0" cellspacing="0" width="342" height="228">
  2. <tr>
  3. <td height="228" valign="top">
  4. <?
  5. $plik = '../styl/glowny.css';
  6. $uchwyt = fopen($plik, 'r');
  7. $tresc = fread($uchwyt, filesize($plik));
  8. fclose($uchwyt);
  9. $plik2 = '../styl/html.css';
  10. $uchwyt2 = fopen($plik2, 'r');
  11. $tresc2 = fread($uchwyt, filesize($plik2));
  12. fclose($uchwyt2);
  13. $plik3 = '../styl/top.css';
  14. $uchwyt3 = fopen($plik3, 'r');
  15. $tresc3 = fread($uchwyt3, filesize($plik3));
  16. fclose($uchwyt3);
  17. ?>
  18. <?
  19. if ( !$_POST['wyslij'] ) {?>
  20. <FORM ACTION="styl.php?wyslij" METHOD="POST">
  21. <p align="center">
  22. <TEXTAREA NAME=edycja rows="30" cols="78"> <? echo $tresc ?> </TEXTAREA><br>
  23. <TEXTAREA NAME=edycja rows="30" cols="78"> <? echo $tresc2 ?> </TEXTAREA><br>
  24. <TEXTAREA NAME=edycja rows="30" cols="78"> <? echo $tresc3 ?> </TEXTAREA><br>
  25. <INPUT TYPE="submit" VALUE="Zapisz" name=wyslij>
  26. </p>
  27. </FORM></td>
  28. </tr>
  29. </table>
IceManSpy
Coś w ten deseń, tylko po wysłaniu zobacz sobie co się mieści w zmiennej $_POST['edycja'] (w tym jest mały błąd, ale może sam do tego dojdziesz, ja to już napisałem smile.gif )snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.