|
|
|
| Скрипт работает правильно, вот только не сохраняет изменения в файле...
<?php
// Файл edit.php
// Если передано исправленное содержимое файла
// открываем файл и перезаписываем его
if(isset($_POST['content']))
{
// Открываем файл
$fd = @fopen($_POST['filename'], "w");
// Если файл не может быть открыт - сообщаем
// об этом предупреждением в окне браузера
if(!$fd) exit("Такой файл отсутствует");
// Перезаписываем содержимое файла
fwrite($fd, stripslashes($_POST['content']));
// Закрываем файл
fclose($fd);
// Помещаем в суперглобальный массив $_GET
// имя файла
$_GET['filename'] = $_POST['filename'];
}
?>
<form name=first 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
$bufer = fread($fd, filesize($_GET['filename']));
// Закрываем файл
fclose($fd);
?>
<form name=second 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
}
?> | |
|
|
|
|
|
|
|
для: newcold
(09.02.2008 в 17:22)
| | опасный какой-то скрипт
а если пользователь наберёт адрес http://этотСкрипт?filename=crack.php
и запишет туда что-нибудь злое ?
а так наверное ничего не записывается потому-что не стоит chmod 777
и если файл отсутствует fopen('...', 'w');его создаёт. опять-же если выставлено право на запись в папку
наверное правильнее проверять с помощью is_exist или is_writable | |
|
|
|
|
|
|
|
для: exp
(09.02.2008 в 19:24)
| | Спасибо за совет... буду смотреть. Скрипт будет доступен только из админ панели, так что только админ сможет им пользоваться... | |
|
|
|
|
|
|
|
для: newcold
(10.02.2008 в 12:33)
| | Воспользоваться сможет каждый, а найти - только админ | |
|
|
|
|
|
|
|
для: bronenos
(10.02.2008 в 13:41)
| | В яблочко! :) | |
|
|
|
|
|
|
|
для: Trianon
(10.02.2008 в 15:29)
| | как защитить??? там ещё будет скрипт в начале и в конце страницы, который проверяет совершон ли вход в админ панель или нет, если нет, то доступ закрыт... или нет??? | |
|
|
|
|
|
|
|
для: exp
(09.02.2008 в 19:24)
| | вопрос по поводу безопасности))
если у меня такие адреса
http://test.test/book.php?r=lib&p=php&pp=&namebook=23&partbook=contents
http://test.test/book.php?r=lib&p=php&pp=&namebook=23&partbook=pred
т.е. то что в partbook потом инклудом вставляется в страницу, в нужной папке находятся файлы с форматом тхт - contents.тхт, pred.тхт.
это тоже получается небезопасно?
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(10.02.2008 в 17:45)
| | | |
|
|
|
|
|
|
|
для: bronenos
(10.02.2008 в 18:02)
| | Т.е. ты хочешь сказать что не безопасно?
Дело в том, что я предварительно проверяю находится ли такой файл в папке, а затем если он существует, то тогда срабатывает include_once
Или все-таки отказаться от такой реализации?
Тогда как?
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(10.02.2008 в 18:19)
| | ../admin.php тоже может существовать в папке.... уровнем так выше... | |
|
|
|
|
|
|
|
для: bronenos
(10.02.2008 в 19:57)
| | :))
ну, так у меня же идет проверка существования, к примеру, contens.txt, а не contens.php.
все-равно уязвимо?
----
Regards, Max Vasin. | |
|
|
|