0

Perl CGI で書かれた Web レポートがあります。フラットファイル DB から絶えず変化するデータを取得し、現在のステータスを Web ページの表に表示します。そのすべてのデータを送信前に編集できる電子メールにプッシュするリンクをクリックできるようにしたいと考えています。

これは、ページ上の HTML の最後のチャンクとして持っているものです。「Go To Status」リンクは機能しますが、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 の途中に埋め込まず、テンプレート言語 (テンプレート ツールキットなど) を使用します。


おそらく、アンカーにもコンテンツを配置したいと思うでしょう。

于 2013-10-10T20:03:49.413 に答える