我的网站上有切换结构。
我处理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';
}
}
答案 0 :(得分:0)
尝试使用问号前面的斜线 例如改变 ?/模式=用户&安培;行动=添加 至 ?模式=用户&安培;行动=添加
答案 1 :(得分:0)
我真的不知道为什么它不起作用,但我找到了下一个解决方案。例如,链接是/?mode = users& action = add(它是一个表单)。我只是将2添加到表单中:
<input type='hidden' name='mode' value='users'>
<input type='hidden' name='action' value='add'>