问题标签 [cgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
1677 浏览

perl - Perl:CGI 和 DBI 模块的变量范围问题

我遇到了以前从未遇到过的变量范围问题。我正在使用 Perl 的 CGI 模块和对 DBI 的 do() 方法的调用。这是代码结构,简化了一点:

#1 占位符变量评估为好像它未初始化。其他两个占位符变量有效。

问题:为什么 %in 散列在 do() 的上下文中不可用,除非我将它用双引号(#2 占位符)括起来或将值重新分配给新变量(#3 占位符)?

我认为这与 CGI 模块的 ReadParse() 函数如何将范围分配给 %in 散列有关,但我不太了解 Perl 范围,无法理解为什么 %in 在顶层可用,但不能在我的内部使用() 陈述。

如果有人确实了解范围界定问题,是否有更好的方法来处理它?将所有 %in 引用用双引号括起来似乎有点混乱。为每个查询参数创建新变量是不现实的。

为了清楚起见,我的问题是关于变量范围的问题。我意识到 ReadParse() 不是使用 CGI 获取查询参数的推荐方法。

我正在使用 Perl 5.8.8、CGI 3.20 和 DBI 1.52。提前感谢任何阅读本文的人。

@Pi 和 @Bob,感谢您的建议。预先声明 %in 的范围没有效果(我总是使用严格的)。结果与之前相同:在 db 中,col1 为空,而 cols 2 和 3 设置为预期值。

作为参考,这里是 ReadParse 函数(见下文)。它是 CGI.pm 的一部分的标准函数。根据我的理解,我并不是为了设置范围而初始化 %in 哈希(除了满足严格之外),因为在我看来该函数可以处理:

我想我的问题是在 do() 的上下文中获取 %in 哈希的最佳方法是什么?再次感谢!我希望这是为我的原始问题提供附加信息的正确方法。

@Dan:我听说过 &ReadParse 语法。我通常会使用 CGI::ReadParse() 但在这种情况下,我认为最好坚持CGI.pm 文档的确切方式。

0 投票
3 回答
460 浏览

python - 在 Python 3.0 中,标准库中的所有内容都会将字符串视为 unicode 吗?

既然 Python(从 3.0 开始)是基于 unicode 的,我对标准库的行为方式有点困惑。CGI 和 urllib 等模块会使用 unicode 字符串,还是会使用新的“字节”类型并仅提供编码数据?

0 投票
2 回答
4601 浏览

cgi - 是否有 CGI 的替代品(我真的需要一个)吗?

我正在设计一个应用程序,它将由 3-4 个服务组成,这些服务作为单独的进程运行并由合适的 IPC 链接。该系统将有一个网络界面,我想使用那里的任何网络服务器。

应该在某个 URL 下访问 Web 界面,该 URL 允许同一 Web 服务器上的其他 URL 执行完全不同的操作。我打算使用该 URL 下面的路径来指定 Web 界面应该做什么。它具有供其他应用程序通过网络使用以及供人类在浏览器中进行交互的设施。

袖手旁观,我的工作如下:

  • 让网络服务器为它收到的每个请求启动一个 CGI 进程(如 Apache 中的 SetHandler)
  • 让 CGI 连接到 IPC
  • 让它从后端服务中得到它需要的任何东西
  • 让 CGI 根据服务的答案返回 HTML / XML 和任何 HTTP 状态

现在,我真正想要的是避免前两个步骤,或者如果我不能,避免第二个步骤,因为我担心我会在不必要的开销上浪费性能(来自其他应用程序的请求可能很频繁)。

例如,PHP 可以打开与 MySQL 数据库的持久连接,这些连接在脚本运行时仍然存在,并且下次不需要重新创建,尽管我不知道它们实际上是如何做到的。另外,据我了解,Apache 模块会在服务器启动时加载一次,因此这可能会删除第一步,但会将我与 Apache 联系起来。

那么,有什么好方法可以将特定 URL 的处理程序挂接到不同的网络服务器?我不想处理 HTTP,否则我可能只是使用代理设置到第二台服务器,但它似乎是在重新发明轮子。如果您认为 CGI 很好,并且有处理大量类似结构请求的示例,请告诉我。

0 投票
5 回答
600 浏览

perl - 将 CGI 迁移到框架的最佳方法是什么?

我有一个在 perl CGI 中运行的大型 Web 应用程序。它运行正常,写得很好,但是就像过去所做的那样,所有的 html 都是在 CGI 调用中硬编码定义的,所以你可以想象,它很难维护、改进等等。所以现在我想开始添加一些模板并与框架(催化剂或 CGI::application)集成。我的问题是:这里有人有这样的经历吗?有什么需要注意的吗?我知道使用这两个框架我都可以运行本机 CGI 脚本,所以这很好,因为我可以同时运行这两个(CGI 本机广告“框架化”代码)而不会造成任何创伤。有小费吗?

0 投票
4 回答
1152 浏览

perl - 如何处理 HTTP 文件上传?

我将如何编写一个通过 HTTP 发布接收文件并将其保存到文件系统的 Perl CGI 脚本?

0 投票
3 回答
17729 浏览

c# - Redirect Standard Output Efficiently in .NET

I am trying to call php-cgi.exe from a .NET program. I use RedirectStandardOutput to get the output back as a stream but the whole thing is very slow.

Do you have any idea on how I can make that faster? Any other technique?

0 投票
2 回答
5698 浏览

perl - 如何将国际化添加到我的 Perl 脚本?

我正在考虑为用 Perl 编写的成熟 CGI 应用程序引入多语言支持。我最初考虑使用 Perl 散列(存储在磁盘上)为翻译文件推出我自己的解决方案,但后来我遇到了一个 CPAN 模块,它似乎可以满足我的需求(i18n)。

有人对 Perl 的国际化(特别是 i18n CPAN 模块)有任何经验吗?i18n 模块是多语言支持的首选方法,还是我应该重新考虑自定义解决方案?

谢谢

0 投票
4 回答
1335 浏览

security - 基于 CGI 的 Web 应用程序的安全性如何?

使用 CGI 的一个众所周知的主要缺点是网络服务器性能差。但是基于 CGI(主要是 C/C++)的应用程序有多安全?基于 C/C++ 构建的 CGI 架构中是否存在任何重大安全漏洞?

我想知道一些基于 CGI 的网络应用程序/网站的现实生活实现。我知道的一个是 javaranch.com。

0 投票
1 回答
807 浏览

apache - 将 cgi 更改为 Fastcgi

将 C/C++ cgi 应用程序更改为 Fastcgi 有多可行?这是否只需要更改代码?还是需要更改 apache 服务器的设置?

改变的明显好处是什么?从 cgi 到 Fastcgi 的变化值得这些好处吗?

0 投票
3 回答
719 浏览

perl - 如何提取文本,保存,然后输出到网络?

例如,我在“MyFile.txt”中搜索HF50(HF$HF),以便提取的数据必须保存到“save.txt”。现在再次提取“save.txt”上的数据并在我的表格中填充参数和输出。但是当我尝试代码时,我没有输出并且“save.txt”是空白的。?

无论我输入什么,Var $HF 都无法识别。请帮忙。


= MyFile.txt 数据=
1,HF50,13-OCT-08,04:17:53,761503BZZGR-62,B2761503BP22.EVA,DWP,DWP,校准
2,HF60,13-OCT-08,04:17:53 ,761503BZZGR-62,B2761503BP22.EVA,DWP,DWP,校准
1,HF50,13-OCT-08,04:17:53,761503BZZGR-62,B2761503BP22.EVA,DWP,DWP,校准