Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] edycja konfiguracyjnego pliku tekstowego uslugi Linux
Forum PHP.pl > Forum > Przedszkole
Sebaa
Witam,
Znalazłem na sieci skrypt pozwalający na edycję pliku tekstowego znajdującego się na serwerze online. Chciałbym go wykorzystać do edycji zawartości plików konfiguracyjnych usług Linux. Np vsftpd.conf serwera plików vsftpd.

background=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
#dirmessage_enable=YES
#ftpd_banner=Welcome to blah FTP service.
session_support=NO
#syslog_enable=YES
#userlist_enable=YES
#userlist_deny=NO
#userlist_file=/etc/vsftpd.users
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES


Skrypt wygląda następująco:
  1. <?php
  2. if($_POST['Submit']){
  3. $open = fopen("textfile.txt","w+");
  4. $text = $_POST['update'];
  5. fwrite($open, $text);
  6. fclose($open);
  7. echo "File updated.<br />";
  8. echo "File:<br />";
  9. $file = file("textfile.txt");
  10. foreach($file as $text) {
  11. echo $text."<br />";
  12. }
  13. }else{
  14. $file = file("textfile.txt");
  15. echo "<form action=\"".$PHP_SELF."\" method=\"post\">";
  16. echo "<textarea Name=\"update\" cols=\"50\" rows=\"10\">";
  17. foreach($file as $text) {
  18. echo $text;
  19. }
  20. echo "</textarea>";
  21. echo "<input name=\"Submit\" type=\"submit\" value=\"Update\" />\n
  22. </form>";
  23. }
  24. ?>


Niestety działa nieprawidłowo, gdyż zostawia znaki ^M na końcu każdej linii pliku conf, co jest dopiero widoczne w edytorze vi czy nano. Plik taki nie działa prawidłowo.

background=YES^M
listen=YES^M
anonymous_enable=NO^M
local_enable=YES^M
write_enable=YES^M
local_umask=022^M
check_shell=NO^M
#dirmessage_enable=YES^M
#ftpd_banner=Welcome to blah FTP service.^M
session_support=NO^M
#syslog_enable=YES^M
#userlist_enable=YES^M
#userlist_deny=NO^M
#userlist_file=/etc/vsftpd.users^M
#xferlog_enable=YES^M
#xferlog_file=/var/log/vsftpd.log^M
#xferlog_std_format=YES^M
^M

Czy ktoś wie może jak temu zaradzić?.
Ten skrypt miał być wstępem do zbudowania jakiegoś mini panelu administracyjnego pozwalającego na konfigurację tej usługi poprzez przeglądarkę internetową.

Za wszelką pomoc będę wdzięczny.
Pozdrawiam.
desavil
Przyłączam się do pytania
SzamanGN
Nie wiem jak tobie mogło to chodzić, bo:
1. Linia 2 - problem ze zmienną;
2. Linia 15 - nie ma takiej zmiennej jak $PHP_SELF.

Zaktualizowałem skrypt, którego nie napisałeś:
  1. <?php
  2. if(isset($_POST['submit']))
  3. {
  4. $open = fopen('textfile.txt','w+');
  5. $text = $_POST['update'];
  6. fwrite($open, $text);
  7. fclose($open);
  8. echo 'File updated.<br />';
  9. echo 'File:<br />';
  10. $file = file('textfile.txt');
  11. foreach($file as $text)
  12. {
  13. echo $text.'<br />';
  14. }
  15. }
  16. else
  17. {
  18. $file = file('textfile.txt');
  19. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
  20. echo '<textarea Name="update" cols="50" rows="10">';
  21. foreach($file as $text)
  22. {
  23. echo $text;
  24. }
  25. echo '</textarea>';
  26. echo '<br /><input name="submit" type="submit" value="Update" /></form>';
  27. }
  28. ?>


Przetestowałem u siebie i nie widzę żadnych problemów z zakończeniem linii w pliku.
Sprawdź konfigurację PHP - kodowanie znaków, bo ja mam UTF-8.
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.