首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从cgi创建筛选器,未传递环境变量

从cgi创建筛选器,未传递环境变量
EN

Stack Overflow用户
提问于 2018-04-10 03:37:39
回答 2查看 31关注 0票数 0

我有一个编译的C程序,它是一个cgi,如果我用适当的GET或POST请求直接从php网页调用它,它工作得很好。我正在尝试让一个php程序调用cgi,捕获数据并在将数据回显给用户之前对其进行修改。

我试过了:

代码语言:javascript
运行
复制
<?php
    foreach($_REQUEST as $i => $j)
        apache_setenv($i,$j);
    $out = shell_exec("cgi-bin/Mycgi.cgi");
    // will modify out here
    echo $out;
?>

但是Mycgi.cgi永远看不到环境变量。我完全误解了这应该是如何工作的吗?我哪里错了?

EN

回答 2

Stack Overflow用户

发布于 2018-04-10 06:41:18

在脚本中调用shell_exec之前,必须使用putenv显式设置环境变量。

代码语言:javascript
运行
复制
putenv("VARIABLE=value");
票数 0
EN

Stack Overflow用户

发布于 2020-07-31 00:08:01

我的解决方案是:在php中建立一个包含以下信息的字符串(QUERY_STRING是and示例),效果很好。

代码语言:javascript
运行
复制
$qs = 
    'env REQUEST_METHOD=GET QUERY_STRING="Birthday=15&BirthMonth=3&BirthYear=1988" ../../cgi-bin/mycgi.cgi';
$output = '';
exec($qs,$output);

这就是它的全部。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49740424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档