入力データを post で転送する

form から入力したデータを post で転送して、ファイル(log.txt)に保存します。

プログラムの説明

  1. Form から入力されたデータをサーバーに転送する方法には GET と POST があります。
    GET で送信できる TEXT の最大長は256文字で、送信されたデータが丸見えになります。
    POST で送信すると長さの制限が無くなり、データも見えなくなります。
    GET で送信するプログラムは FORM から呼び出す を参照して下さい。
    <form action="logpost.cgi" method="post">
      <input type=text name="inputtext">
      <input type=submit value="記入したら押してください">
    </form>
    
  2. 転送されたデータをファイル(log.txt)に追加する logpost.cgi です。
    post で転送されたデータは標準入力装置(STDIN)から受け取ります。
    文字列長は、環境変数('CONTENT_LENGTH')に設定されています。
    #!/usr/local/bin/perl
    print "Content-type: text/html\n\n";
    $file = "log.txt";
    read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    open (LOG, ">>$file");
    print LOG "$buffer\n";
    close (LOG);
    print "[$buffer] を log.txt に保存しました\n";
    
  3. log.txt は追加書き込みモードでオープンします。
    open (LOG, ">>$file");
    $buffer をファイルに追加します。
    print LOG "$buffer\n";
  4. log.txt の確認は サーバーのファイルを入力 を参照して下さい。
    GET の時と同様に全角文字を使ったときは URL Decode が必要です。

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Perl)