<?php
if(isset($_POST['edit']) && isset($_POST['text']))
file_put_contents($_GET['news'], $_POST['text'] );
if(isset($_GET['news']))
$text = file_get_contents($_GET['news']);
?>
<form action="" method="post" enctype="multipart/form-data" >
<textarea name="text" cols="80" rows="20">
<?php echo htmlspecialchars($text) ?>
</textarea>
<a href="?news=1.txt" >Главная</a><br />
при подаче запроса на ссылках ставит слеши где пробелы
Спустя 15 минут, 39 секунд (3.06.2011 - 14:58) killer8080 написал(а):
Stas
так делать нельзя!!! это большая дырка в безопасности сайта. Шел можно туда залить одним движением!
А за слеши скажи спасибо magic_quotes_gpc ;)
Либо отключи её, либо так
так делать нельзя!!! это большая дырка в безопасности сайта. Шел можно туда залить одним движением!
А за слеши скажи спасибо magic_quotes_gpc ;)
Либо отключи её, либо так
file_put_contents('path/to/file', stripslashes($_POST['text']));
Спустя 7 минут, 17 секунд (3.06.2011 - 15:05) Stas написал(а):
поменял
на
выдает
file_put_contents($_GET['news'], $_POST['text'] );
на
file_put_contents('path/to/file', stripslashes($_POST['text']));
выдает
Цитата |
Warning: file_put_contents(path/to/file) [function.file-put-contents]: failed to open stream: No such file or directory in G:\home\test1.ru\www\includes\admin\redactor.php on line 5 |
Спустя 1 минута, 37 секунд (3.06.2011 - 15:07) Stas написал(а):
ставлю на зад
<img src=\"img/1233156315_1.jpeg\" width=\"64\" height=\"64\">
<img src=\"img/1233156315_1.jpeg\" width=\"64\" height=\"64\">
Спустя 1 минута, 41 секунда (3.06.2011 - 15:09) killer8080 написал(а):
блин естественно, туда же надо реальный путь с именем указывать, а 'path/to/file' я привёл как пример, потому что $_GET['news'] туда пихать нильзя, почему - я уже обьяснил
Спустя 5 минут, 10 секунд (3.06.2011 - 15:14) Stas написал(а):
Цитата |
Шел можно туда залить одним движением! |
понял что так делать не льзя но это у меня находится в админки
для редактирования новостей с левой стороны сайта
div там 120px всего там размещяются новости фирмы но туда надо переодичеки встовлять картинки
в идексе вообще
<img src=\\\"img/1233156315_1.jpeg\\\" width=\\\"64\\\" height=\\\"64\\\">
Спустя 4 минуты, 11 секунд (3.06.2011 - 15:18) killer8080 написал(а):
Да не важно где он находится. Админку могут взломать, а через эту дыру можно залить любые файлы на хост, думаю последствия объяснять не надо.
И почитай про magic quotes
И почитай про magic quotes
Спустя 2 минуты, 49 секунд (3.06.2011 - 15:21) Stas написал(а):
Цитата (killer8080 @ 3.06.2011 - 12:18) |
Да не важно где он находится. Админку могут взломать, а через эту дыру можно залить любые файлы на хост, думаю последствия объяснять не надо. И почитай про magic quotes |
Где читать
а со скриптом потом изменю главное со слешами разобраться
Спустя 7 минут, 2 секунды (3.06.2011 - 15:28) killer8080 написал(а):
Цитата (Stas @ 3.06.2011 - 15:21) |
Где читать а со скриптом потом изменю главное со слешами разобраться |
а что гугл отменили ну вот
слеши оттуда и берутся если при записи делать stripslashes(), проблем не будет.
Спустя 2 минуты, 17 секунд (3.06.2011 - 15:30) Stas написал(а):
Если мы посмотрим у себя в php.ini, то найдем там три директивы:
magic_quotes_qpc
magic_quotes_runtime
magic_quotes_sybase
Каждая из них может быть включена (On), либо выключена (Off).
magic_quotes_qpc
magic_quotes_runtime
magic_quotes_sybase
Каждая из них может быть включена (On), либо выключена (Off).
Спустя 5 минут, 11 секунд (3.06.2011 - 15:35) killer8080 написал(а):
читай внимательней!
Цитата (killer8080 @ 3.06.2011 - 14:58) |
А за слеши скажи спасибо magic_quotes_gpc |
кстати на хосте доступа к php.ini не будет, поэтому либо отключить в .htaccess
Цитата |
php_flag magic_quotes_gpc Off |
либо stripslashes
Спустя 2 дня, 15 часов, 21 минута, 36 секунд (6.06.2011 - 06:57) Guest написал(а):
как правельно писать stripslashes
Спустя 2 минуты, 22 секунды (6.06.2011 - 06:59) alex12060 написал(а):
Мануал Вам в руки.
Спустя 2 минуты, 34 секунды (6.06.2011 - 07:02) Stas написал(а):
Цитата (alex12060 @ 6.06.2011 - 03:59) |
Мануал Вам в руки. |
это что
Спустя 1 час, 17 минут, 24 секунды (6.06.2011 - 08:19) killer8080 написал(а):
Спустя 34 минуты, 8 секунд (6.06.2011 - 08:53) Stas написал(а):
Цитата (killer8080 @ 6.06.2011 - 05:19) | ||
|
а этот скрипт просто в страничку встовлять
<?php
$str = "Is your name O\'reilly?";
// выводит: Is your name O'reilly?
echo stripslashes($str);
?>
или
<?php
if (get_magic_quotes_gpc()) {
$strip_slashes_deep = function ($value) use (&$strip_slashes_deep) {
return is_array($value) ? array_map($strip_slashes_deep, $value) : stripslashes($value);
};
$_GET = array_map($strip_slashes_deep, $_GET);
$_POST = array_map($strip_slashes_deep, $_POST);
$_COOKIE = array_map($strip_slashes_deep, $_COOKIE);
}
?>
Спустя 2 часа, 42 минуты, 3 секунды (6.06.2011 - 11:35) killer8080 написал(а):
второй вариант предпочтительней, лучше один раз при инициализации скрипта очистить от слешей, чем каждый раз вызывать stripslashes()
я делаю так:
в .htaccess
а в начале скрипта, для надёжности, вызываю свою функцию
я делаю так:
в .htaccess
php_flag magic_quotes_gpc Off
а в начале скрипта, для надёжности, вызываю свою функцию
function undo_gpc(){Если уверен что на хостинге будет работать .htaccess, можно ограничится только им.
if(!get_magic_quotes_gpc()) return;
$gpc = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
array_walk_recursive($gpc, create_function('&$v', '$v= stripslashes($v);'));
}
Спустя 27 минут, 13 секунд (6.06.2011 - 12:03) Stas написал(а):
все работает спасибо