gpt4 book ai didi

perl - 如何在 perl mason CGIHandler 中获取 QUERY_STRING?

转载 作者:行者123 更新时间:2023-12-01 03:49:37 24 4
gpt4 key购买 nike

我需要在一个 Mason 站点上进行一些维护,该站点在一家托管公司运行良好,但需要转移到另一家。新的托管公司不支持 ApacheHandler,所以我将代码更改为 CGIHandler。

不幸的是,我不再将 QUERY_STRING 元素填充到 mason 环境中,这让它有点困难!

我从这里得到了大部分处理程序代码:http://joe.pepersack.net/code/site-mason_handler.pl

处理程序的设置如下:

$h = HTML::Mason::CGIHandler->new(
comp_root => $mason_root,
data_dir => $mason_data,
allow_globals => $::MASON_GLOBALS,
error_mode => "output",
default_escape_flags => "h"
);

在互联网上进行一般搜索并没有给我带来任何好处......

有谁知道 ApacheHandler 和 CGI​​Handler 之间的参数传递是否有区别?如果它们在其他地方被吃掉,我如何测试 CGIHandler 是否首先找到了参数?

任何帮助(或其他主要问题)将不胜感激。这个网站是为青年筹款人准备的,所以目前没有太多时间/支持来重写它。

最佳答案

基于此 http://marc.info/?l=mason&m=96320172801620&w=3 ) 和我的经验,它应该在 $ENV{QUERY_STRING} 中可用。

也许您的设置厌倦了直接从 Apache::Request 使用它,或者 CGI 服务器没有自动设置它?

来自 http://cpansearch.perl.org/src/JSWARTZ/HTML-Mason-1.46/htdocs/CGIHandler.html :

This module also provides an $r request object for use inside components, similar to the Apache request object under HTML::Mason::ApacheHandler, but limited in functionality.



基于此: http://redmine.lighttpd.net/projects/lighttpd/wiki/MasonRecipe/11
### this seems to be necessary as lighttpd does not provide the PATH_INFO and the QUERY_STRING environment variables
## right' way to parse the REQUEST_URI out into PATH_INFO and QUERY_STRING
my $uri = $ENV{REQUEST_URI};
if ($uri =~ /\?/) {
$uri =~ /^(.*?)\?(.*)/;
$ENV{PATH_INFO} = $1;
$ENV{QUERY_STRING} = $2;
} else {
$ENV{PATH_INFO} = $uri;
$ENV{QUERY_STRING} = "";
}

关于perl - 如何在 perl mason CGIHandler 中获取 QUERY_STRING?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23987682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com