раздел - Мусор НАГУАЛИЗМ
Страницы: [пред ]... 4 ... 55 [след ]

Автор
Тема:  Сброс из темы 'Форум'
Pipa
написано:28-02-2003 16:47:29
46

sergejh: <FONT SIZE=2 COLOR=#0033CC>Не вырезает изнутри ссылки OnMouseОvеr</FONT>

Написано же тебе черным по белому, что в слоге "оn", по твоей же милости, русская буква! Замени ее на латинскую - скрипт dt заработает!
А может, наоборот, - ты еще до применения скрипта успел раньше подменить латинскую "о" на русскую. Разберись.
----
Pipa

<font size="1" color="#CCCCCC">Исправлено: 28-02-2003 17:04:54</font>

ц и т а т а

sergejh
написано:28-02-2003 17:15:45
47

Тю... Не поймешь вас, где английская, где русская буква, поперепутали всё. :) Действительно, работает теперь.

Weather Report
Не надо только шуток. Это серьезное предложение или нет?

ц и т а т а

dt
написано:28-02-2003 23:25:54
48

Pipa
RTFM! Перл без документации изучать - дохлый номер :) Я сам только на днях узнал, что regexp'ы можно даже в split засовывать :)
...что потуги "отредактировать наоборот", для того чтобы заполнить форму при вызове редактирования сообщений - в общем случае невозможны
Гон! Если можно преобразовать в одну сторону, можно и в другую! Говорю на основе собственного опыта - я ведь тоже в свое время форум писал, у меня в обе стороны преобразовывалось без проблем :) А если хранить в базе исходные сообщения, то при формировании хтмл отжирается куча лишних ресурсов, чего можно избежать, если преобразовывать сразу. (я в курсе, что у меня параноя на почве оптимизации, но увы, ничего не могу с собой поделать :))))

Для сбора документальных подтверждений обычно существует системный лог, в который пишется все и по порядку. Это гораздо удобнее, чем лазить по всем темам подряд и выискивать запрещенные теги или попытки нагадить ;)

ЗЫ: У меня все ходы записаны! Только что специально посмотрел - в скрипте, который у меня на диске остался "о" английская, это форум (наверняка не без помощи сергеича) мудрит :)
ЗЗЫ: (оффтопик ;)) pipa, ты вроде в js разбираешься, к тебе вопросик такой: не знаешь случайно, как правильнее писать: @^lt;a href="javasсript:fn()"@^gt; или @^lt;a href="#" оnСlick="fn()"@^gt;?
ЗЗзЫ: и еще вспомнил: сергеич, на сознане уже где-то неделю quick_date выдает ошибку "zero sized reply" (точнее ошибку выдает прокси). Подозреваю правда, что в этом виноват хостинг либо сам прокси, но глянь все же плз :)

ц и т а т а

Потный Мекс
написано:28-02-2003 23:53:07
49

Какие вы все умные. Почему я один дурак? Вот ведь...

ц и т а т а

Pipa
написано:01-03-2003 01:05:23
50

dt: Перл без документации изучать - дохлый номер :)

В инете этой документации завались! Чего тебе мешает? А в прочем ... и с документацией тоже не сладко :-).

dt: Я сам только на днях узнал, что regexp'ы можно даже в split засовывать :)

А я год назад даже не знала, что Perl и JavaScript существуют :-))). А про HTML только слово слышала.

Pipa: ... потуги "отредактировать наоборот", для того чтобы заполнить форму при вызове редактирования сообщений - в общем случае невозможны...
dt: Гон! Если можно преобразовать в одну сторону, можно и в другую!

Я же написала - "общем случае"! И то, что иногда это сделать удается не опровергает моего утверждения. Доказательство этому таково:
Положим, что преобразование заключается в замене абстрактного элемента текста "А" на другой элемент - "В". Т.е. A -> B.
Тогда в тексте, содержащем одновременно элементы "А" и "В", после преобразования число элементов "В" увеличится за счет "А". Однако обратное преобразование будет невозможно, т.к. среди совершенно одинаковых элементов "В" уже невозможно узнать те, которые получились из "А", а какие были такими до преобразования.
Частным случаем этого утверждения являются преобразования, состоящие в удалении элементов (например, class, style или оnМоuseOver). Ясно даже и ежу :-))), что обратного преобразования этому действию нет. Ведь совершенно невозможно решить, какое из запрещенных выражений было удалено.

dt: А если хранить в базе исходные сообщения, то при формировании хтмл отжирается куча лишних ресурсов, чего можно избежать, если преобразовывать сразу.

Так или иначе будет всего единственный акт преобразования: либо сразу при получении, либо при формировании html-страницы. Напоминаю, что таблицы на здешнем форуме НЕ генерятся динамически при каждом запросе, а приготавливаются однократно и затем доступны в виде своих html-текстов.
Тем не менее перенос преобразованиена акт приготовления страницы обоадает несомненными преимуществами:
1) Позволяет упростить процедуру редактирования, т.к. исходный текст всегда под рукой и его можно отправить назад без каких-либо дополнительных обратных преобразований.
2) Если вдруг оказывается, что применяемое преобразование оказалось несовершенным, то имеется возможность перегенерить страницу, используя более совершенное преобразование.

dt: у меня параноя на почве оптимизации, но увы, ничего не могу с собой поделать :))))

У кого она на почве ускорения, а у кого в размере кода :-)

dt: Только что специально посмотрел - в скрипте, который у меня на диске остался "о" английская, это форум (наверняка не без помощи сергеича) мудрит :)

Ясное дело. Это я ему в свое время идейку подкинула заменять в оnМоuse латынь на русские. А теперь вот боком вышло. Несомненно твой скрипт лучше этой идеи.
----
Pipa

ц и т а т а

Pipa
написано:01-03-2003 01:06:04
51

dt: pipa, ты вроде в js разбираешься, к тебе вопросик такой: не знаешь случайно, как правильнее писать: @^lt;a href="javasсript:fn()"@^gt; или @^lt;a href="#" оnСlick="fn()"@^gt;?

<small>
Правильность - это одно, а функциональность другое. Если следовать "букве закона", то первая конструкция правильнее тем, что во второй стоит отсутствующая ссылка. Например, HTML-чекеры обругают вторую конструкцию (не найдя ссылки), но примут первую без разговоров. Однако на вкус и цвет товарищей нет :-). Вот мне, например, вторая конструкция нравится больше. Причин две:
1) При отключенном JаvаSсriрt'e или при уже свершившейся в нем ошибке на странице, первая конструкция обращается "в никуда", вызавая 404-ую ошибку. В то время, как вторая просто не работает, без каких-либо эксцессоов.
2) Во второй конструкции частенько можно обработчик оnClick вынести в тег bоdy, сделав его один на все множество ссылок. В уж в этом обработчике совсем не сложно узнать какая из ссылок вызвала событие оnClick, вытянуть из-под нее текст и сформировать общее для всех ссылок действие. Например, в MSIE текст долбанутой ссылки будет таков - event.srcElement.innerHTML - его можно скажем в чате использовать, как обращение, отправляя в строку ввода. Тогда будь в чате хоть 100 участников, вставку ника сделает единственный обработчик в теге body подобного содержания: input.value+=event.srcElement.innerHTML; Причем никакого JavaScripta в каждую ссылку на участника вставлять не надо.
Тем не менее, не все в жизни хорошо... Увы. И я считаю своим долгом испортить ту радужную картину, которую только что нарисовала. А дело в том, что если ты последуешь моему совету, то чат у тебя работать перестанет :-). И вина за это лежит не в правильности или неправильности JavaScript-конструкций, в тонких особенностях браузеров. Беда в том, что ДОБАВЛЕНИЕ текста в окно ввода очень чувствительно к нахождению в этот момент курсора. И если он в момент вставки/модификации текста где-то "гуляет", то курсор вполне может после такой операции сброситься в начало строки, вместо того, чтобы остаться там, где он был раньше. Причем процедура focus() только усугубит положение тем, что ее директива конфликтует с общим правилом GUI-интерфейса - "кликнутая мышь притягивает фокус". Возникает противоречивая ситуация: клик ссылки в другом фрейме требует, чтобы курсор переместился туда, а обработчик клика требует, чтобы фокус ушел в другое окно. Результат будет зависить от скорости компьютера, однако скорее всего команда focus() будет проигнорирована - мышь окажется сильнее.
Тем не менее, обработчик из-под href=jаvаsсriрt:код скорее всего сработает правильно под MSIE, т.к. так как ссылки срабатывают в нем уже после того, как последствия мышиного воздействия закончились. Из последнего обработчика команда focus() будет выполнена верно.
Если ты еще не усох от моих объяснений :-), то можешь проверить, как работает вставка ников твоего чата под браузером Opera-7. После этого интерес к тому, что я здесь написала у тебя заметно поднимется :-))).
P.S. Все эти премудрости я узнала в процессе почти годового "прятанья" невидимкой в чате на necromancers.com. В твоем чате гостевой вход является нормой, а там жестоко преследуется :-). Захочешь выжить - выучишь и Perl, и JavaScript! :-)))
</small>
----
Pipa

<font size="1" color="#CCCCCC">Исправлено: 01-03-2003 01:18:16</font>

ц и т а т а

Weather Report
написано:01-03-2003 13:43:49
52

sergejh
совершенно сурьёзно ! (сделал сурьёзную рожу)

ц и т а т а

sergejh
написано:01-03-2003 14:31:46
53

dt
<FONT SIZE=2 COLOR=#0033CC>Для сбора документальных подтверждений обычно существует системный лог</FONT>

Какой еще "системный"? Системный - то есть программируемый мною или там, на компьютере хостера? Если на компе хостера (где какой-нибудь Unix стоит), тогда этот лог нам недоступен. :) А если самому писать что-то в лог - на это тратится лишние обращения к винчестеру (опять же, на компьютере хостера) и такты процессора.

<FONT SIZE=2 COLOR=#0033CC>на сознане уже где-то неделю quick_date выдает ошибку...</FONT>

Вранье! :))
Я каждый день (почти) по Quick Date читаю там письма, и всё нормально. Вот сейчас проверил на всякий случай - нормально работает. Но с хостингом проблемы какие-то - да. Иногда скрипт обрывается и выдает что-то вроде "not found". Нужно просто еще раз нажать "обновить". А иногда еще раз и еще раз. :) Это не я виноват, а бесплатный хостинг.

Далее.
Итак, мысли такие. В базе храню оригинал сообщения. А при генерировании привожу его к нужному виду и делаю HTML. (Генерирование html происходит в следующих случаях:
-создать новое сообщение
-послать ответ на сообщение
-сохранить отредактированное сообщение
-по скрипту администрирования)

Алгоритм генерации теперь планирую сделать такой:
1) $mtext = ... #получили текст из базы (со всеми тегами, классами и т.п. - весь хлам, который решил написать пользователь)
2) вырезаем из него все опасные вещи: class, оn, style, size, color
3) далее снова анализируем: если есть @^lt;fоnt, добавляем туда @^lt;fоnt style=... для приведения любой попытки изменить fоnt к единому стилю
4) если есть @^lt;a href, добавляем @^lt;a href="..." class="...", т.е. все введенные ссылки приводим к единому классу.
5) вставляем $mtext в генерируемую HTML страницу

Здесь есть один момент, о котором я хотел спросить помощи. Как выполнить пункты 3 и 4? Т.е., как добавить внутрь тега определенную конструкцию? Прошу код. :) (Как вырезать, вроде уже сказали)

ц и т а т а

paramita
написано:01-03-2003 17:05:49
54

sergejh, а можно из старого форума восстановить темы про книги и кино?

ц и т а т а

sergejh
написано:01-03-2003 17:31:03
55

paramita
Приведи точные номера. Вот в таком примерно виде:
[номер старого раздела] - [номер темы] - [номер нового раздела, куда перенести]. Тогда без проблем перенесу. А сам копаться искать, где там про музыку, где что - не хочу. :)
Кстати, вот ссылка для просмотра старых тем списком. Параметр forum=N, где N = номер раздела.
http://www.nagualism.ru/cgi-bin/ef3/oldtopics.cgi?forum=1

ц и т а т а

Temus
написано:01-03-2003 18:29:57
56

<FONT SIZE=2 COLOR=#0033CC>если есть @^lt;a href, добавляем @^lt;a href="..." class="...", </FONT>

Это делается не так. Пишешь на ячейку с текстом @^lt;td class=my@^gt;
а в стилях пишешь:
.my a:link,.my a:visited,.my a:active { ... }
.my a:hover { ... }
.my em {color: #03C; fоnt: italic small Verdana,Arial}
и т.д.

Я смотрю тут одни кодеры собрались. Наконец-то людям будет о чём поговорить, а там можно и форум переименовать... :-)

ц и т а т а

zulus
написано:01-03-2003 23:54:49
57

sergejh
У меня почему-то не сохраняются страницы после отключения от инета.Другие форумы сохраняются а этот нифига.

ц и т а т а

Pipa
написано:02-03-2003 00:20:50
58

sergejh

Пожалуй с разговорами о программировнии действительно уже перебор, даже для этой темы. Поэтому посылаю свои предложения мылом, сразу на 2 адреса: sergejh@rambler.ru и sergejh@mailru.com (не знаю, который из них правильней).
----
Pipa

ц и т а т а

Потный Мекс
написано:02-03-2003 00:52:26
59

Сергеич, твоя квикдейт - это... гм... Ну почему бы тебе не сделать как везде - на куках?

ц и т а т а

dt
написано:02-03-2003 01:49:43
60

Pipa
Частным случаем этого утверждения являются преобразования, состоящие в удалении элементов (например, class, style или оnМоuseOver). Ясно даже и ежу :-))), что обратного преобразования этому действию нет. Ведь совершенно невозможно решить, какое из запрещенных выражений было удалено.
Так они же все равно при сохранении опять удалятся, зачем их показывать в "правке"?? Надо экономить такты процессора, байты траффика и место на диске :)
(и зачем вообще отличать "А" от "Б", если в конечном итоге все "А" все равно будут выглядеть как "Б")

таблицы на здешнем форуме НЕ генерятся динамически при каждом запросе, а приготавливаются однократно и затем доступны в виде своих html-текстов.
Не однократно, а каждый раз, когда добавляется новое сообщение, или исправляется уже существующее. Если в теме десяток ответов, это действительно несущественно, но если кто-то решит ответить в тему "АПК вопросы и ответы" (в которой почти 40 страниц), то он рискует не дождаться результата вообще (хотя он и так его может не дождаться :))

При отключенном JаvаSсriрt'e или при уже свершившейся в нем ошибке на странице, первая конструкция обращается "в никуда", вызавая 404-ую ошибку.
Насколько я знаю, 404 не будет, поскольку она ссылается не "в никуда", а на якорь с неуказанным именем на текущей странице, т.е. броузер при виде такой ссылки просто ее проигнорирует. И кстати думается мне, что из-за более широкой "специализации" тега href, глюки при вызове скрипта через него более вероятны, чем при вызове через оnClick :)

sergejh
"Системный лог" - мне просто нравится, как это звучит :) Да и по другому называть будет либо длинно, либо непонятно. Конкретно в случае моего чата, это специальный лог, куда пишется различная информация, к которой обычным пользователям доступа быть не должно - все входы/выходы, ошибки, попытки прорваться через бан, айпишники конечно, и тому подобное. Ресурсы тратятся конечно, но во-первых, безопасность требует жертв, а во-вторых, на повторяющиеся много раз преобразования их уходит куда больше.

Как выполнить пункты 3 и 4?
$link=~s/(@^lt;fоnt)/$1 style="..."/g;
$link=~s/(@^lt;a href=[^\s]+)/$1 class="..."/g;
:)

ц и т а т а

Ваш ответ:





Translit

Взгляните на название - вы уверены, что ваше сообщение удовлетворяет теме?

Это сообщение может стать вашим последним действием на Земле. :) Вы готовы принять на себя такую ответственность?
Имя, пароль:

   
Страницы: [пред ]... 4 ... 55 [след ]

Перейти в список тем раздела "Мусор"

Easy Forum ver 3.0
sergejh 2003-2005