[問題] Flash連結資料庫 (amfphp、PHP)
已爬完這裡的同樣問題文章,但沒能解決問題;資料庫版則是沒這類文章。
先說明一下我的環境
網頁用PHP做的,伺服器是AppServ,資料庫是MySQL
本機的預設root是C:\AppServ\www ,這是照書上的預設,amfphp也裝在這裡
我想讓Flash連上資料庫,讓跑馬燈能出現使用者輸入的暱稱
於是買了「Flash資料庫應用即戰力」,跟著裡頭的步驟走都很順,直到Flash連線資料庫
開始出問題。
這是書上的範例檔案 HowAreYou.php
==============================================================================
<?php
class HowAreYou
{
function sendStr($yourname)
{
return "$yourname,你好阿!!" ;
}
}
?>
==============================================================================
這個檔案我用amfphp的browser測試沒問題,有回傳值,但是中文的部份會有亂碼問題
下面這個是書上的範例檔 test.fla中的第1個影格中的actionscript
==============================================================================
stop();
var connection:NetConnection; //宣告NetConnection物件
var responder:Responder; //宣告 Responder物件
//建立物件實體
responder = new Responder(onResult, onFault); //資料傳送成功或失敗
connection = new NetConnection;
//設定Service連線
var gateway:String = "/amfphp/gateway.php";
connection.connect(gateway); //連接amfphp資料夾裡的gateway.php
//資料傳送成功時
function onResult(Result:String):void {
my_txt.text=Result;
}
//資料傳送失敗時
function onFault():void {
my_txt.text="連接失敗";
}
//按下按鈕時
my_btn.addEventListener("click",loadPHP);
function loadPHP(me:MouseEvent){
//呼叫Remote Service中的方法(檔案名稱.方法名稱)
connection.call("HowAreYou.sendStr",responder,your_txt.text);
}
==============================================================================
在Flash測試中不斷出現Error #2044: 未處理的 NetStatusEvent:。 level=error,
code=NetConnection.Call.BadVersion at test_fla::MainTimeline/frame1()
以下則是我嘗試過的努力
==============================================================================
查到資料,有人說更改amfphp的gateway.php檔的第127行
從
$gateway->setCharsetHandler("utf8_decode","ISO-8859-1", "ISO-8859-1");
改為以下各種我皆試過
$gateway->setCharsetHandler("mbstring","UTF-8", "UTF-8"); <---失敗
$gateway->setCharsetHandler("utf8-decode","UTF-8", "UTF-8"); <---失敗
$gateway->setCharsetHandler("iconv","big5", "big5");<---解決中文亂碼;連線失敗
$gateway->setCharsetHandler( "mbstring", "gb2312", "gb2312" ); <---失敗
後來查出HowAreYou.php的程式碼開頭是 <? ,將它改為 <?php 後Flash連線依然有Error
先前文章有前輩提到這種Error是php的程式碼有錯誤,但我剛碰php1個月,也看不出哪裡
錯誤,我投降了,煩請這裡的高手們能指點一下,非常感謝&感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.130.202.135
推
10/10 22:02, , 1F
10/10 22:02, 1F
推
10/10 23:57, , 2F
10/10 23:57, 2F
推
10/11 00:01, , 3F
10/11 00:01, 3F
→
10/11 00:02, , 4F
10/11 00:02, 4F
→
10/11 00:06, , 5F
10/11 00:06, 5F
→
10/11 00:06, , 6F
10/11 00:06, 6F
-------------------------------------------------------------------
有試過把php另存成 utf-8,還是同樣行不通...囧
※ 編輯: fr1432422 來自: 140.130.202.135 (10/11 13:11)
推
10/11 15:38, , 7F
10/11 15:38, 7F
-------------------------------------------------------------------
拖了好久才來po我找到的解決方法(發這文的隔天就解決了....)
我找到另一個解決方法
將amfphp裡的gateway.php打開,
找到第136和138行的程式碼(不一定是相同的行數,但是大概在那附近)
第136:$gateway->disableDebug();
第138:$gateway->disableStandalonePlayer();
在這兩行前面加上 // 把它們變成註解(避免以後又要用到),改成如下
第136://$gateway->disableDebug();
第138://$gateway->disableStandalonePlayer();
Error 2044的問題就解決
補充在這裡給有碰到相同問題的人參考^__^
※ 編輯: fr1432422 來自: 140.130.202.135 (10/18 10:36)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章