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

  • Автор темы Автор темы DenUs
  • Дата начала Дата начала

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);
?>
 
$text = nl2br($text);
сами, говоришь, добавляются?
из ниоткуда берутся?
 
Угу, но если я уберу эту строчку, то мне придётся при добавлении прописывать все бр...
Компромисс возможен?
 
Вот именно поэтому, чтобы ничего лишнего при редактирвоании не добавлялось, УМНЫЕ люди делают nl2br только тогда, когда надо.
А именно - при выводе в браузер.
 
Вообще, с текстом в разных случаях надо делать множество разных преобразований.
Подсвечивать ссылки, оформлять, для редактирования делать htmlspecialchars.
Выводить в виде текста или хтмл.
Все - в разных случаях.
И чтобы не заниматься различнвми раскодированиями в разных комбинациях, текст надо сохранять, КАК ЕСТЬ
и потом, по нужде, преобразовывать к нужному формату.
 
Автор оригинала: Фанат
Вот именно поэтому, чтобы ничего лишнего при редактирвоании не добавлялось, УМНЫЕ люди делают nl2br только тогда, когда надо.
А именно - при выводе в браузер.
Сенькс, попытаюсь стать умным
 
2 DenUs

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

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

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

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