如何使Perl脚本仅在用户单击链接/按钮等时执行

时间:2015-10-01 03:23:53

标签: perl http

即使我们在浏览器地址栏中传递了URL,我也有很少的Perl脚本可以执行。我只是想阻止这种行为。我想要的是当用户点击附加脚本的按钮或链接时,只有他们应该执行。

www.example.com/cgi-bin/abc.cgi --- Should not work.

<button on-click="/cgi-bin/abc.cgi"> Execute me </button> -- it should work

怎么做?

1 个答案:

答案 0 :(得分:4)

你可以这样做,有两种方法可以解决它。 一,当单击按钮时,您可以使用POST方法提交表单,并且只有在使用POST方法调用脚本时才能执行代码,例如:

HTML:

<form method="POST" action="/cgi-bin/abc.cgi"><input type="submit" name="submit_button" value="Execute me"><form>

Perl代码:

if($ENV{REQUEST_METHOD} eq 'POST') {
   ## execute special code
}

二,您可以在查询字符串中检查参数:

HTML:

<input type="button" value="Execute me" onClick="window.location.href='/cgi-bin/abc.cgi?doExecute=1';">

的Perl:

use CGI;

my $cgi = new CGI;

if(defined $cgi->param('doExecute') && $cgi->param('doExecute')) {
   ## execute special code
}

我希望这会有所帮助。