Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Помогите исправить скрипт для редактирования файлов через админку / 25 сообщений из 41, страница 1 из 2
30.11.2014, 17:14
    #38820755
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Помогите исправить скрипт для редактирования файлов:
Код: 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
30.11.2014, 19:09
    #38820802
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
ищем "Пример #3 Примеры удаленного чтения с помощью fread()" ...

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

Не приведу, ибо ты даже по ссылке не ходил (а ведь там готовый код лежит в примере #3)... стыдно должно быть за попрошайничество и лень :)
...
Рейтинг: 0 / 0
30.11.2014, 23:24
    #38820917
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
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
01.12.2014, 01:30
    #38820951
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Знать путь от корня точно не нужно.
Тогда не документ роот, а сервер нейм...
Одно интересно- файлы в своем каталоге читает и пишет на ура.
И на
авторА вообще перевод ошибок и так всё объясняет. Не возможно получить статистику по файлу!!! Просто всё дело в том, что ты толкаешь в функцию хэндл потока, а не файла! потому filesize бессилен в определении его размера. (решение проблемы по ссылке выше)
вообще молчит.
Дело похоже только в путях.
И ни в чем больше....
Просто нужен пример работающего кода.
Проще разбираться в работающем решении...
...
Рейтинг: 0 / 0
01.12.2014, 01:55
    #38820959
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
had81818Знать путь от корня точно не нужно.Вам видней, конечно.

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

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

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

Код: 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
01.12.2014, 21:11
    #38821960
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Также спасибо за совет vkle .
Он помог больше всего.
...
Рейтинг: 0 / 0
01.12.2014, 21:21
    #38821969
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
платят за количество строк? ))
а то кагбы эту простыню из "открыть, проверить открыло ли, прочитать/записать, закрыть" можно заменить одной строкой file_get_contents / file_put_contents.
...
Рейтинг: 0 / 0
01.12.2014, 22:30
    #38822024
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Скипт чужой....
Переделывать нет смысла.
Вышла проблема-скрипт сохраняет файл с виндовыми переносами строк.
А надо в юникс-формате.
Подскажите, как это сделать?
...
Рейтинг: 0 / 0
01.12.2014, 22:47
    #38822034
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
had81818сохраняет файл с виндовыми переносами строк.
А надо в юникс-формате.
Подскажите, как это сделать?Заменить "\r" на ""
...
Рейтинг: 0 / 0
01.12.2014, 23:02
    #38822041
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Подскажите-как это сделать кодом?
В пхп пока чайник со свистком....
...
Рейтинг: 0 / 0
01.12.2014, 23:10
    #38822043
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Тынц


had81818В пхп пока чайник со свистком....В Гугле/Яндексе тоже?
...
Рейтинг: 0 / 0
02.12.2014, 11:33
    #38822328
had81818
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
Сделал так:
Код: 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
02.12.2014, 11:55
    #38822356
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Помогите исправить скрипт для редактирования файлов через админку
had81818,

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

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


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


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