2014-10-05 71 views
0

我遇到了Flash AS3和PHP 5.3.29的問題 我有一個我想傳遞給PHP的var。這個var在某些情況下是未定義的或將有一個值。PHP不識別Flash undefined var

if(!isset($_POST['varName']) || empty($_POST['varName'])){ 
    $name = ">0"; 
    } 
    else{ 
     $name = "=".$_POST['varName']; 
     } 

AS3代碼:

var myVarsReq:URLRequest=new URLRequest(returnQuery); 
    var phpMyVarsVar:URLVariables = new URLVariables(); 
     myVarsReq.method = URLRequestMethod.POST; 
     phpMyVarsVar.varName = varName; //varName = undefined; 
     myVarsReq.data = phpMyVarsVar; 
     phpMyVarsVar.sendRequest = "getResults"; 

我用查爾斯跟蹤從Flash輸出數據和當的varName =未定義的PHP isset()函數沒有拿起它不被設置。如果我強制使用varName varName =「」,那麼empty()函數就會很好地處理它。同樣,如果我給varName一個值,varName = 44它一切正常,所以我做錯了isset?

好的,我在!isset之前和之後echo'd $ _POST var。根據Flash Charles的$ POST var和!isset之前的echo是未定義的,而不是NULL「」或「undefined」,但是PHP將它視爲isset而不是!isset ...爲什麼PHP這樣做?我不知道,但是對於遇到同樣問題的任何人: - 我的工作是強制var爲「」而不是未定義。它不優雅或優雅,但它的作品...我仍然想知道爲什麼,但!

+0

加油吧,有人必須對此有所瞭解 - 是我還是PHP? – Filious 2014-10-07 08:08:40

回答

0

對於那些藿還在疑惑.. 。在經過另一個論壇的調查和協助之後,似乎沒有辦法可以將未設置的變量(!isset)從閃存發送到PHP。根據PHP,它總是會以某種方式設置。 我的發現: - 當myVar的是defiend的號碼,但沒有給出一個值

sendVartoPHP.varName = myVar:Number 

是由PHP視爲

sendVartoPHP.varName = myVar:int 

是由PHP視爲串串(3) 「南」( 1) 「0」

sendVartoPHP.varName = myVar:String 

由PHP視爲NULL

sendVartoPHP.varName = myVar 

一個 '無輸入' 作爲字符串(9) 「未定義」

sendVartoPHP.varName = "" 

由PHP視爲串(0)

sendVartoPHP.varName 

即使不設置無功是變種是由PHP看到發送(如上)被PHP看作爲NULL

0

Isset只能當變量設定的心不是在所有的,你可能發送一個空或美白對蝦=未定義從動作腳本

也許只是這樣做

if($_POST['varName']=="undefined" || empty($_POST['varName'])){ 
    $name = ">0"; 
    } 
    else{ 
     $name = "=".$_POST['varName']; 
     } 
+0

這就是我的觀點,該變量沒有設置,它將Flash作爲未定義的...你提出的是一個解決方法,但是在web isset上讀取權限應該拋出一個true或false。我只是想了解這一點,並知道爲什麼它不工作......是我!?當我運行它純PHP中運行它,並沒有定義$ _POST它工程很好,回聲的事實。 Flash發送一個'undefined'var的時刻不起作用。我目前的工作是爲PHP提供一個空的var,但我仍然想深入瞭解這個難題。儘管感謝您的建議.. – Filious 2014-10-05 15:42:16

+0

認爲問題是AS將變量varName = undefined作爲字符串發送。如果你安裝了firefox上的firebug,你可以檢查flash腳本發送的postdata – 2014-10-05 15:52:53

+0

你有一個鏈接,我可以看到Flash文件? – 2014-10-05 15:54:10