0

我有一个用 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";
}

(一旦我弄清楚这一点,我会将变量与数据一起放入电子邮件中)

谢谢,贾里德

4

1 回答 1

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)。


您可能也想在锚点中放置一些内容。

于 2013-10-10T20:03:49.413 回答