D0812151 FLASH側からPHP側へ情報を送信
Name Akiyoshi
Date 2008年12月15日 (月) 10時51分
Message こんにちは。Akiyoshiです。
以前はFLVプレイヤーの制作でお世話になりました。
本当にありがとうございました。

今回は、FLASHでアンケートフォームを作ろうと思っています。
それで質問なんですが、


「PHP側に、FLASH内で入力された情報を送信するには
どうすればよいでしょうか?」


FLASHで、No.616のような問題(アンケート)を作り、
回答をPHPに送信して別ウィンドウで確認。
というような構成にしたいと考えております。

詳しく書くと。。。

FLASH内の問いに答えていき、
最後に「送信ボタン」を押すと別ウィンドウが立ち上がり、
自分の答えが入力されている状態(アンケート部分の確認)と、
そして、名前と年齢を入力し、今度はそれをフォームメールで送信。

という流れです。
Response 01
2008年12月24日 (水) 00時14分> joy   
Akiyoshiさん、
直接の回答にはなりませんが、(私自身、前からやってみなければと思っていた)Flashをユーザーインタフェースにして、必要項目を入れてもらい、PHP5に変数を引き渡し、メールを送信するサンプルを作ってみました。↓のURLにあります。
説明が長くなりますので、詳しい説明は、省きますが、FLAとPHPを同梱し、それにできるだけ、コメントを記載しておきましたので、それを参考にしてください。

基本は、
1)LoadVars.sendandLoad("xxx.php",LoadVars);で、該当phpに変数を送り込み、phpで処理した結果を、このLoadVarsで受け取って、処理しても良いし、別に定義した、LoadVarsで受け取って、処理してもいいです。サンプルでは、2つLoadVarsを設置して処理してます。

2)php側では、Flashから送られて来る、変数を処理して、mb_send_mail();でメールを送信してます。ローカルのApache/php.iniの調整では文字化けしませんが、↓のサーバー経由ですと、上手く、encodingできてなく、文字化けしますので、半角英数字で、Flash側にインプットして試してみてください。
*サーバー側encodingの上手い処理方法は、もう少し、phpを調べてみますが、有識者の回答があるといいですね。

とりあえず、文字化け以外は、動くようです。

本来の課題は、以上を基本に、練り直せば、可能と思われます。
http://joy.life.coocan.jp/answers/flashmail_dog/flashmail.html
Response 02
2008年12月25日 (木) 20時29分> Akiyoshi   
>joyさま

ご回答ありがとうございます!
FLVプレイヤーの際にはお世話になりました。
ご丁寧にサンプルまで作って頂きまして、本当にありがとうございます!
早速ダウンロードさせて頂きました。これを元に勉強を進めて行くことができます!

進展がありましたら、またご連絡致しますね。
ありがとうございました。
Response 03
2008年12月25日 (木) 23時50分> joy   
Akiyoshiさん、
上のhttp://joy.life.coocan.jp/というサーバーではなく、php.iniをユーザーが変更できる、下のlolipopのサーバー経由で、試してみたら、なんと、日本語の文字化けなしで、メールが届きました!やれやれです。coocanでは、問い合わせても、埒が明かない状態でしたが、やはり、細かいサービスを行う、サーバー専門サイトがいいようですね。ご参考までに。

<?php//タグは、効果ないよいうに、全角で記載してます
$to = 'xxxxx@yahoo.co.jp';//ご自分のメールアドレスに変更してください
$subject = 'Flash Q&Aからの連絡';
//mb_language('Japanese');//lolipopでは、これを記載しないでも、文字化けなし

$Message = 'From: '.$_POST['from']."\n\n";
$Message .= 'Email: '.$_POST['email']."\n\n";
$Message .= 'Address: '.$_POST['address']."\n\n";
$Message .= 'Phone: '.$_POST['phone']."\n\n";
$Message .= 'Comments: '.$_POST['comments'];

$header = "From: $_POST[email]\n";//Flashにインプットしたユーザーのアドレス

/*以下のmb_convert_encoding();も必要なし
$_POST['from']= mb_convert_encoding($_POST['from'], "EUC-JP", "UTF-8");//FlashのUTF-8をPHPのEUC-JPにencodingの意味ですが、怪しいです。
$_POST['email']= mb_convert_encoding($_POST['email'], "EUC-JP", "UTF-8");
$_POST['address']= mb_convert_encoding($_POST['address'], "EUC-JP", "UTF-8");
$_POST['comments']= mb_convert_encoding($_POST['comments'], "EUC-JP", "UTF-8");
*/

$OK = mb_send_mail($to, $subject, $Message, $header);//成功した場合は、true、失敗時は、falseを返す

if ($OK) {//mb_send_mai();が成功したなら、
echo 'sent=OK';//変数 sentにOKを代入する
}

?>

で文字化けなしで、メールが着きます。
http://joy.her.jp/php/flashmail.html

このページの先頭へ