Author |
Message |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Wed Jun 29, 2005 12:44 pm (написано за 1 минуту 4 секунды)
Post subject:
|
|
JC_Piligrim wrote: |
Но FormPersister просто вырезает все после '?' включительно | Неправда Ваша, см. код полностью: Code (php): | скопировать код в буфер обмена | function tag_form($attr) { if (isSet (www.php.net/isset)($attr['action'])) return; $attr['action'] = preg_replace (www.php.net/preg_replace)('/\?.*/s', '', $_SERVER['REQUEST_URI']); return $attr; } | Т.е. если action задан явно, он таким и остается, какой был. У Вас где-то еще ошибка, ищите.
|
|
Back to top |
|
 |
JC_Piligrim
Заглянувший
Joined: 19 Feb 2005
Posts: 8
Карма: 2 поощрить/наказать
Location: Краснодарский край
|
Posted: Wed Jun 29, 2005 1:34 pm (спустя 50 минут; написано за 2 минуты 10 секунд)
Post subject:
|
|
И правда, моя неправда. Простите, что поспешил сюда писать, не разобравшись до конца. Хотя, я, собственно, до сих пор не понял, что случилось. Уходил на обед - action вырезался. Пришел с обеда - все работает нормально. До сих пор не могу понять, почему, но факт... Чудеса какие-то... =)
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jul 13, 2005 3:53 pm (спустя 14 дней 2 часа 18 минут; написано за 1 минуту 33 секунды)
Post subject:
|
|
Здравствуйте Дмитрий. У меня вопрос -- на каких условиях можно использовать ваши скрипты FormPersistent и SemiParser в своих проектах? Вопрос о лицензии нигде не затронут -- ни в скриптах, ни в статье, ни в этой ветке...
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Thu Jul 14, 2005 5:16 pm (спустя 1 день 1 час 23 минуты)
Post subject:
|
|
Лицензия LGPL или PHP License (еще не решил). Мое упущение, в новой версии добавлю. Кстати, вопрос: как это правильнее всего сделать? Вкладывать текст лицензии прямо в код не хотелось бы. Достаточно ли просто в заголовке написать, что это LGPL, и привести ссылку на официальный текст?
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Thu Jul 14, 2005 5:46 pm (спустя 29 минут)
Post subject:
|
|
www.infolex.narod.ru/gpl_gnu/lgplrus.html
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Jul 14, 2005 9:50 pm (спустя 4 часа 4 минуты; написано за 1 минуту 55 секунд)
Post subject:
|
|
Полностью приводить текст лецензии не надо. Да и заняло бы это слишком много места. В принципе, как это делать описано здесь www.gnu.org/copyleft/lesser.html#SEC4. Сайт с русским переводом сильно тормозит, так что привожу ссылку на оригинал. Указаный кусок следует поставить в начало обоих файлов в комментарии. Вот, например, как это сделано в Smarty (LGPL): /** * Project: Smarty: the PHP compiling template engine * File: Smarty.class.php * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * For questions, help, comments, discussion, etc., please join the * Smarty mailing list. Send a blank e-mail to * smarty-general-subscribe@lists.php.net
* * @link smarty.php.net/
* @copyright 2001-2005 New Digital Group, Inc. * @author Monte Ohrt <monte at ohrt dot com> * @author Andrei Zmievski <andrei@php.net> * @package Smarty * @version 2.6.9 */
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Thu Jul 14, 2005 10:13 pm (спустя 23 минуты; написано за 39 секунд)
Post subject:
|
|
The One wrote: |
* You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | Вот этого-то как раз у меня и нет - текстовик с лицензией я к модулю не прикладываю. Так что я данный абзац убрал.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jul 15, 2005 12:30 am (спустя 2 часа 16 минут; написано за 44 секунды)
Post subject:
|
|
По идее, можно и линком на www.gnu.org/copyleft/lesser.html обойтись. Идея в том, чтобы дать пользователю прочитать лицензию.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jul 15, 2005 12:32 am (спустя 2 минуты; написано за 53 секунды)
Post subject:
|
|
Дмитрий Котеров wrote: |
текстовик с лицензией я к модулю не прикладываю. | Кстати, почему бы и не приложить? Проблем меньше и пользователю и автору. Я так понял, что Вы всё таки остановились на LGPL?
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Fri Jul 15, 2005 10:14 am (спустя 9 часов 42 минуты; написано за 31 секунду)
Post subject:
|
|
Остановился на LGPL. Чтобы "приложить", нужно делать zip-архив, а я пока не готов к столь серьезному шагу. Слишком трудоемко.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jul 15, 2005 10:46 am (спустя 32 минуты; написано за 5 минут 58 секунд)
Post subject:
|
|
Дмитрий Котеров wrote: |
нужно делать zip-архив | У меня ещё вопрос. Проблему я для себя решил, но всё же. Сырцы можно "скачать" с этого dklab.ru/chicken/nablas/demo/HTML_FormPersister/lib/HTML/ адреса. Я правильно понял? Так вот, при скачивании или открытии любого из файлов я получаю красивый такой раскрашенный код. В HTML, со SPAN'ами,  'ами и другими HTML вещами. PHP понятное дело такое кушать не захочет. Я даже прововать не стал. Вариант сохранить не как HTML, а как text -- тогда браузеры (мозилла и ослик, во всяком случае) бьют длинные строки. Особенно это неприятно, когда происходит посередине PHP'шной строки -- и ошибки нет и работает неверно. Единственный вариант, не требующей дальнейшеё доводки, это выделить всё и скопировать через буфер обмена. :\ Мне кажется, что так не должно быть... Так что вариант с zip (или не zip) архивом был бы очень кстати.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jul 15, 2005 10:48 am (спустя 2 минуты; написано за 28 секунд)
Post subject:
|
|
"не требующей дальнейшеё доводки" = "не требующий дальнейшей доводки" :")
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Fri Jul 15, 2005 3:17 pm (спустя 4 часа 28 минут; написано за 1 минуту 51 секунду)
Post subject:
|
|
The One wrote: |
Сырцы можно "скачать" с этого dklab.ru/chicken/nablas/demo/HTML_FormPersister/lib/HTML/ адреса. Я правильно понял? | Да, совершенно верно. Это официальная версия и гарантированно самая свежая версия (я использую жесткие ссылки NTFS, так что у меня в двух десятках проектов задействован, по сути, один и тот же файл). The One wrote: |
выделить всё и скопировать через буфер обмена | Так и надо делать. Это единственно верный способ. Еще раз: связываться с архивами я не хочу, потому что это сильно усложняет процесс выкладки новых версий (так я их просто по rsync копирую, вместе с полным dklab). Вряд ли в ближайшие пару лет будут архивы.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jul 16, 2005 1:27 am (спустя 10 часов 10 минут; написано за 10 минут 16 секунд)
Post subject:
|
|
Дмитрий Котеров wrote: |
Так и надо делать. Это единственно верный способ. | Ясно, тогда такое предложение. В PHP закрывающий тэг ?> если он находится в конце файла можно не указывать. На самом деле, я бы посоветовал всегда его опускать в таких случаях. Дело в том, что если файл включить в самом начале своего скрипта, как это обычно и делается:а потом сделать что-то вродето на выходе получаем ругань php о том, что headers already sent. Это происходит из-за того, что в конце файла при копировании через буффер, после ?> добавяется один пробел. И этот пробел воспринимается интерпретатором как повод к действию и он вываливает браузеру заголовки и этот пробел. Также пробел будет мешать при генерации, скажем, изображений. Если закрывающий тэг опустить, то концом скрипта будет считаться конец файла и никаих лишних символов в конце не появится. Я понимаю, что эти соображения не слишком касаются конкретно FormPersister, т.к. используется output buffering -- нет проблемы с header. И для генерации изображений библиотека вряд ли подходит :) Но тем не менее, файл может быть включён даже если FormPersister использоваться не будет. Соответственно output buffering не будет обязательно включён. Тоже самое касается и SemiParser.php. Кстати, дополнительный пробел добавляется к каждой строке... А нельзя сделать так, чтобы сервер не пропускал эти файлы через highlight?
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jul 16, 2005 1:32 am (спустя 4 минуты; написано за 38 секунд)
Post subject:
|
|
Только сейчас заметил описание этой проблемы в комментарии... Но мне всё же кажется, что убрать закрывающий тэг будет лучше.
|
|
Back to top |
|
 |
The One
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jul 16, 2005 1:24 pm (спустя 11 часов 51 минуту; написано за 4 минуты 38 секунд)
Post subject:
|
|
Ещё предложение по улучшению. Добавить функцию для начала буферизации вывода с соответствующими хэндлерами. Соответствующая строке весьма неудобоварима и труднозапоминаема. Горазно удобнее заменить её на вызов функции. Например вот так: Code (php): | скопировать код в буфер обмена | * @package HTML */ require_once root . '/lib/formpersister/SemiParser.php';
function formpersister_start() { ob_start (www.php.net/ob_start)( array (www.php.net/array)( 'HTML_FormPersister', 'ob_formpersisterhandler' ) ); }
class HTML_FormPersister extends HTML_SemiParser { | В принципе, её можно сделать статическим методом класса HTML_FormPersister -- это уже выбирать Вам как автору. Кстати, в привёденном куске кода также включается библиотека SemiParser. Путь к ней прописан жёстко и его приходится постоянно менять.
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Sun Jul 17, 2005 9:30 pm (спустя 1 день 8 часов 6 минут; написано за 2 минуты 8 секунд)
Post subject:
|
|
Не то чтобы глюк, вроде как даже всё логично, но тем не менее если я в подписи к кнопке хочу использовать , например, чтобы сделать размер кнопки побольшето получаючто, естественно, даёт уже не тот эфект...
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Sun Jul 17, 2005 9:58 pm (спустя 27 минут; написано за 6 секунд)
Post subject:
|
|
Quote: |
Я понимаю, что эти соображения не слишком касаются конкретно FormPersister, т.к. используется output buffering -- нет проблемы с header. И для генерации изображений библиотека вряд ли подходит :) Но тем не менее, файл может быть включён даже если FormPersister использоваться не будет. Соответственно output buffering не будет обязательно включён. | output buffering не поможет, если в скрипте, в котором ранее в output вкрался пробел, придётся отдавать бинарный код, скажем, через passthru. Вообще, конечно же, zip-файл было бы скачать проще и удобней, жаль что пока нет такой возможности.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Mon Jul 18, 2005 1:32 pm (спустя 15 часов 34 минуты; написано за 2 минуты 12 секунд)
Post subject:
|
|
The One wrote: |
Это происходит из-за того, что в конце файла при копировании через буффер, после ?> добавяется один пробел. | Ну, знаете... Библиотекой все-таки пользуются программисты, которые об этом прекрасно знают. The One wrote: |
А нельзя сделать так, чтобы сервер не пропускал эти файлы через highlight? | Будет некрасиво тогда. Я не понимаю, что сложного вырезать последний пробел из кода?.. The One wrote: |
в привёденном куске кода также включается библиотека SemiParser. Путь к ней прописан жёстко и его приходится постоянно менять | В библиотеке нет жестких привязок к путям. Вы просто, по-моему, не используете удобную возможность include_path в PHP - почитайте докцументацию и просветлейте The One wrote: |
formpersister_start() | Такая функция была в ранних версиях, но ее забраковали на PEAR. В принципе, я считаю, справедливо. Fog wrote: |
<input type="submit" value="&nbsp; go &nbsp;"> | Да, это известный баг, который не совсем пока понятно, как лечить. В новых версиях что-нибудь придумаю.
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Jul 26, 2005 8:22 pm (спустя 8 дней 6 часов 50 минут; написано за 6 минут 2 секунды)
Post subject:
|
|
Дмитрий Котеров wrote: |
Ну, знаете... Библиотекой все-таки пользуются программисты, которые об этом прекрасно знают. | Пока в первый раз на это не наткнёшься, об этом не узнаешь -- пробел довольно таки невидимый символ :)) Дмитрий Котеров wrote: |
Будет некрасиво тогда. Я не понимаю, что сложного вырезать последний пробел из кода?.. | Ничего сложного, но когда можно этого не делать, то зачем делать? :) Дмитрий Котеров wrote: |
В библиотеке нет жестких привязок к путям | Отнюдь.Директория 'HTML/' -- это, по моему, уже достаточно жёстко. Дмитрий Котеров wrote: |
Вы просто, по-моему, не используете удобную возможность include_path в PHP | Вы правы -- не использую, но я в курсе что это и с чем его едят. :) Дмитрий Котеров wrote: |
Такая функция была в ранних версиях, но ее забраковали на PEAR. В принципе, я считаю, справедливо. | Ну, глобальную функцию я и сам считаю лишней. Но статический вызов, я думаю, был бы в самый раз. Дмитрий Котеров wrote: |
Fog писал(а): <input type="submit" value="&nbsp; go &nbsp;"> Да, это известный баг, который не совсем пока понятно, как лечить. В новых версиях что-нибудь придумаю. | Ширину кнопки лучше устанавливать с помощью CSS: Code (html): | скопировать код в буфер обмена | <input (december.com/html/4/element/input.html) type="submit" value="go" style="width: 100px;"> (december.com/html/4/element/.html) | Хотя саму проблему замены символов это не решает.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Wed Jul 27, 2005 10:30 am (спустя 14 часов 7 минут; написано за 20 секунд)
Post subject:
|
|
Гость wrote: |
Директория 'HTML/' -- это, по моему, уже достаточно жёстко. | Я все понял. RTFM вам! Стыд и позор. Читать pear.php.net/manual/en/standards.naming.php до полного просветления.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Sat Jul 30, 2005 7:32 pm (спустя 3 дня 9 часов 2 минуты)
Post subject:
|
|
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Sat Jul 30, 2005 7:40 pm (спустя 7 минут; написано за 58 секунд)
Post subject:
|
|
The One wrote: |
Так что вариант с zip (или не zip) архивом был бы очень кстати. | Статьи переехали вот сюда: dklab.ru/lib/
Там каждая статья снабжена ссылкой на zip-архив со всеми исходниками. Архивы генерируются "на лету" специальным скриптом, так что сложностей при обновлении исходников не возникает.
|
|
Back to top |
|
 |
6еpcepk
Заглянувший
Warnings: 2
Joined: 13 Jun 2005
Posts: 14
Карма: -8 поощрить/наказать
|
Posted: Wed Aug 03, 2005 10:14 am (спустя 3 дня 14 часов 33 минуты; написано за 17 секунд)
Post subject:
|
|
День добрый, Пользователь выбирает параметр из списка (который формируется по запросу данных из БД) и нажимает кнопку продолжить. После чего происходит открытие страницы где есть три списка (значение одного из которых было выбрано выше) и поле ввода. Как сделать так, чтобы первые два списка были CHECKED (третий таковым и является). Не через FormPersister думаю так: Code (php): | скопировать код в буфер обмена | // Выбираем данные для списка из таблицы, которая имеет структуру [id] [name] $result = mysql_qw(' SELECT * FROM table ') or die (www.php.net/die)(mysql_error (www.php.net/mysql_error)()); // / ?> <form action="" method="post"> <select name="Name"> <option value="">-- Chooose --</option> <? while ($data = mysql_fetch_array (www.php.net/mysql_fetch_array)($result, MYSQL_ASSOC)) { if ($data['id'] == $value) { ?> <option value="<?=$data['id']?>" CHECKED><?=$data['name']?></option> // Если ID равено выбранному значению, то выводим "помеченный" элемент списка <? } else {?> <option value="<?=$data['id']?>"><?=$data['name']?></option> // Иначе выводим "не помеченный" элемент списка <?} } ?> </option> </select> <input type="submit" name="doEdit" value="Edit"> </form> | Если такая проблема уже обсуждалась дайте ссылку, ключевые слова, которые я использовал для поиска, не дали ожидаемого результата. Сорри, если не совсем корректно сформулировал (: Спасибо.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Wed Aug 03, 2005 3:41 pm (спустя 5 часов 27 минут; написано за 16 секунд)
Post subject:
|
|
?
|
|
Back to top |
|
 |
6еpcepk
Заглянувший
Warnings: 2
Joined: 13 Jun 2005
Posts: 14
Карма: -8 поощрить/наказать
|
Posted: Wed Aug 03, 2005 6:47 pm (спустя 3 часа 6 минут; написано за 8 секунд)
Post subject:
|
|
Спасибо. То что надо!
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Sun Aug 07, 2005 7:50 pm (спустя 4 дня 1 час 2 минуты; написано за 2 минуты 23 секунды)
Post subject:
|
|
"Хьюстон, у нас проблемы" =) вставляю вот такую строкуна страницу, которая обрабатывается парсером форм, и после отправки данных получаю на этом месте Quote: |
<script>42f638ad83c451 | Работа скрипта на этом заканчивается, всё что идёт по коду дальше - не отображается. Между тегами скрипт может быть код, это на результат не влияет.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Mon Aug 08, 2005 9:43 am (спустя 13 часов 53 минуты; написано за 39 секунд)
Post subject:
|
|
Я думаю, у Вас слишком старая версия (какая, кстати?). Вот тут: dklab.ru/lib/HTML_FormPersister/demo/test/HTML_FormPersister/t_simple_fp.php
проблем не наблюдается, как видите. Давайте код для воспроизведения ошибки (Как правильно задавать вопросы: статья, обязательная к прочтению (citforum.ru/howto/smart-questions-ru.shtml)).
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Mon Aug 08, 2005 1:31 pm (спустя 3 часа 47 минут; написано за 4 минуты 58 секунд)
Post subject:
|
|
Версия самая последляя, специально чтобы проверить, скачал в zip'е из нового раздела. Код не приводил, потому что, собственно, нечего приводить, просто вставляем указанный код в страницу - получаем ошибку. Статью, конечно же, читал. Хотя, конечно же версию PHP следовало указать, прошу прощения. Проверял на 4.2.0, на пятёрке, кажется, всё в порядке. Файл примера /HTML_FormPersister/t_simple_fp.php с внесённым изменением: Code (php): | скопировать код в буфер обмена | <?php
error_reporting (www.php.net/error_reporting)(E_ALL);
//include_once "../../lib/config.php";
include_once "/usr.. ../lib/HTML/FormPersister.php";
ob_start (www.php.net/ob_start)(array (www.php.net/array)('HTML_FormPersister', 'ob_formPersisterHandler')); ?> <form method="get"> <input type="text" name="test[text][first]"> <input type="radio" name="test[radio]" value="first">first <input type="radio" name="test[radio]" value="second">second <input type="submit" value="Submit"> <script></script> </form> <xmp><?print_r (www.php.net/print_r)($_GET)?></xmp> <hr><?show_source (www.php.net/show_source)(__FILE__)?> |
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Mon Aug 08, 2005 2:51 pm (спустя 1 час 19 минут; написано за 20 секунд)
Post subject:
|
|
У меня этот код работает. PHP 4.3.11. Попробуйте обновить, 4.2 - уж очень старая версия.
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Mon Aug 08, 2005 4:29 pm (спустя 1 час 38 минут; написано за 1 минуту 49 секунд)
Post subject:
|
|
Так ведь не от меня зависит, хостинг такой. Тем более, если уж позиционируете скрипт как Quote: |
Особенно удобно его применять при модификации уже написанных скриптов | То это особенно актуально, так как старые скрипты порой стоят на старых серверах, админы которых не хотят иметь головную боль, которая может возникнуть от проблем с большим количеством старых скриптов, которые могут не пережить переезд на новую версию PHP.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Tue Aug 09, 2005 2:50 pm (спустя 22 часа 21 минуту; написано за 21 секунду)
Post subject:
|
|
Ну вы хоть проверить-то можете, точно дело в версии PHP или в чем-то еще?
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Wed Aug 10, 2005 1:03 pm (спустя 22 часа 12 минут; написано за 1 минуту 13 секунд)
Post subject:
|
|
Один и тот же код работает на пятёрке, но не работает на 4.2.0. Постараюсь сегодня/завтра поковыряться в исходнике, может найду чего...
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Thu Aug 11, 2005 10:56 am (спустя 21 час 53 минуты; написано за 34 секунды)
Post subject:
|
|
ОК, дистрибутив есть: www.filesearch.ru/cgi-bin/s?q=php-4.2.0-Win32.zip+&t=f&w=a&x=8&y=15
Попробую проверить. Но только вот сдается мне, что это ошибка в preg_split в ранних версиях PHP (или что-то вроде этого).
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Thu Aug 11, 2005 2:04 pm (спустя 3 часа 7 минут; написано за 6 минут)
Post subject:
|
|
Поправил баг с разрывом по тэгу <script> в PHP 4.2.0. Проблема была, действительно, из-за ошибки в preg_split(): она возвращала неправильный результат, если в строке присутствует символ с нулевым кодом chr(0). В новых версиях PHP это исправлено, в старых - нет. Изменилась только библиотека HTML_SemiParser (новая версия 1.93). Теперь она работает немного быстрее в случае, если тэги обработчиками не изменялись (она их только парсит, но не собирает обратно из кусков, в выдает оригинальные строковые представления). В результате теперь снова работает конструкция <input type="submit" value=" aaa "> (то же и для других тэгов, в атрибутах которых встречаются entities) - в случае, если обработчики не изменяют submit-кнопку, не превращается в &nbsp;, как было раньше. Это же касается и всех остальных entities в атрибутах, генериирующих unicode-символ вне диапазона текущей однобайтовой кодировки. В частности, должный уйти баги на форуме, когда было невозможно залогиниться с именем, содержащим иероглифы. Милости просим на тестирование: dklab.ru/lib/HTML_FormPersister/demo/test/HTML_FormPersister/
|
|
Back to top |
|
 |
Fog
Участник форума
Joined: 23 Mar 2003
Posts: 31
Карма: 0 поощрить/наказать
|
Posted: Fri Aug 12, 2005 12:39 pm (спустя 22 часа 34 минуты; написано за 7 секунд)
Post subject:
|
|
Спасибо! =)
|
|
Back to top |
|
 |
Alexey00
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Aug 15, 2005 10:32 pm (спустя 3 дня 9 часов 52 минуты; написано за 3 минуты 26 секунд)
Post subject:
|
|
Здравствуйте! Никак не могу разобраться. При отладке на месте, в Денвере все работает прекрасно и сообщений об ошибках нет. Но как только я выложил скрипты на удаленный сервер полезла вот такая многокилометровая "простыня" в error.log. Примерно понятно, что происходит. Но как с этим бороться никак не соображу. Подскажите, плз, в какую сторону копать. Версия HTML_FormPersister последняя. [Mon Aug 15 22:38:14 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 349 [Mon Aug 15 22:38:14 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Smarty/plugin/block.t_component.php on line 24 [Mon Aug 15 22:38:14 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Smarty/plugin/block.t_component.php on line 29 [Mon Aug 15 22:38:14 2005] [error] PHP Notice: Uninitialized string offset: 0 in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 387 [Mon Aug 15 22:38:14 2005] [error] PHP Notice: Uninitialized string offset: 0 in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 387 [Mon Aug 15 22:38:14 2005] [error] PHP Notice: Uninitialized string offset: 0 in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 387 [Mon Aug 15 22:38:14 2005] [error] PHP Notice: Uninitialized string offset: 0 in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 387 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of call_user_func(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Main.php on line 313 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of call_user_func(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Main.php on line 325 [Mon Aug 15 22:38:29 2005] [error] PHP Notice: Undefined index: argc in /www/vhosts/mysite.com/html/WEBINF/lib/Apache/Rewriter.php on line 89 [Mon Aug 15 22:38:29 2005] [error] PHP Notice: Undefined index: argv in /www/vhosts/mysite.com/html/WEBINF/lib/Apache/Rewriter.php on line 89 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of call_user_func(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 286 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 346 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/HTML/SemiParser.php on line 349 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Smarty/plugin/block.t_component.php on line 24 [Mon Aug 15 22:38:29 2005] [error] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/vhosts/mysite.com/html/WEBINF/lib/Subsys/Templier/Smarty/plugin/block.t_component.php on line 29
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Tue Aug 16, 2005 12:41 am (спустя 2 часа 9 минут; написано за 1 минуту 28 секунд)
Post subject:
|
|
Alexey00 wrote: |
Версия HTML_FormPersister последняя | Что-то мне это сильно сомнительно - по крайней мере, в последней версии на указанных в логах строках ничего подозрительного нет. И при чем тут книжный шаблонизатор, кстати? Не надо мусора, приведите только сообщения об ошибках в последней версии FormPersister-а. И еще одно: "Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file". Используйте translate.ru для перевода сообщения с английского.
|
|
Back to top |
|
 |
Alexey00
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Aug 16, 2005 10:27 am (спустя 9 часов 46 минут; написано за 3 минуты 34 секунды)
Post subject:
|
|
Прошу извинить за мусор. Неправда была моя. После установки * HTML_FormPersister: in-place "human-expectable" form tags post-processing. .......... * version 2.1 of the License, or (at your option) any later version. * HTML_SemiParser: selective fast-and-dirty tags processing via callbacks. ........... * version 2.1 of the License, or (at your option) any later version. сообщений об ошибках HTML_FormPersister'а нет. У хостера - PHP Version 4.3.2 allow_call_time_pass_reference Off Off Сообщения об отключении передачи переменных по ссылке в файлах шаблонизатора WEBINF/lib/Subsys/Templier/Main.php on line 325, on line 313 и WEBINF/lib/Subsys/Templier/Smarty/plugin/block.t_component.php on line 25, on line 30 идут
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Tue Aug 16, 2005 11:05 am (спустя 37 минут; написано за 45 секунд)
Post subject:
|
|
Alexey00 wrote: |
version 2.1 of the License | Это не версия библиотеки, а версия лицензии LGPL. Она не менялась вот уже лет 5 как. Версия библиотеки ниже. Alexey00 wrote: |
У хостера - PHP Version 4.3.2 allow_call_time_pass_reference Off Off | Во-первых, почему такой старый? А во-вторых, никто php.net/ini_set еще не отменял.
|
|
Back to top |
|
 |
|