Actionscript 3 — PHP не распознает Flash неопределенный var

У меня проблема с Flash AS3 и PHP 5.3.29
У меня есть переменная, которую я хочу передать в PHP. Этот 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";

Я использую Charles для отслеживания исходящих данных из Flash, и когда varName = undefined PHP! Isset () не воспринимает их как не заданные. Если я вызову varName varName = «», то функция empty () подберет его. Точно так же, если я даю varName значение, varName = 44, все работает нормально, что я делаю не так с isset ??

ОК, я добавил переменную $ _POST до и после! Isset. Переменная $ POST в соответствии с Flash Charles и эхом до! Isset была неопределенной, а не NULL «» или «undefined», однако PHP видит это как isset, а не! Isset … Почему PHP делает это? Я не знаю, но для тех, кто сталкивался с той же проблемой: — моя работа заключалась в том, чтобы заставить переменную как «» пустую, а не неопределенную. Это не изящно или элегантно, но это работает … Я все еще хотел бы знать почему, хотя!

0

Решение

Isset работает, только если переменная вообще не установлена, вы, вероятно, отправляете пустой или vanName = undefined из сценария действия

может просто сделать это

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

Другие решения

Тем не менее, все еще задаются вопросом … После некоторого исследования и помощи с другого форума выясняется, что вы не можете отправить переменную, которая не установлена ​​(! Isset) из флэш-памяти в PHP. Согласно PHP он всегда будет установлен так или иначе.
Мои выводы: — Когда myVar защищен как число, но не дано значение

sendVartoPHP.varName = myVar:Number

PHP рассматривается как строка (3) «NaN»

sendVartoPHP.varName = myVar:int

PHP рассматривается как строка (1) «0»

sendVartoPHP.varName = myVar:String

рассматривается PHP как NULL

sendVartoPHP.varName = myVar

«не типизированный» var рассматривается PHP как string (9) «undefined»

sendVartoPHP.varName = ""

рассматривается PHP как строка (0)

sendVartoPHP.varName

даже установка переменной для отправки (как указано выше) рассматривается PHP как NULL

0