環境変数

CGI は環境変数というものを受け取って,ユーザの情報を知ります。 環境変数を調べる関数は getenv() です。 この関数を使うには,最初に #include <cstdlib> と宣言しておきます。

たとえば次のようにします。

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    char* x = getenv("HTTP_REFERER");
    if (x) {
        cout << "<p>あなたは "
             << x
             << " から来ましたね\n";
    }
    char* y = getenv("HTTP_USER_AGENT");
    if (y) {
        cout << "<p>あなたのブラウザは "
             << y
             << " ですね\n";
    }
    char* z = getenv("HTTP_ACCEPT_LANGUAGE");
    if (z) {
        cout << "<p>あなたの読める言語は "
             << z
             << " ですね\n";
    }
}

最後の例では ja が日本語,en が英語です。 これを使えばあいさつを変えることができます。

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    char* z = getenv("HTTP_ACCEPT_LANGUAGE");
    if (z && strncmp(z, "ja", 2) == 0) {
        cout << "<p>こんにちは\n";
    } else {
        cout << "<p>Hello.\n";
    }
}

リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp

Last modified: Thu Dec 16 22:45:43 1999