В чем моя ошибка?
Вывожу данные из базы:
$result = mysql_query ("SELECT * FROM content WHERE id=$id", $db);
Данные представляют собой код (форма и div-блоки), занесенный вручную непосредственно в таблицу базы данных. Эти данные на странице вставляются в текстовую область.
Проблема: выводимый код смешивается с уже существующим и вся разметка "плывет".
Как исправить?
Спустя 13 минут, 38 секунд (2.07.2010 - 12:12) sergeiss написал(а):
Исправить просто 
Возьми полученный код (который "поплыл"), найди, что же там приводит к искажениям, после чего подумай, как от этого избавиться.
Ну, и уже покажи тут свой "секретный код", который в искаженном виде. Подумаем вместе, что можно сделать.

Возьми полученный код (который "поплыл"), найди, что же там приводит к искажениям, после чего подумай, как от этого избавиться.
Ну, и уже покажи тут свой "секретный код", который в искаженном виде. Подумаем вместе, что можно сделать.
Спустя 16 минут, 2 секунды (2.07.2010 - 12:28) userguest написал(а):
Вот секрет:
код который выводит данные из таблицы базы данных:
А это данные из таблицы (тип поля данных - TEXT), которые выводятся некорректно приведенным выше кодом:
код который выводит данные из таблицы базы данных:
$id = trim(htmlspecialchars(stripslashes($_GET["id"])));
$result = mysql_query ("SELECT * FROM `content` WHERE `id`='$id'", $db);
$myrow = mysql_fetch_array ($result);
print <<<HERE
<div class="form_on_page_add_news">
<div><form name="form_edit_page" method="POST" action="update_page.php"></div>
<div class="label_form"><label for="title">Заголовок:</label></div>
<div class="align_center"><input value="$myrow[title]" name="title" type="text" id="title" onfocus="this.className='activeField'" onBlur="this.className='normal_form'"></div>
<div class="label_form"><label for="meta_description">Описание для поисковых систем:</label></div>
<div class="align_center"><input value="$myrow[meta_description]" name="meta_description" type="text" id="meta_description" onfocus="this.className='activeField'" onBlur="this.className='normal_form'" value="-"></div>
<div class="label_form"><label for="meta_keywords">Ключевые слова для поисковых систем:</label></div>
<div class="align_center"><input value="$myrow[meta_keywords]" name="meta_keywords" type="text" id="meta_keywords" onfocus="this.className='activeField'" onBlur="this.className='normal_form'" value="-"></div>
<div class="label_form"><label for="text">Текст страницы</label></div>
<div class="align_center"><textarea name="text" id="text" class="add_news_textarea">$myrow[text]</textarea></div>
<div class="align_center"><a href="visual_editor.php?p_id=$id">Визуальный редактор</a></div><br>
<div><input name="id" type="hidden" value="$myrow[id]"></div>
<div class="align_center"><input name="formbutton_edit_page" type="submit" value="Перезаписать страницу" class="tt" id="submit"></div><br>
</form>
</div>
HERE;
}
А это данные из таблицы (тип поля данных - TEXT), которые выводятся некорректно приведенным выше кодом:
<form name="form_connect" method="POST" action="obr.php" onSubmit="return checkForm(this)">
<div class="label_form"><label for="a">Данные1:*</label></div>
<div class="align_center"><input name="a" type="text" id="a"></div>
<div class="label_form"><label for="b">Данные2:*</label></div>
<div class="align_center"><input name="b" type="text" id="b"></div>
<div class="label_form"><label for="c">Данные3:*</label></div>
<div class="align_center"><input name="c" type="text" id="c"></div>
<div class="label_form"><label for="d">Данные4:</label></div>
<div class="align_center"><input name="d" type="text" id="d"></div>
<div class="label_form"><label for="e">Данные5:</label></div>
<div class="align_center"><textarea name="e" id="e" class="textarea1"></textarea></div><br>
<div class="align_center"><input name="formbutton1" type="submit" value="Отправить" class="ar" id="send"></div>
</form>
<br><br>* - поля, помеченные звездочкой обязательны к заполнению<br><br>
Спустя 7 минут, 54 секунды (2.07.2010 - 12:36) Slays написал(а):
как он должен не спутаться, когда при выводе на страницу он интерпретируется как html-код, ведь php выполняется на сервере и html видит уже результат.
при добавлениии в базу или при выводе из нее заменяй спец-символы "<>, а также кавычки" на их html-эквиваленты, и будет тебе счастье.
при добавлениии в базу или при выводе из нее заменяй спец-символы "<>, а также кавычки" на их html-эквиваленты, и будет тебе счастье.
Спустя 5 минут, 52 секунды (2.07.2010 - 12:42) sergeiss написал(а):
Вместо простого вывода $myrow[text] надо сделать вывод через функцию
Это как раз и приведет к замене нужных символов на их представления.
htmlspecialchars( $myrow[text] );
Это как раз и приведет к замене нужных символов на их представления.
Спустя 46 минут, 58 секунд (2.07.2010 - 13:28) userguest написал(а):
Sergeiss, спасибо.
Все работает без ошибок.
Все работает без ошибок.