2010年02月15日
[FLASH]
データベース連動(2)
せっかくデータベースにしたんだから、データを検索して一件づつ読み込めるようにしたいじゃん?てわけで試作しました。ついでに、データ登録時にPHPファイルにコントロールが移っちゃうヘボ仕様も解決できた。上の入力欄で名前とコメントを書き込めます。下の入力欄に数字を入れるとID番号で検索。名前を入れると同じ名前の人の書き込み一覧が表示されます。ここまでできたらボシュボス十分じゃねー?
前回からのアップデート部分。
■書き込み部分のActionScript
いちいちhtmlの戻るリンクなんて押さなくてもよくなったでえ。というか、sendAndLoadの正しい使い方をはじめて知った。いままでどっかのコードをパクってそのまま貼ってたから動作原理を知らなかったのねん。
//書き込み用オブジェクトだかなんだかを宣言。
SENDVARS=new LoadVars()
SENDVARS.INPUTNAME=_root.INPUTNAME
SENDVARS.INPUTCOMMENT=_root.INPUTCOMMENT
//再読み込み用オブジェクトだかなんだかを宣言。
RELOADVARS=new LoadVars()
//再読み込み処理内容。めんどくさいからフレーム1に戻すだけの処理。
RELOADVARS.onLoad=function(success){
_root.gotoAndPlay(1)
}
//WRITE.phpにデータ送信。真ん中のパラメータを再読み込みオブジェクトにしとく。
SENDVARS.sendAndLoad( "WRITE.php ",RELOADVARS, "POST ")
■書き込み用(WRITE.php)
コメントをいただいてたセキュリティ対策っぽいのを施してみました。一応動作してるけど、なにかの対策になっているのかどうかよくわかんない。
//FlashからPOSTで送られてきた変数をphp内の変数に代入。
$INPUTNAME = $_POST[INPUTNAME];
$INPUTCOMMENT = $_POST[INPUTCOMMENT];
//なんかよくわかんないけどエスケープとかいうやつ。
$ESCNAME = mysql_real_escape_string($INPUTNAME);
$ESCCOMMENT = mysql_real_escape_string($INPUTCOMMENT);
//データベースに接続
mysql_select_db($DBNAME);
//エスケープしたほうの変数をNAME,COMMENTフィールドに追加
$SQL = mysql_query( "insert into $TBNAME values ('$ESCNAME','$ESCCOMMENT') ");
あと、テーブル名を「TABLE」にするとクエリが動作しないことが判明しました。テーブル名はなんか違う名前つけてください。
コメント
これはためになるbabaraさん講座
: 2010/02/16 (Tue) 08:46:00
ActionScriptだと凄い参考になるのでありがたい
araduki : 2010/02/15 (Mon) 21:38:04
[ 1 ]



