[Armadillo:00318] Re[2]: Armadillo-J での getenv 関数
Kenji Hirano
email@hidden
2005年 5月 27日 (金) 10:06:18 JST
お世話になっております,平野と申します.
On Thu, 26 May 2005 16:53:18 +0900
"nakai" <email@hidden> wrote:
> AJでsetenv、getenvは問題なく動きます。
返答ありがとうございます.
結果から言うと,FTP での転送モードを自動に設定していたので
拡張子が cgi だった為にアップする際 ASCII モードで転送して
いたようでした.初歩的なミスで恥ずかしい限りです...
バイナリモードで転送することで [Armadillo:00291] でのテスト
プログラムもお書きいただいたサンプルも動作しました.
> また、thttpdを使用してcgiによりgetenv、setenvを実行するには問題がありました。
> cgiでgetenvを実行したところ、必ずnullとなります。
> (setenvしてからgetenvでは問題なく変数を取得できます。)
thttpd での動作確認をしたところ,下記のもので動作を確認できました.
参考になれば幸いです.
-- 入力用 html --
//////////////////////
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=Shift_JIS" http-equiv="content-type">
<title>Input TEST</title>
<style type="text/css">
<!--
SPAN.bold{
font-weight: bold;
}
-->
</style>
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<h1 style="font-family: lucida sans unicode; text-align: right;">Input
TEST</h1>
<hr><span class="bold"></span>
<form method="get" action="get_test.cgi"><input name="mode"
value="additem" type="hidden"> <span class="bold">テスト</span> <input
size="24" name="new_item" type="text"> <span class="bold">Value</span>
<input size="8" name="new_price" type="text"> <input value="Write"
type="submit">
</form>
<hr>
</body>
</html>
-- 出力用 cgi (get_test.c) --
//////////////////////
#include <stdio.h>
#include <stdlib.h>
char null_str[]="(NULL)";
char *getenv1(const char *str_);
char * getenv1(const char *str_)
{
char *ans=NULL;
ans=getenv(str_);
if (ans==NULL)
return null_str;
else
return ans;
}
main()
{
int len;
printf("Content-type: text/html\n\n");
printf("<HTML><HEAD></HEAD><BODY>\n");
printf("%s<BR>\n",getenv1("QUERY_STRING"));
printf("</BODY></HTML>\n");
}
///////////////////////////////
なお,上記のソースは
http://www2k.biglobe.ne.jp/~motoi/cdecgi02.html
を参考にさせていただきました.
armadillo メーリングリストの案内