Спустя 31 минута, 18 секунд (24.09.2012 - 12:10) walerus написал(а):
dvs Покажи свой код, как именно и что ты сохраняешь... на простом примере.
Спустя 6 минут, 3 секунды (24.09.2012 - 12:17) dron4ik написал(а):
Ты наверное формируешь строку в 'str' ???
Спустя 26 минут, 8 секунд (24.09.2012 - 12:43) dvs написал(а):
код небольшой
-------------------------------------------------------------------------
ЗЫ в textarea пишу текст ставлю enter-ы, они заменяются на \r\n
получается вот такой файл
<form method="post" action="">
<textarea name="robots"></textarea>
<input type="submit" value="сохранить">
</form>
-------------------------------------------------------------------------
file_put_contents('../robots.txt', $_POST['robots']);
ЗЫ в textarea пишу текст ставлю enter-ы, они заменяются на \r\n
получается вот такой файл
User-agent: *\r\nDisallow: /\r\n11232
Спустя 16 минут (24.09.2012 - 12:59) dron4ik написал(а):
$a = "$_POST['robots']\r\n\r\n";
file_put_contents('../robots.txt', $a );
<?php
$file = "../robots.txt";
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем нового человека в файл
$current .= "$_POST['robots']\n";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);
?>
file_put_contents('../robots.txt', $a );
<?php
$file = "../robots.txt";
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем нового человека в файл
$current .= "$_POST['robots']\n";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);
?>
Спустя 1 минута, 43 секунды (24.09.2012 - 13:00) walerus написал(а):
dvs Как определил чти именно \r\n идет, а не просто \n ?
Спустя 42 секунды (24.09.2012 - 13:01) walerus написал(а):
dron4ik - это ты что за пример привел ?
Спустя 3 минуты, 32 секунды (24.09.2012 - 13:05) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 09:59) |
$a = "$_POST['robots']\r\n\r\n"; file_put_contents('../robots.txt', $a ); <?php $file = "../robots.txt"; // Открываем файл для получения существующего содержимого $current = file_get_contents($file); // Добавляем нового человека в файл $current .= "$_POST['robots']\n"; // Пишем содержимое обратно в файл file_put_contents($file, $current); ?> |
в $_POST['robots'] уже есть эти символы, и записывается в файл с этими символами, а не переводит на новую строку
Спустя 3 минуты, 23 секунды (24.09.2012 - 13:08) dron4ik написал(а):
Цитата (walerus @ 24.09.2012 - 10:01) |
dron4ik - это ты что за пример привел ? |
с мануала...
Спустя 15 минут, 16 секунд (24.09.2012 - 13:23) dron4ik написал(а):
Цитата (dvs @ 24.09.2012 - 10:05) |
в $_POST['robots'] уже есть эти символы, и записывается в файл с этими символами, а не переводит на новую строку |
У меня все работает с твоим же первым примером...
Ковыряй в сторону фопен наверное(((
Спустя 1 минута, 17 секунд (24.09.2012 - 13:25) dron4ik написал(а):
Погодь, а как ты просматриваешь файл???????
Спустя 2 минуты, 27 секунд (24.09.2012 - 13:27) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 10:25) |
Погодь, а как ты просматриваешь файл??????? |
с помощью F4
Спустя 10 минут, 49 секунд (24.09.2012 - 13:38) walerus написал(а):
dvs - ты на севере или на локале? В чем просматриваешь файлы? текстовый редактор или... ?
Спустя 11 минут, 40 секунд (24.09.2012 - 13:49) dron4ik написал(а):
dvs
если ты через веб то прогоняй сперва в nl2br()...
если ты через веб то прогоняй сперва в nl2br()...
Спустя 5 минут, 50 секунд (24.09.2012 - 13:55) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 10:49) |
dvs если ты через веб то прогоняй сперва в nl2br()... |
спасибо, попробую
Спустя 1 минута, 19 секунд (24.09.2012 - 13:57) dvs написал(а):
Цитата (walerus @ 24.09.2012 - 10:38) |
dvs - ты на севере или на локале? В чем просматриваешь файлы? текстовый редактор или... ? |
на сервере, смотрю файл через Notepad++
Спустя 7 минут, 32 секунды (24.09.2012 - 14:04) walerus написал(а):
Покажи свой код весь, что то не чисто там... в какой кодировке форма ...?
Спустя 5 минут, 44 секунды (24.09.2012 - 14:10) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 10:49) |
dvs если ты через веб то прогоняй сперва в nl2br()... |
не помогло((, делал так
file_put_contents('../robots.txt', nl2br($_POST['robots'], false));
Спустя 6 минут, 46 секунд (24.09.2012 - 14:17) dvs написал(а):
Цитата (walerus @ 24.09.2012 - 11:04) |
Покажи свой код весь, что то не чисто там... в какой кодировке форма ...? |
function setting_site(){
$model = new Model_Structure();
if(isset($_POST['setting_site'])){
file_put_contents('../robots.txt', nl2br($_POST['robots'], false));
file_put_contents('../editor.css', nl2br($_POST['editor']), false);
}
$this->registry['template']->set('robots', file_get_contents('../robots.txt'));
$this->registry['template']->set('editor', file_get_contents('../editor.css'));
$this->registry['template']->show('setting_site');
}
форма в кодировке utf-8 without BOM,
<form action="" method="post">
<div id="wrapper">
<div id="page">
<div id="content">
<h1 class="botspace">Настройки сайта</h1>
<p>Данные настройки предназначены для опытных пользователей. Если вы не имеете представления о назначении данных настроек и способе их применения, пожалуйста, не вносите изменения.</p><br />
<div id="login_form" class="clearfix">
<label for="robots">robots.txt</label>
<textarea cols="70" rows="20" id="robots" name="robots"><?=$robots;?></textarea><br /><br />
<label for="editor">editor.css</label>
<textarea cols="70" rows="20" id="editor" name="editor"><?=$editor;?></textarea>
<input type="hidden" name="setting_site" value="1">
<!--</form>-->
</div>
</div>
</div>
</div>
<!-- нижние кнопки (начало) -->
<div id="control_space"></div>
<div id="control">
<div id="bottom_shadow"></div>
<div id="control_content" class="confirm clearfix">
<!--<form>-->
<input type="submit" value="Сохранить" id="confirmremove" />
<!--</form>-->
<a href="<?=$_SERVER['HTTP_REFERER']?>">Отменить</a>
</div>
</div>
<!-- нижние кнопки (конец) -->
</form>
Спустя 6 минут, 10 секунд (24.09.2012 - 14:23) dron4ik написал(а):
function setting_site(){
$model = new Model_Structure();
if(isset($_POST['setting_site'])){
file_put_contents('../robots.txt', $_POST['robots']);
file_put_contents('../editor.css', $_POST['editor']);
}
$this->registry['template']->set('robots', nl2br(file_get_contents('../robots.txt')));
$this->registry['template']->set('editor', file_get_contents('../editor.css'));
$this->registry['template']->show('setting_site');
}
а так?
Спустя 2 минуты, 21 секунда (24.09.2012 - 14:25) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 11:23) |
а так? |
результат один и тот же(т.е. в файле так 111\r\n222\r\n333), ошибку исправил здесь
file_put_contents('../editor.css', nl2br($_POST['editor']), false);
Спустя 2 минуты, 5 секунд (24.09.2012 - 14:27) dron4ik написал(а):
Цитата (dvs @ 24.09.2012 - 11:25) | ||
результат один и тот же, ошибку исправил здесь file_put_contents('../editor.css', nl2br($_POST['editor']), false); |
Да, затупил... в ЦСС не нужно тег <br> совать)
а третий параметр зачем? он вроде по умолчанию false и так...
Спустя 3 минуты, 52 секунды (24.09.2012 - 14:31) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 11:27) |
в ЦСС не нужно тег <br> совать) |
не один и тот, разницу не разглядел сначала, такой вот
111<br />
222<br />
333
Да третий не нужен вроде
Спустя 3 часа, 46 минут, 11 секунд (24.09.2012 - 18:17) dron4ik написал(а):
dvs
Дай толково понятие что ты хочешь получить в итоге? Может мы советуем вообще другие вещи...
Дай толково понятие что ты хочешь получить в итоге? Может мы советуем вообще другие вещи...
Спустя 16 часов, 37 минут, 43 секунды (25.09.2012 - 10:55) dvs написал(а):
Цитата (dron4ik @ 24.09.2012 - 15:17) |
Дай толково понятие что ты хочешь получить в итоге? Может мы советуем вообще другие вещи... |
мне нужно в файл записать данные(данные приходят из формы так - $_POST['robots'] = '111\r\n222\r\n333';)не в одну строку, а в несколько.
мне нужно заменить '\r\n' на что такое, что будет писать в файл с новой строки
Т.Е.
В файле сейчас так сохраняется:
111\r\n222\r\n333
А должно сохраняться так:
111
222
333
Спустя 1 час, 4 минуты, 2 секунды (25.09.2012 - 11:59) dron4ik написал(а):
Что ты будешь дальше с файлом делать? это важно знать!!!
Спустя 17 минут, 8 секунд (25.09.2012 - 12:16) dvs написал(а):
Цитата (dron4ik @ 25.09.2012 - 08:59) |
Что ты будешь дальше с файлом делать? это важно знать!!! |
дальше я буду брать из него данные и выводить в <textarea>$data</textarea> для редактирования
Спустя 10 минут, 13 секунд (25.09.2012 - 12:26) dron4ik написал(а):
А ныне в textarea выводит с \r\n? не в файле, а в браузере...
Спустя 6 минут, 6 секунд (25.09.2012 - 12:33) dvs написал(а):
Цитата (dron4ik @ 25.09.2012 - 09:26) |
А ныне в textarea выводит с \r\n? не в файле, а в браузере... |
да, но если вручную в файле написать текст построчно, то и выводит построчно(как будто там есть <br>)Так что если решится вопрос правильной записи в файл, то и выводить в браузере в текстареа будет как надо(построчно)
Спустя 9 минут, 35 секунд (25.09.2012 - 12:42) dron4ik написал(а):
file_put_contents('../robots.txt', str_replace("\r\n","\r\n",$_POST['robots']));
Может так попробуй... а то я уже и не знаю что придумать)))
Может так попробуй... а то я уже и не знаю что придумать)))
Спустя 18 минут, 1 секунда (25.09.2012 - 13:00) dvs написал(а):
Цитата (dron4ik @ 25.09.2012 - 09:42) |
file_put_contents('../robots.txt', str_replace("\r\n","\r\n",$_POST['robots'])); Может так попробуй... а то я уже и не знаю что придумать))) |
попробовал, ничего не изменилось, а смысл заменять на такое же? я уже думал про кодировку все файлы(в который записывается, php-файл, файл формы) все в кодировке utf-8 without BOM
Спустя 5 минут, 16 секунд (25.09.2012 - 13:05) dron4ik написал(а):
суть в том что строка должна быть в двойных кавычках(по умолчанию оно так и есть), а у тебя в одинарные сует))) Ну или мы что то пропустили)
Спустя 14 минут, 29 секунд (25.09.2012 - 13:20) killer8080 написал(а):
dvs
ищи где у тебя в коде происходит глобальна обработка $_POST, где то происходит подмена.
ищи где у тебя в коде происходит глобальна обработка $_POST, где то происходит подмена.
Спустя 34 минуты, 20 секунд (25.09.2012 - 13:54) dvs написал(а):
Цитата (killer8080 @ 25.09.2012 - 10:20) |
dvs ищи где у тебя в коде происходит глобальна обработка $_POST, где то происходит подмена. |
точно, а я и забыл про нее))) сейчас попробую
Спустя 1 час, 23 минуты, 57 секунд (25.09.2012 - 15:18) dvs написал(а):
Цитата (killer8080 @ 25.09.2012 - 10:20) |
ищи где у тебя в коде происходит глобальна обработка $_POST, где то происходит подмена. |
Так и есть)))
function safe_mysql(&$value){
$value = mysql_real_escape_string($value);
}
array_walk_recursive($_GET, 'safe_mysql');
array_walk_recursive($_POST, 'safe_mysql');
array_walk_recursive($_COOKIE, 'safe_mysql');
array_walk_recursive($_REQUEST, 'safe_mysql');
думаю теперь что может сделать обратное mysql_real_escape_string, как то не красиво делать
if(!$_POST['robots']){$value = mysql_real_escape_string($value);}
Спустя 2 минуты, 48 секунд (25.09.2012 - 15:21) dron4ik написал(а):
нужно не перезаписывать $_POST а создавать подобный массив к примеру $POST... И все будет как по маслу!
Спустя 52 минуты, 6 секунд (25.09.2012 - 16:13) killer8080 написал(а):
Цитата (dvs @ 25.09.2012 - 15:18) |
Так и есть))) function safe_mysql(&$value){ $value = mysql_real_escape_string($value); } array_walk_recursive($_GET, 'safe_mysql'); array_walk_recursive($_POST, 'safe_mysql'); array_walk_recursive($_COOKIE, 'safe_mysql'); array_walk_recursive($_REQUEST, 'safe_mysql'); |
Это что, самопальный magic quotes ? Как думаешь, почему его выкинули из php?
Не нужно искажать входные данные, экранировать нужно в процессе использования.