<?php echo "<p class='comment'>Добавить:</p>";?>Спасибо.
<form method="post" action="comment_send.php" class="comment-form">
Имя:<br />
<input type="text" name="name">
<br />
<br />
Тескт:<br />
<textarea name="text" rows="5" cols="50"></textarea>
<input type="hidden" name="id_mail" value="<?php echo $view?>">
<input type="hidden" name="datetime" value="<?php $datetime = date("Y.m.d : H:i:s",time()); echo $datetime?>">
<input type="hidden" name="date" value="<?php $date = date("Y.m.d"); echo $date?>">
<input type="hidden" name="time" value="<?php $time = date ("H:i:s"); echo $time?>">
<br />
Я не робот:<input name="ok" type="checkbox" value="1" />
<br />
<br />
<input type="submit" name="submit" id="submit" value="Добавить">
</form>
Спустя 2 минуты, 1 секунда (27.12.2010 - 11:23) ZSH написал(а):
функция nl2br
Спустя 5 минут, 17 секунд (27.12.2010 - 11:28) m4a1fox написал(а):
ZSH
Про это я читаю сейчас. Если вы использовали, то может подскажите с чего начать?
Про это я читаю сейчас. Если вы использовали, то может подскажите с чего начать?
Спустя 7 минут, 27 секунд (27.12.2010 - 11:36) m4a1fox написал(а):
И насколько понимаю, это надо писать в обработчике?! Так же!?
Спустя 4 минуты, 30 секунд (27.12.2010 - 11:40) totje написал(а):
сам задавался этим вопросом, кстати и случайно так нашел решение)
сейчас взял и прикрутил ее за пару сек на вывод из бд и все нормально работает
сейчас взял и прикрутил ее за пару сек на вывод из бд и все нормально работает
Спустя 2 минуты, 19 секунд (27.12.2010 - 11:43) m4a1fox написал(а):
totje
Ну так, мож это...... поделишься?
Ну так, мож это...... поделишься?
Спустя 2 минуты, 9 секунд (27.12.2010 - 11:45) ZSH написал(а):
а чем делится?
$text = nl2br($text);
echo $text;
Спустя 1 минута, 46 секунд (27.12.2010 - 11:46) sharki написал(а):
m4a1fox
Его используют при выводе данных например у тебя есть вывод комментариев
и сам коммент находится в пеерменной $comm, при выводе делай так
Его используют при выводе данных например у тебя есть вывод комментариев
и сам коммент находится в пеерменной $comm, при выводе делай так
echo nl2br($comm);
Спустя 1 минута, 10 секунд (27.12.2010 - 11:48) totje написал(а):
m4a1fox
так я ведь сказал же, что на вывод ее тупо воткнул и все..
ну вот кусок кода:
так я ведь сказал же, что на вывод ее тупо воткнул и все..
ну вот кусок кода:
$kaments = mysql_query("SELECT kament FROM kaments ");
while ($kamentrow = mysql_fetch_array($kaments)) {
$kament = nl2br( $kamentrow['kament']); // вставил ф-цию сюда и все
echo $kament ;
Спустя 2 минуты, 8 секунд (27.12.2010 - 11:50) m4a1fox написал(а):
ZSH
Не.... так просто она не работает..... Тут надо что то хитрее(
Не.... так просто она не работает..... Тут надо что то хитрее(
Спустя 2 минуты, 41 секунда (27.12.2010 - 11:52) m4a1fox написал(а):
Вот мой вывод
<!--Вывод списка коментариев-->- что по вашему - тут не так?
<?
$query = ("SELECT `name`, `date_now`, `time`, `text`
FROM `comment` WHERE `id_mail`=".(int)$view."
ORDER BY datetime DESC LIMIT 10");
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
$text = nl2br($ind['text']);
echo '<div class="comment_div">
<div class="comment_add">
<img src="img/comment.png"> <u><b>'.$ind['name'].'</b></u>
| Дата: <b>'.$ind['date_now'].'</b>
| Время: <b>'.$ind['time'].'</b></div>
<div class="comment_text"><i>'.$text.'</i></div></div>';
}
?>
Спустя 4 минуты, 38 секунд (27.12.2010 - 11:57) m4a1fox написал(а):
Возвращает строку string, в которой перед каждым переводом строки вставлен '<br />' - то есть если при ввидении комментария, польхователь нажал ENTER то строка это воспринимает как <br /> а не как /n. Так что ли?
Спустя 15 секунд (27.12.2010 - 11:57) ZSH написал(а):
<div class="comment_text"><i>' . nl2br($text) . '</i></div>
Спустя 56 секунд (27.12.2010 - 11:58) sharki написал(а):
А что не так он тебе выводит? сам коммент при добавлении имел переносы строк?
Спустя 1 минута, 56 секунд (27.12.2010 - 12:00) m4a1fox написал(а):
Я скорее не так выразился.... Если допустим. какой то умелец хочет ввести оооооочень длинное слово, и только в строчку(ну прикиним что такие "Умельцы" существуют) - то скрипт каким-то образов должен переносить строку не портя при этом дизайна. Вот как-то так. Прошу в этом помощи. Спасибо...
Спустя 4 минуты, 52 секунды (27.12.2010 - 12:05) ZSH написал(а):
Спустя 6 минут, 9 секунд (27.12.2010 - 12:11) m4a1fox написал(а):
ZSH
Да...... я это и имел ввиду в первом посте. Но что-то у меня не хочет работать. Сейчас еще раз попробую, если что отпишусь. Но вчера не получилось. И еще. Я думал что function - это ооп. но видимо ошибался. Спасибо что разъяснили.
Да...... я это и имел ввиду в первом посте. Но что-то у меня не хочет работать. Сейчас еще раз попробую, если что отпишусь. Но вчера не получилось. И еще. Я думал что function - это ооп. но видимо ошибался. Спасибо что разъяснили.
Спустя 1 минута, 6 секунд (27.12.2010 - 12:12) m4a1fox написал(а):
Теперь осталось разобраться, куда это впихнуть в моем коде.
Спустя 4 минуты, 58 секунд (27.12.2010 - 12:17) ZSH написал(а):
<!--Вывод списка коментариев-->
<?
/**
* Функция - аналог wordwrap() для кодировки UTF-8
* @param string $str //обрабатываеемая строка
* @param int $width //максимальная длина слова
* @param string $break //разделитель
* @return string
*/
function mBwordwrap($text, $width = 90, $break = "\n")
{
return preg_replace('#([^\s]{'. $width .'})#u', '$1'. $break , $text);
}
$query = ("SELECT `name`, `date_now`, `time`, `text`
FROM `comment` WHERE `id_mail`=".(int)$view."
ORDER BY datetime DESC LIMIT 10");
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
echo '<div class="comment_div">
<div class="comment_add">
<img src="img/comment.png"> <u><b>'.$ind['name'].'</b></u>
| Дата: <b>'.$ind['date_now'].'</b>
| Время: <b>'.$ind['time'].'</b></div>
<div class="comment_text"><i>' . nl2br(mBwordwrap($ind['text'])) . '</i></div></div>';
}
?>
поправил
Спустя 29 минут, 40 секунд (27.12.2010 - 12:47) m4a1fox написал(а):
ZSH
Сделал как вы. Ну то есть скопипастил, а ему все равно. Одна огромная строка получается.
Сделал как вы. Ну то есть скопипастил, а ему все равно. Одна огромная строка получается.
Спустя 1 минута, 43 секунды (27.12.2010 - 12:49) m4a1fox написал(а):
И параллельно вопрос чем этот код
$result = mysql_query("INSERT INTO `comment` SETхуже вот этого
`name` = '".mysql_real_escape_string($name)."',
`id_mail` = '".(int)$id_mail."',
`datetime` = '".mysql_real_escape_string($datetime)."',
`date` = '".mysql_real_escape_string($date)."',
`time` = '".mysql_real_escape_string($time)."',
`text` = '".mysql_real_escape_string($text)."'
");
$result = mysql_query("INSERT INTO `comment` (name, id_mail, datetime, date_now, time, text)- просто первый - не работает(((
VALUES ('$name', '$id_mail', '$datetime', '$date',
'$time', '$text')
Спустя 3 минуты, 28 секунд (27.12.2010 - 12:52) totje написал(а):
в первом запросе, наверное, правильным было бы использовать UPDATE, а не INSERT INTO.
Спустя 58 секунд (27.12.2010 - 12:53) sharki написал(а):
m4a1fox
Первый код обеззараживает данные перед заносом в БД, а второй просто заносит их.
А не работает т.к не правильные поля ты выделил а именно:
date_now- во втором а в первом у тебя уже другое `date`
Плюс тебе сказал totje что не правильные запросы
Первый код обеззараживает данные перед заносом в БД, а второй просто заносит их.
А не работает т.к не правильные поля ты выделил а именно:
date_now- во втором а в первом у тебя уже другое `date`
Плюс тебе сказал totje что не правильные запросы
Спустя 6 минут, 52 секунды (27.12.2010 - 13:00) m4a1fox написал(а):
sharki
Да.... спасибо что поправили..... уже исправил. Так, остался первый вопрос - перенос. Этот, (цензура) перенос - не хочет работать как написал ZSH. Какие будут предложения.?
Да.... спасибо что поправили..... уже исправил. Так, остался первый вопрос - перенос. Этот, (цензура) перенос - не хочет работать как написал ZSH. Какие будут предложения.?
Спустя 6 минут, 51 секунда (27.12.2010 - 13:07) ZSH написал(а):
я там поправил, сравни
Спустя 2 минуты, 57 секунд (27.12.2010 - 13:10) m4a1fox написал(а):
ZSH
Фигня какая-то.... не работает. Может у меня с INSERT'ом в БД, что то не так....
Фигня какая-то.... не работает. Может у меня с INSERT'ом в БД, что то не так....
Спустя 1 минута, 26 секунд (27.12.2010 - 13:11) ZSH написал(а):
еще раз поправил.
Спустя 6 минут, 28 секунд (27.12.2010 - 13:18) m4a1fox написал(а):
ZSH
Теперь текст не выводится...
Теперь текст не выводится...
Спустя 2 минуты, 56 секунд (27.12.2010 - 13:21) m4a1fox написал(а):
Причем в базе он есть, он просто не выводится)
Спустя 3 минуты, 43 секунды (27.12.2010 - 13:24) m4a1fox написал(а):
И что интересно, другие выводятся, может точно при INSERT'е что то не так? Что то мне кажется, там ошибка.
Спустя 1 минута, 52 секунды (27.12.2010 - 13:26) ZSH написал(а):
я только что проверил, у меня работает.
попробуй перед echo поставить $ind['text'] = 'оооооооооооооооооченьдлинноеслово';
если работает тогда проблема в другом
попробуй перед echo поставить $ind['text'] = 'оооооооооооооооооченьдлинноеслово';
если работает тогда проблема в другом
Спустя 2 минуты, 29 секунд (27.12.2010 - 13:29) m4a1fox написал(а):
ZSH
Ничего не выводит(
Ничего не выводит(
Спустя 1 минута, 18 секунд (27.12.2010 - 13:30) m4a1fox написал(а):
А если вот так
<?
/**
* Функция - аналог wordwrap() для кодировки UTF-8
* @param string $str //обрабатываеемая строка
* @param int $width //максимальная длина слова
* @param string $break //разделитель
* @return string
*/
function mBwordwrap($text, $width = 10, $break = "\n")
{
return preg_replace('#([^\s]{'. $width .'})#u', '$1'. $break , $text);
}
$query = ("SELECT `name`, `date`, `time`, `text`
FROM `comment` WHERE `id_mail`=".(int)$view."
ORDER BY datetime DESC LIMIT 10");
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
$ind['text'] = 'оооооооооооjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj jjjооооооченьдлинноеслово';
echo '<div class="comment_div"><div class="comment_add"><img src="img/comment.png"> <u><b>'.$ind['name'].'</b></u> | Дата: <b>'.$ind['date'].'</b> | Время: <b>'.$ind['time'].'</b></div>
<div class="comment_text"><i>' . mBwordwrap($ind['text']) . '</i></div></div>';
Спустя 2 минуты, 56 секунд (27.12.2010 - 13:33) m4a1fox написал(а):
function mBwordwrap($text, $width = 10, $break = "\n")я так понял вот это вообще не работает?!
{
return preg_replace('#([^\s]{'. $width .'})#u', '$1'. $break , $text);
}
Спустя 1 минута, 46 секунд (27.12.2010 - 13:35) hellmin написал(а):
Интересно. Я думаю что это не в php дело, там грамотно разбить строку в автоматическом режиме будет сложно. Скорее всего тут лучше задать стиль для контейнера комментария типа такого...
<div class='comment' style='width: 300px; overflow: hidden;'>Атутпустьбудетоооооооченьдлинноеслововоднустроку</div>
Спустя 9 секунд (27.12.2010 - 13:35) ZSH написал(а):
работает
<div class="comment_text"><i>' . mBwordwrap($ind['text']) . '</i></div></div>';
<div class="comment_text"><i>' . nl2br(mBwordwrap($ind['text'])) . '</i></div></div>';
Спустя 1 минута, 16 секунд (27.12.2010 - 13:36) m4a1fox написал(а):
hellmin
Интересно предложение. Сейчас попробую.
Интересно предложение. Сейчас попробую.
Спустя 1 минута, 15 секунд (27.12.2010 - 13:37) m4a1fox написал(а):
Так что самое смешное, в БД строки есть. А на выводе - НЕТ!

Спустя 4 минуты, 15 секунд (27.12.2010 - 13:42) m4a1fox написал(а):
hellmin
Спасибо, но нет. Дело и не в этом. Может это поможет - обработчик
Спасибо, но нет. Дело и не в этом. Может это поможет - обработчик
if (isset($_POST['text'])) {
$text = $_POST ['text']; {$text = trim($text);} if ($text == '');} if (empty($text))
{
echo '
<table width="400" height="300" align="center">
<tr>
<td class="warning_table" width="220" align="center" valign="middle">
<img align="center" src="img/error.png">
<div align="center" class="warning_font_big?>ОШИБКА!!!</div>
<div align="center" class="warning_font" align="left">Ваше письмо не доставлено. Так как вы не заполнили поле <font color=red> ваш текст</font>!</div>
<p align="center"><a href="javascript:history.go(-1)"><font color=red>Вернуться назад</font></a></div></p>
</td>
</tr>
</table>';
exit;
}
{
$result = mysql_query("INSERT INTO `comment` SET
`name` = '".mysql_real_escape_string($name)."',
`id_mail` = '".(int)$id_mail."',
`datetime` = '".mysql_real_escape_string($datetime)."',
`date` = '".mysql_real_escape_string($date)."',
`time` = '".mysql_real_escape_string($time)."',
`text` = '".mysql_real_escape_string($text)."'
");
Спустя 9 минут, 48 секунд (27.12.2010 - 13:51) m4a1fox написал(а):
Ребят, а я нашел ошибку....))))))))) Блин, я ликую
Спустя 56 секунд (27.12.2010 - 13:52) m4a1fox написал(а):
Я же говорил в этой функции проблема - так и оказалось!)
Спустя 3 минуты, 20 секунд (27.12.2010 - 13:56) m4a1fox написал(а):
function mBwordwrap($text, $width = 10, $break = "\n")
{
return preg_replace('#([^\s]{'. $width .'})#u', '$1'. $break , $text);
} - для чего необходима буква U - если ее убрать - вуаля - все работает!
{
return preg_replace('#([^\s]{'. $width .'})#u', '$1'. $break , $text);
} - для чего необходима буква U - если ее убрать - вуаля - все работает!
Спустя 35 секунд (27.12.2010 - 13:56) ZSH написал(а):
поставь в начале скрипта
и посмотри что выдаст
error_reporting(E_ALL);
и посмотри что выдаст
Спустя 2 минуты, 50 секунд (27.12.2010 - 13:59) m4a1fox написал(а):
ZSH
Ничего не выдает. А зачем там буква U?
Ничего не выдает. А зачем там буква U?
Спустя 2 минуты, 20 секунд (27.12.2010 - 14:01) ZSH написал(а):
если у тебя кодировка не UTF то можно использовать функцию wordwrap
Спустя 3 минуты, 11 секунд (27.12.2010 - 14:05) m4a1fox написал(а):
ZSH
Кодировка не UTF-8, а Windows -1251. Но тем не менее спасибо всем.
Кодировка не UTF-8, а Windows -1251. Но тем не менее спасибо всем.
Спустя (27.12.2010 - 14:05) ZSH написал(а):
Спустя 3 минуты, 28 секунд (27.12.2010 - 14:08) ZSH написал(а):
<!--Вывод списка коментариев-->
<?
$query = ("SELECT `name`, `date_now`, `time`, `text`
FROM `comment` WHERE `id_mail`=".(int)$view."
ORDER BY datetime DESC LIMIT 10");
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
echo '<div class="comment_div">
<div class="comment_add">
<img src="img/comment.png"> <u><b>'.$ind['name'].'</b></u>
| Дата: <b>'.$ind['date_now'].'</b>
| Время: <b>'.$ind['time'].'</b></div>
<div class="comment_text"><i>'. nl2br(wordwrap($text), 20, "\n") . '</i></div></div>';
}
?>
Спустя 6 минут, 36 секунд (27.12.2010 - 14:15) m4a1fox написал(а):
ZSH
Но ведь вы не определяете $text. У меня же идет $ind[text]. Как тут быть?
Но ведь вы не определяете $text. У меня же идет $ind[text]. Как тут быть?
Спустя 3 минуты, 49 секунд (27.12.2010 - 14:18) ZSH написал(а):
ну поставь $ind[text], $text я по привычке влупил
Спустя 22 минуты, 38 секунд (27.12.2010 - 14:41) m4a1fox написал(а):
ZSH
Понимаю - так и ставлю - вылетает ошибка.
Понимаю - так и ставлю - вылетает ошибка.
Warning: nl2br() expects at most 2 parameters, 3 given in Y:\home\localhost\www\qwerty\page_view_you_mail.php on line 135
Спустя 4 минуты, 42 секунды (27.12.2010 - 14:46) ZSH написал(а):
nl2br(wordwrap($text, 20, "\n"))
блин скобки не так рассставил, вот что значит сразу двумя делами заниматся
блин скобки не так рассставил, вот что значит сразу двумя делами заниматся

Спустя 6 минут, 44 секунды (27.12.2010 - 14:53) m4a1fox написал(а):
ZSH
Мдя..... а так не получается, - строка лезет вправо.))))))
Мдя..... а так не получается, - строка лезет вправо.))))))
Спустя 15 минут, 39 секунд (27.12.2010 - 15:08) ZSH написал(а):
nl2br(wordwrap($text, 20, "\n", 1))
Спустя 3 минуты, 15 секунд (27.12.2010 - 15:11) m4a1fox написал(а):
Да - так работает. Спасибо. Это значит, нет смысла использовать функцию переноса если использую Win-1251?
Спустя 2 часа, 57 минут, 25 секунд (27.12.2010 - 18:09) inpost написал(а):
m4a1fox
Всё как и раньше, только при выводе из БД пишешь: echo nl2br($text); В других местах - не надо! А так же не стоит создавать переменные, которые будешь просто выводить.
echo date(), - а не $date = date(), echo date - экономия памяти.
Всё как и раньше, только при выводе из БД пишешь: echo nl2br($text); В других местах - не надо! А так же не стоит создавать переменные, которые будешь просто выводить.
echo date(), - а не $date = date(), echo date - экономия памяти.
Спустя 24 минуты, 42 секунды (27.12.2010 - 18:34) m4a1fox написал(а):
inpost
Точно, я об этом не подумал. Спасибо.
Точно, я об этом не подумал. Спасибо.