PDA

Просмотр полной версии : У кого есть опыт работы с гостевой?


барт
10.02.2003, 19:42
Народ!
Казалось бы, что гостевая на php это 123 и готово.
Но не все так просто!
Дело в том, что у меня токая штука вышла:
если пользователь в textarea не будет вручную разделять строки (жать на ентер)
то в гостевой так и будет написано (в одну строку)!
Как с этим борются???
:confused: :confused: :confused: :confused: :confused:

Crazy
10.02.2003, 20:36
Ага. А если он не станет текст вбивать, то в гостевой так пустой текст и останется. Ты чего хотел-то? Чтобы скрипт сам догадался, где пользователь ХОТЕЛ сделать разрыв строки, но поленился сделать?

Конкретизируй, please, свою мысль для придания ей смысла. :)

Alex Wanderer
10.02.2003, 22:03
Я что-то не понял в чем трабла, у тебя полоса горизонтальной прокрутки появляется? Или еще что?

барт
10.02.2003, 22:10
Да!

Alex Wanderer
10.02.2003, 22:21
Попробуй загнать свою гостевуху в таблу фиксир. ширины
Случаем, у тебя текст не выводится между тегами <nobr> и </nobr>?
А еще присвой через цсс стиль для текста типа align=justify (или left) и вообще, посмотри, какой код тебе выдается в бровзере...
Может там собака и порылась... и в свойствах выводимого текста стоит запрещение переноса слов (типа inline, или чего-то аналогичного). Еще дополни ограничение на макс длину слова, скажем 15-20 символов
:)

ЗЫ. А может, проще взять готовый скрипт гостевухи и переделать под свои нужды? :p

барт
10.02.2003, 23:29
Проше, но там та же фигня!!!
К тому же я еще только учу 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

барт
12.02.2003, 00:57
Эта ссылка нечего не меняет (если бы мне был нужен скрипт я бы не спрашивал)!!! :mad:
Мне нужна помощь для решения этой проблемы!
Помагите мне, пожалуйста. :)

Alex Wanderer
12.02.2003, 11:32
Заместо пустых разговоров, выложил бы скрипт, иначе как тебе помочь? А так -- инфы мало...

барт
13.02.2003, 01:21
Сообщение добавляет следующий код:

<?
$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>

Crazy
13.02.2003, 11:06
Это не гостевая книга -- это мечта. Ни одного htmlspecialchars()... :)

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

Если хочешь, чтобы пользователь мог вставить свои собственные разрывы строк -- используй nl2br()...

барт
13.02.2003, 19:39
Скажем так:
как сделать, что бы оно выводило текст, так же как и в этом форуме? :confused: :confused: :confused:

барт
13.02.2003, 19:55
Тойесть: Например, если это длинное слово, например ссылка то браузер добавляет горизонтальный скролл и это слово выводит в длинную строку!
А здесь такое разрывается на две (или больше :)).

Alex Wanderer
14.02.2003, 11:47
А для коротких слов автоматический wordwrap работает?

барт
14.02.2003, 21:23
Да!

Crazy
14.02.2003, 21:35
Стало быть, тебе нужно слишком длинные слова принудительно бить на куски? Ты это имел в виду?

барт
15.02.2003, 00:11
Да! :)

juggy
15.02.2003, 12:41
Оригинал написал(а) Alex Wanderer

А потом какой-нибудь "добрый человек" вставит в твое 123 js-код и станет тебе немножко весело или чуть-чуть наоборот
:p


после истории с моим сайтом , я прям уже этих Js боюсь...

IBSN
15.02.2003, 22:51
:) Народ вижу Вы тут рулите в PHP нужна такая фишка:
у меня база данных как base.txt файл, в нем 50 сообщений мне надо вывести по 10 сообщений на страницу и поставить номера страниц как в этом форуме =)

барт
16.02.2003, 03:21
IBSN, это тоже надо! ;)
Но, блин!
Вы сначала скажите, как сделать то, что я хочу!!!

Crazy
16.02.2003, 12:14
<?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;

?>

барт
16.02.2003, 16:50
Во первых: я не хрена не понял!!!
Во вторых: может можно проще?!
И в третех: например это ссылка например:
http://www.yandex.ru/yandsearch?text=%F4%EB%E5%F8
Она отобразится так: http://w ww.yande x.ru/yan dsearch? text=%F4 %EB%E5%F 8
А надо точно так же как и в этом форуме!

Crazy
16.02.2003, 18:12
Оригинал написал(а) барт
Во первых: я не хрена не понял!!!

Ты, надеюсь, не пытался меня удивить? :)

барт
21.02.2003, 00:30
Блин!
Я же уже объяснил (мне нужно, чтобы текст выводился, так же как и в этом форме)!
Дайте, пожалуйста, код (с комментариями ;)!).

Crazy
21.02.2003, 15:47
Как я уже говорил, чтение мануала вслух стоит $50 в час.

барт
25.02.2003, 21:50
Народ, извините за тупой вопрос...
Я уже сам въехал :)
А именно:

$messege = wordwrap($messege, 76, "\n", 1);

А теперь вопрос IBSN'а :D

Crazy
25.02.2003, 22:10
Зачем тебе wordwrap, если, конечно, ты ен засунул текст в тэг <pre>?

барт
26.02.2003, 01:16
В тэг <pre> я нечего не засовывал!
Так прикольние :)
А вопрос IBSN'а :D

Crazy
26.02.2003, 08:54
Оригинал написал(а) барт
В тэг <pre> я нечего не засовывал!
Так прикольние :)


Если wordwrap'а есть два применения.

Разумное: разбить на строки для <pre>
Глупое: разбить длинные слова.

Глупое оно потому, что бьет слова неправильно. Впрочем, если неважен результат, то можно и wordwrap'ом.

Самурай
26.02.2003, 11:15
табличка фиксированой ширины?

барт
27.02.2003, 19:33
Crazy, а у меня правильно! :p
А <pre> нет!
Если я правильно понял :rolleyes:

Crazy
27.02.2003, 19:50
Оригинал написал(а) барт
Crazy, а у меня правильно! :p

Приведенный тобой код будет иногда порождать уродливую нарезку. Например, от слова в 77 символов он отрежен ровно одну букву. В отличие от приведенного мной варианта, который этим не болеет. :)

барт
27.02.2003, 22:49
77 символов может быть только ссылка а со ссылкой это нормально :)
А как ты с помощью <pre> это делаешь? :confused:

Crazy
28.02.2003, 15:12
Оригинал написал(а) барт
77 символов может быть только ссылка а со ссылкой это нормально :)

Нормальным является следующий алгоритм: если слово длинее N символов, то разбиваем его на куски по M символов. Причем M<N. К примеру, при N=77,M=70 код будет давать существенно менее уродливый результат.

барт
28.02.2003, 23:04
Я говарю: как с <pre> это сделать???

Crazy
28.02.2003, 23:25
Что "это" и зачем с <pre>?

барт
02.03.2003, 00:50
Ты что то говарил про <pre> :)

Crazy
02.03.2003, 12:42
Оригинал написал(а) барт
Ты что то говарил про <pre> :)

Ну дык и прочитай, что я говорил про <pre> :)

барт
07.03.2003, 01:06
Ну не знаю 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:

барт
15.03.2003, 00:19
ЭЙ!!!!!!!!! :mad: :mad: :mad: :mad: :mad:
НУ НЕ УЖЕЛИ НИКТО НЕ ЗНАЕТ????? :eek: :eek: :eek: :eek: :eek:

Crazy
15.03.2003, 12:21
Просто надоела уже эта проблема. Используй поиск здесь и на форуме phpclub.net ...

барт
19.03.2003, 21:17
Crazy :rolleyes:
Именно то, что я хочу я не нашёл :(
Ответьте кто небудь, пожалуйста!
:rolleyes: :rolleyes: :rolleyes:

nagash
06.04.2003, 19:13
именно то что ты хочешь?
SELECT * FROM text LIMIT $page, 20;

вот тебе вывод по двадцать сообщений... =)
какие ещё вопросы?

барт
12.04.2003, 22:13
Сорри, но я что то не въехал! :confused: