Просмотр полной версии : У кого есть опыт работы с гостевой?
Народ!
Казалось бы, что гостевая на php это 123 и готово.
Но не все так просто!
Дело в том, что у меня токая штука вышла:
если пользователь в textarea не будет вручную разделять строки (жать на ентер)
то в гостевой так и будет написано (в одну строку)!
Как с этим борются???
:confused: :confused: :confused: :confused: :confused:
Ага. А если он не станет текст вбивать, то в гостевой так пустой текст и останется. Ты чего хотел-то? Чтобы скрипт сам догадался, где пользователь ХОТЕЛ сделать разрыв строки, но поленился сделать?
Конкретизируй, please, свою мысль для придания ей смысла. :)
Alex Wanderer
10.02.2003, 22:03
Я что-то не понял в чем трабла, у тебя полоса горизонтальной прокрутки появляется? Или еще что?
Alex Wanderer
10.02.2003, 22:21
Попробуй загнать свою гостевуху в таблу фиксир. ширины
Случаем, у тебя текст не выводится между тегами <nobr> и </nobr>?
А еще присвой через цсс стиль для текста типа align=justify (или left) и вообще, посмотри, какой код тебе выдается в бровзере...
Может там собака и порылась... и в свойствах выводимого текста стоит запрещение переноса слов (типа inline, или чего-то аналогичного). Еще дополни ограничение на макс длину слова, скажем 15-20 символов
:)
ЗЫ. А может, проще взять готовый скрипт гостевухи и переделать под свои нужды? :p
Проше, но там та же фигня!!!
К тому же я еще только учу php.
Может я код дам? ;)
Alex Wanderer
11.02.2003, 11:56
Возьми скрипт гостевой с http://manliks.ru/manlix/?downloads и развлекайся с ним. (Если бы не форум -- поставил бы ее у себя). Прозрачный код, удобная настройка...
Кроме того, там есть и др. хорошие скрипты.
Alex Wanderer
11.02.2003, 12:21
Оригинал написал(а) барт
...гостевая на php это 123 и готово...
А потом какой-нибудь "добрый человек" вставит в твое 123 js-код и станет тебе немножко весело или чуть-чуть наоборот
:p
Эта ссылка нечего не меняет (если бы мне был нужен скрипт я бы не спрашивал)!!! :mad:
Мне нужна помощь для решения этой проблемы!
Помагите мне, пожалуйста. :)
Alex Wanderer
12.02.2003, 11:32
Заместо пустых разговоров, выложил бы скрипт, иначе как тебе помочь? А так -- инфы мало...
Сообщение добавляет следующий код:
<?
$filename = "mydata.tex";
$newstring = "<tr><td width=\"100%\"><p>$sender_name</p><br>
<a href=\"mailto:$sender_email\">$sender_email</a><br><p>$messege</p></td></tr>";
$myfile = @fopen ($filename, "a") or die ("Ошибка!");
@fwrite ($myfile, $newstring) or die ("Ошибка!");
$msg = "Cообщение отправлено!";
fclose ($myfile);
header ("location: gostivaya.php4");
exit;
?>
<html>
<head>
<title>Cообщение отправлено!</title>
</head>
<body>
<?
echo "$msg";
?>
</body>
</html>
Это не гостевая книга -- это мечта. Ни одного htmlspecialchars()... :)
Выводиться будет не в одну строку, а с автоматическим wordwrap'ом -- если не начудили в окружающей код верстке.
Если хочешь, чтобы пользователь мог вставить свои собственные разрывы строк -- используй nl2br()...
Скажем так:
как сделать, что бы оно выводило текст, так же как и в этом форуме? :confused: :confused: :confused:
Тойесть: Например, если это длинное слово, например ссылка то браузер добавляет горизонтальный скролл и это слово выводит в длинную строку!
А здесь такое разрывается на две (или больше :)).
Alex Wanderer
14.02.2003, 11:47
А для коротких слов автоматический wordwrap работает?
Стало быть, тебе нужно слишком длинные слова принудительно бить на куски? Ты это имел в виду?
Оригинал написал(а) Alex Wanderer
А потом какой-нибудь "добрый человек" вставит в твое 123 js-код и станет тебе немножко весело или чуть-чуть наоборот
:p
после истории с моим сайтом , я прям уже этих Js боюсь...
:) Народ вижу Вы тут рулите в PHP нужна такая фишка:
у меня база данных как base.txt файл, в нем 50 сообщений мне надо вывести по 10 сообщений на страницу и поставить номера страниц как в этом форуме =)
IBSN, это тоже надо! ;)
Но, блин!
Вы сначала скажите, как сделать то, что я хочу!!!
<?php
$text = 'aa bbbb ccccccc ddddddddddddd eeeeeeeeeeeeeeee';
define('SPLIT_MAX_LEN',10);
define('SPLIT_PART_LEN',8);
$text = preg_replace_callback('/\S{'.SPLIT_MAX_LEN.'}\S+/', 'split_long_word', $text);
function split_long_word($matched) {
$temp = "";
$word = $matched[0];
$charsLeft = strlen($word);
$i = 0;
while ($charsLeft>0) {
$partLen = min(SPLIT_PART_LEN,$charsLeft);
$temp .= substr($word,$i,$partLen).' ';
$i += $partLen;
$charsLeft -= $partLen;
}
return substr($temp,0,strlen($temp)-1);
}
echo $text;
?>
Во первых: я не хрена не понял!!!
Во вторых: может можно проще?!
И в третех: например это ссылка например:
http://www.yandex.ru/yandsearch?text=%F4%EB%E5%F8
Она отобразится так: http://w ww.yande x.ru/yan dsearch? text=%F4 %EB%E5%F 8
А надо точно так же как и в этом форуме!
Оригинал написал(а) барт
Во первых: я не хрена не понял!!!
Ты, надеюсь, не пытался меня удивить? :)
Блин!
Я же уже объяснил (мне нужно, чтобы текст выводился, так же как и в этом форме)!
Дайте, пожалуйста, код (с комментариями ;)!).
Как я уже говорил, чтение мануала вслух стоит $50 в час.
Народ, извините за тупой вопрос...
Я уже сам въехал :)
А именно:
$messege = wordwrap($messege, 76, "\n", 1);
А теперь вопрос IBSN'а :D
Зачем тебе wordwrap, если, конечно, ты ен засунул текст в тэг <pre>?
В тэг <pre> я нечего не засовывал!
Так прикольние :)
А вопрос IBSN'а :D
Оригинал написал(а) барт
В тэг <pre> я нечего не засовывал!
Так прикольние :)
Если wordwrap'а есть два применения.
Разумное: разбить на строки для <pre>
Глупое: разбить длинные слова.
Глупое оно потому, что бьет слова неправильно. Впрочем, если неважен результат, то можно и wordwrap'ом.
табличка фиксированой ширины?
Crazy, а у меня правильно! :p
А <pre> нет!
Если я правильно понял :rolleyes:
Оригинал написал(а) барт
Crazy, а у меня правильно! :p
Приведенный тобой код будет иногда порождать уродливую нарезку. Например, от слова в 77 символов он отрежен ровно одну букву. В отличие от приведенного мной варианта, который этим не болеет. :)
77 символов может быть только ссылка а со ссылкой это нормально :)
А как ты с помощью <pre> это делаешь? :confused:
Оригинал написал(а) барт
77 символов может быть только ссылка а со ссылкой это нормально :)
Нормальным является следующий алгоритм: если слово длинее N символов, то разбиваем его на куски по M символов. Причем M<N. К примеру, при N=77,M=70 код будет давать существенно менее уродливый результат.
Я говарю: как с <pre> это сделать???
Что "это" и зачем с <pre>?
Ты что то говарил про <pre> :)
Оригинал написал(а) барт
Ты что то говарил про <pre> :)
Ну дык и прочитай, что я говорил про <pre> :)
Ну не знаю Crazy...
Мне кажется, что это слишком длинно и бессмысленно!
Что ж каждому своё... :rolleyes:
Однако поскольку заголовок все ровно "У кого есть опыт работы с гостевой?" я задам еще вопрос:
У меня есть база данных как mydata.txt каждое сообщение равно одной строке (для тех, кто не понял: в качестве раздела <br>). К примеру, у меня там уже 132 сообщения. Не буду же я их отображать "в кучу"! Мне нужна токая фишка:
ссылки 1 2 3 4 5 6 7 8 9 10 Архив
соответственно если $page=1 из файла читается от первой строки до двадцатой если 2, то с 21 по 40 если 3, то от 41 до 60
И т. д. до десяти.
Если же $page="zip" то сообщения валятся в кучу с 201
строки до последней.
Ну а если страница еще не занята то выводится сообщение
типа "Страницы еще не существует!".
И как :D :confused: :confused: :confused:
ЭЙ!!!!!!!!! :mad: :mad: :mad: :mad: :mad:
НУ НЕ УЖЕЛИ НИКТО НЕ ЗНАЕТ????? :eek: :eek: :eek: :eek: :eek:
Просто надоела уже эта проблема. Используй поиск здесь и на форуме phpclub.net ...
Crazy :rolleyes:
Именно то, что я хочу я не нашёл :(
Ответьте кто небудь, пожалуйста!
:rolleyes: :rolleyes: :rolleyes:
именно то что ты хочешь?
SELECT * FROM text LIMIT $page, 20;
вот тебе вывод по двадцать сообщений... =)
какие ещё вопросы?
Сорри, но я что то не въехал! :confused:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.