第85章 CGIプログラミング その6


さて、今回はCGIを利用して簡単な「おみくじ」を作ってみます。



左の図で、「占う」ボタンを押すと・・・



「大吉」「吉」「小吉」「凶」「大凶」のいずれかが表示されます。

これらの出る確率は皆同じです。



では、呼び出し側のHTMLを見てみましょう。

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>おみくじ</TITLE>
</HEAD>
<BODY>
<CENTER>
下のボタンを押すと本日の運勢を占うことができます
<FORM METHOD="GET" ACTION="kuji01.cgi">
<INPUT TYPE="SUBMIT" VALUE="占う">
</FORM>
</CENTER>
</BODY>
</HTML>
                      別にどうということもないですね。

「占う」ボタンが押されたらkuji01.cgiが実行されます。

実際にはcgiのおけるディレクトリはxxxx/cgi-bin/などのように サーバーにより決まっています。

では、cgiプログラムを見てみましょう。

// kuji01.c

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
    char kuji[5][8] = {"大吉", "小吉", "吉", "凶", "大凶"};
    char color[2][16] = {"#ff0000", "#000000"};
    int co, ku;

    srand((unsigned int)time(NULL));

    printf("Content-Type:text/html\n\n");
    printf("<HTML>\n<HEAD>\n<TITle>おみくじ</TITLE>\n</HEAD>\n<BODY>");

    ku = rand() % 5;
    if (ku == 4)
        co = 0;
    else
        co = 1;
    printf("<CENTER>\n");
    printf("<FONT SIZE=\"5\" COLOR=\"%s\">", color[co]);
    printf("あなたの運勢は%sです", kuji[ku]);
    printf("</FONT>\n");
    printf("<P><A HREF=\"index.html\">Back</A></P>");
    printf("</CENTER>\n");
    printf("</BODY>\n<HTML>\n");


    return 0;
}
標準出力に「Content-Type:text/html」と出力してその後改行を2回出力します。 後は、普通にHTMLを出力すればよいですね。

このプログラムでは、大凶の時は赤字で表示するようにしてあります。

運勢により異なる画像を表示するようにするのもよいですね。また、各運勢が同じ確率で 出現するのではなく、大凶や大吉は滅多に出ないようにするにはどうしたらよいでしょうか。 改良してみてください。


[Index][総合Index] [Previous Chapter] [Next Chapter]

Update Jan/04/2003 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。