この講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです。![]() |
||
FLASH講座 ーアクションスクリプトの実践的事始めー
|
||
| 「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/</</g; $value =~ s/>/>/g; $value =~ s/"/"/g; $value =~ s/\r\n/\n/g; $value =~ s/\r/\n/g; $value =~ s/<>/<>/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されたアドレスにも送信される |
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
|
||
| HOME Flash講座総リスト | ||
![]()