空 TCL 字符串导致不可打印字符导致 Project-Open 崩溃

Tho*_*ues 2 string tcl openacs aolserver project-open

我在 ubuntu 上安装了 Project Open。

每当 tcl 中有一个空字符串时,HTML 表单就会包含一个不可打印的字符。

什么可能导致问题?网络服务器是 openACS / AOLServer

TCL代码:set email ""(index.tcl)

ADP代码: email="@email@" (index.adp)

HTML 输出: <input type="text" name="email" value="?"

(当我将网页另存为 htm 文件时, ? 在十六进制编辑器中显示十六进制代码 00 - 不确定这是否正确。无论如何,“”之间不应该有任何字符作为值)

更新 1:
ADP 代码:email="t@email@t" (index.adp)
HTML 输出:<input type="text" name="email" value="tt"

所以它似乎真的是一个空字符串。这在 ADP 文件中被搞砸了。

更新 2:
根据 evil otto 的回答,这似乎是 AOL Server 的错误,
如何修复?
nsd -V
AOLserver/4.5.1 (aolserver4_5)
CVS 标签:$Name:aolserver_v45_r1 $
内置:2014 年 4 月 2 日 08:27:37
Tcl 版本:8.6
平台:linux

evi*_*tto 5

在 AOLserver 的某些版本(从 4.5.0 到上次发布,但在 cvs HEAD 中修复)中存在一个已知错误,该错误导致ns_quotehtml在处理空字符串时返回无效数据。OpenACS 检测并解决此错误,但有一个版本没有。

受影响版本的解决方法是更改ns_quotehtmlad_quotehtmlin template::adp_compile,定义在packages/acs-templating/tcl/parse-procs.tcl

请参阅http://openacs.org/forums/message-view?message_id=4078333

  • @ThorstenNiehues 这是该错误的补丁。http://cvs.openacs.org/browse/OpenACS/openacs-4/packages/acs-templating/tcl/parse-procs.tcl?r2=1.48.2.1&amp;r1=1.48 (3认同)