2

我在 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 服务器错误
如何修复?
nsd -V
AOLserver/4.5.1 (aolserver4_5)
CVS 标签:$Name:aolserver_v45_r1 $
内置:2014 年 4 月 2 日 08:27:37
Tcl 版本:8.6
平台:linux

4

1 回答 1

5

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

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

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

于 2015-05-21T12:48:57.767 回答