[問題] amfphp多個變數的呼叫

看板Flash作者 (兔子)時間15年前 (2011/03/29 16:41), 編輯推噓3(3030)
留言33則, 7人參與, 最新討論串1/1
我是想實做"創新帳號"的功能 flash將帳號密碼丟給php去判斷處理 如果帳號已存在就返回false 反之就幫玩家創造帳號並返回true flash部份: stop(); import flash.net.*; var c1:NetConnection = new NetConnection(); c1.connect('http://***.***.***.***/amfphp1.9/gateway.php'); var r1:Responder = new Responder(function(res:Object):void { trace(res+"ok"); if(res.toString()=="true"){ gotoAndStop(4); }else{ acc.text="帳號重覆請重新輸入"; pa1.text=""; pa2.text=""; } }, function(res:Object):void { trace(res+"ng"); }); cre.addEventListener(MouseEvent.CLICK,function(E:MouseEvent):void{ c1.call('supernewacc.supernewacc',r1,acc.text,pa1.text) //將帳號密碼傳至php }); php部份: <?php class supernewacc{ function supernewacc($acc="",$pas=""){ //接到從flash傳來的帳號密碼 $conn=mysql_connect("127.0.0.1","***","***"); $dbname="***_***"; $select=mysql_select_db($dbname,$conn); $result=mysql_query("SELECT * FROM accdata WHERE acc='".$acc."';"); $num=mysql_num_rows($result); //判斷此帳號是否已經存在 if($num==1){ return false; }else{ $result=mysql_query("INSERT INTO accdata (`index`,`acc`,`pas`) VALUES (NULL,'".$acc."','".$pas."');"); return true; } } } ?> 執行結果: 資料庫 index acc pas 1 supernewacc //不知道為什麼資料庫會多出這一筆資料 2 hirabbitt hirabbitt flash trace trueok //只有一次trace 不知道為什麼明明只呼叫一次 卻新增了兩筆資料 其中一筆還是莫名其妙的值 請幫幫我 謝謝 -- ◤ __ \__◢◤◢◤ ψhirabbitt ◤ ◢███◣ ◢███◣ 我不是m █████ █████ 我不是s ██ ███ 是溫柔 ██╱╲ ◥█████◣● 是傲嬌╱╱ ◥████ ˇ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.127.91 ※ 編輯: hirabbitt 來自: 163.13.127.91 (03/29 16:42)

03/29 16:56, , 1F
確定sql語法對嗎?直接用php呼叫一次新增動作看看?
03/29 16:56, 1F

03/29 17:37, , 2F
不懂 php要怎麼呼叫?
03/29 17:37, 2F

03/29 17:45, , 3F
直接輸入一次.php?acc= &pas= 看結果如何啊
03/29 17:45, 3F

03/29 17:46, , 4F
或是在php內先假定一行$acc="abc"跑一次
03/29 17:46, 4F

03/29 17:47, , 5F
不過我對3.0不熟,我不知道為什麼php裡面會有class
03/29 17:47, 5F

03/29 17:49, , 6F
照理說呼叫php判斷值之後直接依序執行應該就OK了
03/29 17:49, 6F

03/29 17:50, , 7F
之前我是在Flash中宣告一個URLVariables用POST送出去
03/29 17:50, 7F

03/29 17:50, , 8F
還沒試過這種直接呼叫php的function並依序傳值的
03/29 17:50, 8F

03/29 17:56, , 9F
喔喔 我試試看
03/29 17:56, 9F

03/29 17:56, , 10F
啊糟糕,是amfphp....
03/29 17:56, 10F

03/29 17:58, , 11F
不好意思我說的方法太老舊了QQ
03/29 17:58, 11F

03/29 17:59, , 12F
難怪裡面會需要用到class
03/29 17:59, 12F

03/29 18:10, , 13F
如果要一次傳多個變數的話,可以試試用JSON格式傳
03/29 18:10, 13F

03/29 18:10, , 14F
在AS用JSON打包後,PHP有json_decode的東西可以解
03/29 18:10, 14F

03/29 18:11, , 15F
不過JSON在AS3並不是內建的method,請洽as3corelib
03/29 18:11, 15F

03/29 18:13, , 16F
JSON和amfphp是兩塊不同的東西? 我研究看看...
03/29 18:13, 16F

03/29 18:13, , 17F
不過還是希望有amfphp的解決方式
03/29 18:13, 17F

03/29 20:57, , 18F
是兩件事,但不衝突,JSON只是把你的參數先編成文字之
03/29 20:57, 18F

03/29 20:57, , 19F
後再傳給AMFPHP,AMFPHP也還是PHP,所以可以用PHP的
03/29 20:57, 19F

03/29 20:58, , 20F
json_decode來還原你剛編的字串,這跟是不是AMFPHP的
03/29 20:58, 20F

03/29 20:58, , 21F
解決方式無關的
03/29 20:58, 21F

03/29 22:23, , 22F
資料庫的怪資料跟class name一樣 :Q?
03/29 22:23, 22F

03/30 00:02, , 23F
對不起ˊˋ我看不懂樓上提的是什麼
03/30 00:02, 23F

03/30 00:03, , 24F
囧推錯篇 請無視
03/30 00:03, 24F

03/30 18:03, , 25F
對! 怪資料跟class name一樣
03/30 18:03, 25F

03/30 18:52, , 26F
講個不相關的事,如果index有設auto_increment
03/30 18:52, 26F

03/30 18:52, , 27F
那就不用特地去 insert 一個 null 的值給它了
03/30 18:52, 27F

03/30 18:53, , 28F
要傳多變數比較冒險的方式你可以直接傳陣列
03/30 18:53, 28F

03/30 18:53, , 29F
不過某次flash一更新之後抓陣列的值就會有問題 XD
03/30 18:53, 29F

03/30 18:55, , 30F
amfphp裡面有個browser可以用那個傳值測試
03/30 18:55, 30F

04/07 16:01, , 31F
要是我~我會把變數包成Object傳~再到PHP抓物件裡的變數
04/07 16:01, 31F

04/14 10:08, , 32F
不太懂包成物件的意思 是只自定物件類別嗎?
04/14 10:08, 32F

04/14 10:08, , 33F
就算flash和php都自訂了 會一樣嗎
04/14 10:08, 33F
文章代碼(AID): #1DaPiT3q (Flash)
文章代碼(AID): #1DaPiT3q (Flash)