Еще раз те же грабли (символы перевода строки и т.п.)

igortik

Новичок
Еще раз те же грабли (символы перевода строки и т.п.)

Это ужас, я согласен.
Так хорошо мозги проветрил на выходных что ничего не могу вспомнить...
Выручайте!

Хочу решить раз и навсегда, определив, какой параметр в настройках php (могу ошибаться) отвечает за отображение спецсимволов.

В общем.

1. FCKeditor
2. Сабмит
3. $html = mysql_real_escape_string($_POST['html']);
4. По мере сабмита страница перегружается и возвращает из базы то, что только что вписали в $html
4.1. но вайсивиг возвращает уже с спецсимволами типа r\n\ и другим мусором.

5. Если по-человечески спросить скрипт (без сабмита) получить html из базы, то вайсивиг покажет содержимое без спецс.
6. Собственно, они(символы) появляются сразу, как я делаю сабмит формы (учитывая, что скрипт обрабатывается по-новой и возвращает в вайсивиг то, что лежит в данный момент в базе)

p.s. надо убить себя об стену за такое...

Решение-то я нашел, просто посылаю хеадер для повторной перезагрузки страницы с экспортом 'html' в редактор и все ок (никаких спецсимволов), вот только почему они появляются при сабмите... по сути, скрипт обрабатывается таким же образом и экспортит тот же 'html' из базы.

p.s. приготовьте стену попрочнее :)
а я пока шпаргалку свою приготовлю для записи комментариев
 

igortik

Новичок
ты прав, я сам ничего не понял ))

в общем,

1) заношу в базу $html = mysql_real_escape_string($_POST['html']);
2) По мере сабмита формы страница перегружается и должна вновь вернуть содержимое в FCKeditor из базы того, что лежит здесь: $html = mysql_result($result,0,'html');
2.1. Как только редактор вывел содержимое $html в область редактирования, то я вижу помимо своего текста еще такие символы, как r\n\
 

pilot911

Новичок
те данные, которые берешь из базы и выводишь в редактор, необходимо обработать stripslashes() перед выводом
 

Bitterman

Новичок
Если данные правильно положены в БД, то никакого stripslashes не нужно.
igortik
Если появляются лишние слеши, то скорее всего у тебя включена опция magic quotes, которая слеширует пользовательские данные (POSt, GET). Ее лучше отключить. Хотя я не припомню, чтобы у меня из-за этого выводились символы переноса строки.
 

igortik

Новичок
Bitterman
Да, я тоже грешу на настройки пхп, т.к. на других серверах все хорошо и к этой проблеме я возвращаюсь по мере написания чего-то на "неродных" настройках, к которым привык.

еще до написания темы отправил запрос на:
php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0

ознакомившись с факом в 5 раз ))

pilot911
Да, данные правильно кладу в базу. Все экранируется, до перехода на другой сервер проблем не возникало.

Bitterman

Я попробовал вручную
set_magic_quotes_runtime(0);

но после сабмита область fck редактора снова заполнилась ненужными символами.

<<-------
 

Bitterman

Новичок
igortik
Для начала проверь, что у тебя лежит в БД. Если там прослешированные данные - разбирайся с записью данных в БД, если же они в нормальном виде - разбирайся с передачей данных в FCKEditor.
Кстати, если я ничего не путаю в визивиг-редакторе вообще не должно быть подобных символов, они все заменяются тегами. Так что, возможно, что-то не так с настройками самого редактора.
 

igortik

Новичок
Bitterman
В базе я вижу:

<p>Привет</p>
<p>----</p>
<p>----</p>

-~{}~ 10.11.08 03:17:


явно проблема не в базе, т.к. это происходит исключительно после сабмита.

Если я запрашиваю выборку, просто нажав на ссылку 'ГЛАВНАЯ', то символов нет
 

igortik

Новичок
Bitterman
Честно сказать, даже не знаю что ответить, т.к. на редактор никогда никто не жаловался и подобного не видел.

ранее такая проблема была на одном из сайтов, но я мало того забыл как ее решал, так еще и на каком забыл..
вот и сижу скрипты перерываю....

-~{}~ 10.11.08 03:21:

но точно не в редакторе ковырялся, это точно помню

-~{}~ 10.11.08 03:29:

Bitterman
А вся беда знаешь в чем???

Я еще не попытался поправить, но уже понял в чем проблема, я ведь передаю через ГЕТ логику работы скрипта, и вот как раз эта логика задает значение переменной $html и вносит это значение в базу в САМУЮ ПОСЛЕДНЮЮ ОЧЕРЕДЬ !

Т.е. на выходе я имею именно то, что записывается в: $html = mysql_real_escape_string($_POST['html']).. потому редактор, не распознав спецсимволы из-за лишних слешей выводит их на экран.

-~{}~ 10.11.08 03:32:

да, именно так, я не ошибся!

Еще раз говорит о том, что нужно либо ансет делать всех переменных, что повторяются, либо следить за логикой работы скрипта, чтобы не возникало такой херни
 

Фанат

oncle terrible
Команда форума
Этот топик надо в музей положить. Как пример редкостного идиотизма.
 

igortik

Новичок
Скорее невнимательности и пост субботнего синдрома, не все субботы за компьютером проводят, иногда чересчур )))
 

Фанат

oncle terrible
Команда форума
У некоторых тут постоянно постсубботний синдром.
 

igortik

Новичок
- Молодой человек, как вы расслабляетесь?
- А я и не напрягаюсь.
 
Сверху