无法通过perl上的html-forms发送和发送http请求

时间:2014-01-07 22:48:48

标签: forms perl post get http-request

我的网站上有切换结构。
我处理get请求,并根据查询中的内容加载不同的脚本。脚本中有switch-instruction。 例如。

链接:site.com/ - 打印类似“按某个菜单按钮”

链接:site.com/?mode=users - 加载脚本users.pl

链接:site.com/?mode=address - 加载脚本addreses.pl

链接:site.com/?mode=users&action=add - 加载脚本users.pl,在这个脚本中,我有另一个开关,它根据get-parameter'action'做了不同的事情。

_/?mode=users&action=add_我有表格。此形式的操作是none(action =''),method = post。因此,当我按下“发送”按钮时,必须使用后置参数刷新此页面。对?右。

问题:当我按下发送按钮index.pl正在加载,而不是同一页面。就像没有get参数一样。

我尝试打印所有参数,哪个页面接收

@names = $params->param;
print @names;

它是打印后参数,我在表单中输入,但不是从链接打印get参数。链接相同: /?mode = users& action = add

我试图打印$ENV{'QUERY_STRING'}; - 显示所有参数。发帖和获取以及他们的名字都是正确的。 有什么问题?我发送表单时$ENV{'HTTP_REQUEST'};只是'发布',而当我只是用表单加载页面时,'get'
Perl无法同时发送get和post请求?我该怎么办?
这就是我使用查询字符串的方式:

$params=new CGI;
$action=$params->param("mode"); # or $action=$params->param("action");

并切换:

use feature 'switch';
for ($action) {
    when ('users') {
       do "./pages/users.pl";
    }

    .... some more 'when'

    default { 
       print 'select something'; 
    }
}

2 个答案:

答案 0 :(得分:0)

尝试使用问号前面的斜线 例如改变     ?/模式=用户&安培;行动=添加 至     ?模式=用户&安培;行动=添加

答案 1 :(得分:0)

我真的不知道为什么它不起作用,但我找到了下一个解决方案。例如,链接是/?mode = users& action = add(它是一个表单)。我只是将2添加到表单中:

<input type='hidden' name='mode' value='users'>
<input type='hidden' name='action' value='add'>