我有一份用PERL CGI编写的网络报告。它从平面文件数据库中提取一些不断变化的数据,并在网页的表格中显示当前状态。我希望能够点击一个链接,将所有数据推送到可以在发送之前编辑的电子邮件中。
这就是我在页面上的最后一块HTML。 “转至状态”链接有效,但mailto:xxx@xx.com链接导致服务器错误。出于某种原因,“mailto”无法在CGI脚本中运行吗?它被渲染为HTMl所以我不确定为什么它不会。
sub EndHtml {
print "<P align=right> <a href='http://www.xxx.com/~a0868183/cgi-bin/xxx.cgi'>Go to Status</a> </p>\n";
print "<p align=right> <a href='mailto:xxx@xx.com'></a>Send EOS</p>\n";
print "</BODY></HTML>\n";
}
(一旦我搞清楚,我会将带有数据的变量放入电子邮件中)
谢谢, 贾里德
答案 0 :(得分:4)
@
在双引号分隔字符串中具有特殊含义。
始终使用以下命令启动脚本:
use strict;
use warnings;
然后你会收到警报(如果你读了你的日志文件):
Possible unintended interpolation of @xx in string
然后你可以逃脱它:
mailto:xxx\@xx.com
或使用单引号字符串:
print q{<p align=right> <a href='mailto:xxx@xx.com'></a>Send EOS</p>\n};
或者不要将HTML嵌入到Perl的中间并使用模板语言(如Template Toolkit)。
您可能也希望在锚点中添加一些内容。