Добавляются <br> при апдейте таблицы

DenUs

Новичок
Добавляются <br> при апдейте таблицы

Сделал форму для добавления с возможностью редактирования записей в БД, всё работает, но есть одно но...
При редактировании в тексте появляются лишние <br> и мне приходится помимо редактирования текста удалять всё лишнее. Подскажите как с этим бороться?
Вот код

PHP:
<?
if ($save) {
$text = nl2br($text);
if (!$id) {
mysql_query("INSERT INTO table (text) VALUES ('$text')");
} else {
mysql_query("UPDATE table SET text='$text' WHERE id=$id");
header("Location: $PHP_SELF");
exit; }
}

if ($id) {
$result = mysql_query("SELECT text FROM table WHERE id=$id");
list ($cur_text) = mysql_fetch_row($result);
mysql_free_result($result);
}
?>

<form action=<? echo $PHP_SELF; ?> method=post>
<input type=hidden name=id value="<? echo $id; ?>">
<p>Текст:<br><textarea name=text cols=60 rows=5 wrap=phisical><? echo $cur_text; ?></textarea></p>
<p><input type=submit name=save value="<? echo $id ? "Сохранить изменения" : "Добавить"; ?>"></p>
</form>

<?
$result = mysql_query("SELECT text FROM table");
while ($res = mysql_fetch_array($result))
{
printf("%s<a href=\"$PHP_SELF?id=%s\">редактировать</a>", $res['text'], $res['id']);
}
mysql_free_result($result);
?>
 

Фанат

oncle terrible
Команда форума
$text = nl2br($text);
сами, говоришь, добавляются?
из ниоткуда берутся?
 

DenUs

Новичок
Угу, но если я уберу эту строчку, то мне придётся при добавлении прописывать все бр...
Компромисс возможен?
 

Фанат

oncle terrible
Команда форума
Вот именно поэтому, чтобы ничего лишнего при редактирвоании не добавлялось, УМНЫЕ люди делают nl2br только тогда, когда надо.
А именно - при выводе в браузер.
 

Фанат

oncle terrible
Команда форума
Вообще, с текстом в разных случаях надо делать множество разных преобразований.
Подсвечивать ссылки, оформлять, для редактирования делать htmlspecialchars.
Выводить в виде текста или хтмл.
Все - в разных случаях.
И чтобы не заниматься различнвми раскодированиями в разных комбинациях, текст надо сохранять, КАК ЕСТЬ
и потом, по нужде, преобразовывать к нужному формату.
 

DenUs

Новичок
Автор оригинала: Фанат
Вот именно поэтому, чтобы ничего лишнего при редактирвоании не добавлялось, УМНЫЕ люди делают nl2br только тогда, когда надо.
А именно - при выводе в браузер.
Сенькс, попытаюсь стать умным
 

pupkin

Guest
2 DenUs

Извини, но код у тебя плохой

Вот проанализируй:
http://phpclub.net/talk/showthread.php?s=&threadid=30705&highlight=%EE%E1%F0%E0%E1%EE%F2%EA%E0+%F4%EE%F0%EC%FB

Со временем добавишь туда свои новые фичи..

И чтобы не заниматься различнвми раскодированиями в разных комбинациях, текст надо сохранять, КАК ЕСТЬ
и потом, по нужде, преобразовывать к нужному формату.
DenUs, а вот эту фразу времмено скопируй себе на рабочий стол :)
 
Сверху