この講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです。

FLASH講座 ーアクションスクリプトの実践的事始めー
FLASHとCGI間のやり取りの仕方
 

 「FLASHによるフォームメール(cgiのsendmail使用)」のスクリプトを例に、FLASHとcgiの連携(交信)について簡単にご説明します。
FLASH のスクリプト
_root.submit_btn.onRelease = function() {
  sdData = new LoadVars();
  rvData = new LoadVars();
  rvData.onLoad = function(success) {
    if (success) {
      outBox5.text = this.msg;
    }
  };
  sdData.mailto="aaa@bbb.ne.jp";
  sdData.email=$email;
  sdData.subject = $subject;
  sdData.body = $body;
  sdData.sendAndLoad("sendmail4flash.cgi", rvData, "POST");
};
LoadVarsクラスのインスタンス作成
送信用
受信用
cgiからの読み込み
もし成功したら、
outBox5にthis.msgtを表示
(this.msgは、cgiからrvDataに読み込んだ変数msgに格納されたテキスト文)

cgiに送るデータを並べて記載
(複数可)

送信データを"POST"形式で送り、
戻り値をrvDataに格納する
)FLASHからCGIにデータを送るには、上記のように sdData.A = X; sdData.B = Y; と言う形式で記述するが、
   HTMLのinput文でいうと、AやBの部分が name にあたり、XやYの部分が value にあたる。
cgi のスクリプト (このcgiをお使いの場合は以下のscriptをコピーし、テキストエディターなどに貼り付けてください)
            なお、jcode.plとmimew.plが必要です(検索すればDLサイトはすぐ見つかります)。
#! /usr/bin/perl

# jcode,mimew
require './jcode.pl';
$mimer = './mimew.pl';

# sendmailのパス
$sendmail = '/usr/lib/sendmail';

#*** 設定終了 ****

# MAIN

&dataDecode();
&sendMail();

print "Content-type: text/plain\n\n";
print 'msg=FINISHED';
exit;

#デコード

sub dataDecode
{
my ($query, $pair);

if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query = $ENV{'QUERY_STRING'};
}

foreach $pair (split(/&/, $query)) {
my ($key, $value) = split(/=/, $pair);

$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack('H2', $1)/eg;
&jcode'convert(*value, "sjis", "", "z");
&jcode'h2z_sjis(\$value);

$value =~ s/&/&/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/"/&quot;/g;
$value =~ s/\r\n/\n/g;
$value =~ s/\r/\n/g;
$value =~ s/&lt;&gt;/<>/g;

if ($key eq 'mailto') { $mailto = $value; }
if ($key eq 'email') { $email = $value; }
if ($key eq 'subject') { $subject = $value; }
if ($key eq 'body') { $body = $value; }
}
}

#エラー

sub printError
{
$error = $_[0];
print "Content-type: text/plain\n\n";
print "msg=error&error_message=$error&";
exit;
}


#メール送信

sub sendMail
{
# MIMEエンコード
if (-e $mimer) {
require $mimer;
$subject2 = &mimeencode($subject);
} else {
$subject2 = $subject;
&jcode'convert(*subject2,'jis');
}

open(MAIL, "| $sendmail -t") || &printError('メールの送信に失敗しました。');
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
print MAIL "Subject: $subject2\n";
print MAIL "\n";
print MAIL "Date: $dat2\n\n";
print MAIL "$body";
print MAIL "\n";
close (MAIL);

}
perlへのパスはサーバーによる






sendmailへのパスはサーバーによる








text/plain にする
msg=でFLASHに書き出す
ここでは、FINISHEDというテキストを出力しているが、$msgというような変数で出力したい場合はダブルクオーテーション””を使う
print "msg=$msg";

























FLASHから送られたデータを
$付きの変数として格納






























メール送信

print MAIL"Cc: $email\n"; を加えると
inputされたアドレスにも送信される








- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
このサイトで使用しましたflashソフトはflash mx 2004年版(Flash Japan)です。

flash講座(=フラッシュ講座)は、Yoshioka氏により更新し続けられ、flash素材(flashアニメ、スクリプト)を少しずつ制作下さいました。
スクリプトをコピーペーストして動画flash(動画フラッシュ)を保存したり、携帯flash(待受flash)として取り込んで楽しんでいただいております。 師は、WEBデザイナーとして、CGIやhtmlファイルの作成、パソコン塾講師として活躍中に更新され、独立して今もコツコツと継続してこられました。 新しいadobe flash時代に入りましたが、今も愛好家は多く存在します。  これからも沢山の方々に、ご理解いただけることができれば幸せです。 2007年監修後の「flash講座」をよろしくお願いいたします。                                   (by Hiraoka)
HOME   Flash講座総リスト