powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Помогите исправить скрипт для редактирования файлов через админку
25 сообщений из 41, страница 1 из 2
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820755
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите исправить скрипт для редактирования файлов:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 <?php 
  if(isset($_POST['content'])) 
  { 
    $fd = @fopen($_POST['filename'],"w"); 
    if(!$fd) exit("Такой файл отсутствует"); 
    fwrite($fd,stripslashes($_POST['content'])); 
    fclose($fd); 
    $_GET['filename'] = $_POST['filename']; 
  } 
?> 
<form action = "reguser.php" method="get"> 
   Имя файла <input type="text" name="filename" value=<?php echo $_GET['filename']; ?>><br> 
  <input type="submit" value="Отправить"> 
</form> 
<?php 
  // Если в строке зароса передано имя 
  // файла - открываем его для редактирования 
  if(isset($_GET['filename'])) 
  { 
    $fd = @fopen($_GET['filename'],"r"); 
    if(!$fd) exit("Такой файл отсутствует"); 
    $bufer = fread($fd,filesize($_GET['filename'])); 
    fclose($fd); 
    ?> 
      <form action = "reguser.php" method="post"> 
        Имя файла <textarea cols=76 rows=10 name="content"><?php echo $bufer; ?></textarea><br> 
        <input type="hidden" name=filename value='<?php echo $_GET['filename']; ?>'> 
        <input type="submit" name=edit value="Редактировать"> 
      </form> 
    <?php 
  } 
?> 


Скрипт лежит не в корне, редактируемый файл-в корне
Когда делаю запрос: http://site.ru/admin/reguser.php?filename=http://site.ru/robots.txt выходит варнинг:
Warning: filesize(): stat failed for http://site.ru/robots.txt in /home/site.ru/public_html/www/admin/reguser.php on line 22 Warning: fread(): Length parameter must be greater than 0 in /home/site.ru/public_html/www/admin/reguser.php on line 22
Права на файл стоят апач, поэтому дело не в них...
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820802
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищем "Пример #3 Примеры удаленного чтения с помощью fread()" ...

А вообще перевод ошибок и так всё объясняет. Не возможно получить статистику по файлу!!! Просто всё дело в том, что ты толкаешь в функцию хэндл потока, а не файла! потому filesize бессилен в определении его размера. (решение проблемы по ссылке выше)
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820903
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код не мой, сам я знаю html, пхп только начал изучать....
Приведите, пожалуйста, пример кода.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820910
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818Код не мой, сам я знаю html, пхп только начал изучать....
Приведите, пожалуйста, пример кода.

Не приведу, ибо ты даже по ссылке не ходил (а ведь там готовый код лежит в примере #3)... стыдно должно быть за попрошайничество и лень :)
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820917
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818Скрипт лежит не в корне, редактируемый файл-в корне
Когда делаю запрос: http://site.ru/admin/reguser.php?filename=http://site.ru/robots.txt выходит варнинг:Уффф... не надо путать пути файлов относительно сайта (URL) и пути файлов в файловой системе. Это разные вещи, и одно в другое можно преобразовать. Поищите в инете статью об этом различии, там подробно разжевано. Далее... Сохранять файл Вам придется в файловую систему. А потому есть смысл оттуда его и читать. Вообще говоря, по ссылке реально существующего файла может и не быть вовсе (файл формируется скриптом, подменяется рерайтом, алиасом и т.п.). Это еще один аргумент по теме "нефиг связываться с URL в качестве имени файла". Так как Ваша штуковина предназначена для правки локальных (по отношению к серверу) файлов, то вполне можно использовать $_SERVER['DOCUMENT_ROOT'] в качестве базы для выбора файлов. Тогда ссылка на правку будет выглядеть так:
Код: sql
1.
http://site.ru/admin/reguser.php?filename=/robots.txt

А имя файла вычисляется как
Код: php
1.
$filename = $_SERVER['DOCUMENT_ROOT'] . $_GET['filename'];

Таким образом получаем имя файла от корня ФС. Это первое.

Второе.
Знать длину файла не обязательно. Можно читать файл до тех пор, пока не закончится файл. В документации есть пример. Почаще заглядывайте ,там много интересного :-)
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820951
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знать путь от корня точно не нужно.
Тогда не документ роот, а сервер нейм...
Одно интересно- файлы в своем каталоге читает и пишет на ура.
И на
авторА вообще перевод ошибок и так всё объясняет. Не возможно получить статистику по файлу!!! Просто всё дело в том, что ты толкаешь в функцию хэндл потока, а не файла! потому filesize бессилен в определении его размера. (решение проблемы по ссылке выше)
вообще молчит.
Дело похоже только в путях.
И ни в чем больше....
Просто нужен пример работающего кода.
Проще разбираться в работающем решении...
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38820959
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818Знать путь от корня точно не нужно.Вам видней, конечно.

had81818Тогда не документ роот, а сервер нейм...Расскажите, как можно использовать сервер нейм, когда он в общем случае может вообще ни с чем не совпадать. Скажем, для случая, когда сервер нейм будет localhost.

had81818Дело похоже только в путях.
И ни в чем больше....В общем и целом, так оно и есть.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821044
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818Знать путь от корня точно не нужно.
Тогда не документ роот, а сервер нейм...
Одно интересно- файлы в своем каталоге читает и пишет на ура.
И на
авторА вообще перевод ошибок и так всё объясняет. Не возможно получить статистику по файлу!!! Просто всё дело в том, что ты толкаешь в функцию хэндл потока, а не файла! потому filesize бессилен в определении его размера. (решение проблемы по ссылке выше)
вообще молчит.
Дело похоже только в путях.
И ни в чем больше....
Просто нужен пример работающего кода.
Проще разбираться в работающем решении...

До сих пор отказываемся пройти по ссылке и найти пример #3? ))) Блин... настырненько :) Я бы уже сходил и во всём разобрался. Там же рабочий пример лежит.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821068
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр, "Просто нужен пример работающего кода." === "Сделайте за меня."
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821950
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал.
Работает.
Спасибо Програмёр за совет.
Лучшее учение-делать самому.
Но совет никогда не мешает.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821951
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 <?php 
  if(isset($_POST['content'])) 
  { 
    $fd = @fopen(($_SERVER['DOCUMENT_ROOT'] . $_POST['filename']),"w"); 
    if(!$fd) exit("Такой файл отсутствует"); 
    fwrite($fd,stripslashes($_POST['content'])); 
    fclose($fd); 
    $_GET['filename'] = $_POST['filename']; 
  } 
?> 
<form action = "1.php" method="get"> 
   Имя файла <input type="text" name="filename" value=<?php echo $_GET['filename']; ?>><br> 
  <input type="submit" value="Отправить"> 
</form> 
<?php 
  // Если в строке зароса передано имя 
  // файла - открываем его для редактирования 
  if(isset($_GET['filename'])) 
  { 
    $fd = @fopen(($_SERVER['DOCUMENT_ROOT'] . $_GET['filename']),"r"); 
    if(!$fd) exit("Такой файл отсутствует"); 
    $bufer = fread($fd,filesize($_SERVER['DOCUMENT_ROOT'] . $_GET['filename'])); 
    fclose($fd); 
    ?> 
      <form action = "1.php" method="post"> 
        Имя файла <textarea cols=76 rows=10 name="content"><?php echo $bufer; ?></textarea><br> 
        <input type="hidden" name=filename value='<?php echo $_GET['filename']; ?>'> 
        <input type="submit" name=edit value="Редактировать"> 
      </form> 
    <?php 
  } 
?>


Пусть останется с документ рутом.
Если что-переделаю.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821960
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также спасибо за совет vkle .
Он помог больше всего.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38821969
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
платят за количество строк? ))
а то кагбы эту простыню из "открыть, проверить открыло ли, прочитать/записать, закрыть" можно заменить одной строкой file_get_contents / file_put_contents.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822024
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скипт чужой....
Переделывать нет смысла.
Вышла проблема-скрипт сохраняет файл с виндовыми переносами строк.
А надо в юникс-формате.
Подскажите, как это сделать?
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822034
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818сохраняет файл с виндовыми переносами строк.
А надо в юникс-формате.
Подскажите, как это сделать?Заменить "\r" на ""
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822041
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите-как это сделать кодом?
В пхп пока чайник со свистком....
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822043
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц


had81818В пхп пока чайник со свистком....В Гугле/Яндексе тоже?
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822328
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<?php
  if(isset($_POST['content'])) 
  { 
    $fd = @fopen(($_SERVER['DOCUMENT_ROOT'] . $_POST['filename']),"w"); 
    if(!$fd) exit("Файл отсутствует"); 
    fwrite($fd,stripslashes($_POST['content'])); 
    fclose($fd); 
    $_GET['filename'] = $_POST['filename']; 
  } 
?> 

<form action = "test.php" method="get"> 
 &nbsp; &nbsp;Имя файла <input type="text" name="filename" value=<?php echo $_GET['filename']; ?>>
&nbsp;<input type="submit" value="Отправить" class='submit5'> 
</form> 
<?php 
  // Если в строке запроса передано имя файла - открываем его для редактирования 
  if(isset($_GET['filename'])) 
  { 
    $fd = @fopen(($_SERVER['DOCUMENT_ROOT'] . $_GET['filename']),"r"); 
    if(!$fd) exit("Файл отсутствует"); 
    $bufer = fread($fd,filesize($_SERVER['DOCUMENT_ROOT'] . $_GET['filename'])); 

$search  = `\r\n`;
$replace = '\n';
$subject=$bufer;
$rezalt=str_replace($search,  $replace , $subject);

    fclose($fd); 
    ?> 
      <form action = "test.php" method="post"> 
       &nbsp; &nbsp;<textarea cols=76 rows=10 name="content" style="width:900px; height:350px;"><?php echo $rezalt; ?></textarea>
 
        <input type="hidden" name=filename value='<?php echo $_GET['filename']; ?>'> 
         &nbsp; &nbsp;<input type="submit" name=edit value="Редактировать" class='submit5'> 
      </form> 
<?php 
  } 
?>


Но не работает.
Почему?
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822356
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818,

Включите сообщения об ошибках. Оно скажет и почему, и в какой строчке... Можете просто прочесть код, который сюда запостили. Обратите внимание на подсветку кода.
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822364
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Варнинги у меня всегда вкл.
$search = `\r\n`;
$replace = '\n';- тут непорядок?
Как тогда?
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822365
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докучи:
автор
Код: php
1.
if(!$fd) exit("Файл отсутствует");

На самом деле, "Файл отсутствует или нет прав на чтение".
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822369
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822376
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
$search  = "\r\n";
$replace = "\n";


но все равно не работает
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822381
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
had81818все равно не работаетУточните, что значит "не работает".
...
Рейтинг: 0 / 0
(PHP) Помогите исправить скрипт для редактирования файлов через админку
    #38822385
had81818
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С виду все норм.
Нет варнингов.
Файл правится.
Но результат-файл с виндовым переносом строки.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Помогите исправить скрипт для редактирования файлов через админку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]