Вход

Просмотр полной версии : переход на новую стоку в гостевой


pupo4kin
22.10.2007, 15:05
Сделал самую простую гостевую с применением php и mySQL. Есть одна проблема. Если я в поле ввода ввожу, например:

Один
Два

в итоге это отображается, как:

ОдинДва

Как решить эту проблему? Замена "\n" на "<br/>" в скрипте не помогает.

Код php-скрипта:
//Запись в базу данных
if ($name!="" && $message!=""){
$message=eregi_replace("\n", "<br/>", $message);
$date = date('d.m.Y');
$sql="INSERT INTO gb values('', '$date', '$name', '$mail', '$message')";
mysql_query($sql);
}
.
.
.
//Запись данных в переменную, передаваемую во флэш:
$mes=$mes."<u><a href='mailto:$mail'><font color='#666666' size='18'>".$name."</font></a></u> <font color='#666666'>(".$date.")</font><br>".$message."<br><br>";

wvxvw
22.10.2007, 15:08
По умолчанию флеш записывает обрыв строки как "\r"

pupo4kin
22.10.2007, 15:30
Спасибо, но не помогло.

alexcon314
22.10.2007, 15:57
>>Замена "\n" на "<br/>" в скрипте не помогает.
т.е. замена все-таки происходит? и в ответе от скрипта приходит строка с этими самыми <br/>? или что?

pupo4kin
22.10.2007, 16:09
Не, замена как раз не происходит. В базу данных записывается строка без "<br/>" и без "\n". Просто сплошная строка без обрыва.

wvxvw
22.10.2007, 16:11
Есть еще вариант, вы получаете эскейп последовательность заменяющую обрыв строки. В таком случае нужно искать не "\r" а "%0D"

В любом случае, легче посмотреть, что вы получаете в месте, где ожидаете обрыв строки, и его и меняйте - все проще, чем гадать на кофейной гуще...

Kikasso
22.10.2007, 16:37
Прочтите пост #2. Флеш посылает из текстовых полей '\r' , даже если засадить туда '\n'. Фиг знает почему, но вот так.
'\n' приходит только если отправлять переменную.

alexcon314
22.10.2007, 16:49
вариант
перед отправкой строки ВО ФЛЭШЕ заменить "\r" или "\n" (что там у вас)
на обычный символ (последовательность символов) типа "newline", но так чтоб она не пересекалась с содержимым основного текста, тут конечно могут быть косяки.
а при получении в полученной строке опять же во флэше перед отображениием произвести обратную замену.

pupo4kin
23.10.2007, 23:42
сделал проще: просто во флэше поменял "\r" сразу на "<br/>". Все работает=)) Всем спасибо. Интересно, почему php не хочет менять.

wvxvw
24.10.2007, 03:01
кста, биар не нужно закрывать =)