Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   строка из PHP через URLLoader (http://www.flasher.ru/forum/showthread.php?t=146534)

FriOne 10.11.2010 19:00

строка из PHP через URLLoader
 
Связал таки флэху через URLLoader,
но хотел бы знать какую строку возвратил PHP скрипт..

Строка такая, например, user=yes.
Когда принимаю строку и вывожу ее во флэше через поле, пишет yes,
все нормально, но когда хочу ее сравнить vars.user == "yes" они не равны(

Подскажите, мб тут кодировку как-то надо менять или что?

BlooDHounD 11.11.2010 12:04

пример в студию

FriOne 11.11.2010 23:17

Вот так на АС принимаем:
Код AS3:

private function userOk(e:Event)
{
        var variables:URLVariables = new URLVariables(e.target.data);
        if(variables.user == "yes"){
                fieldCheck.text = "Зашли";
        }else if(variables.user == "no"){
                fieldCheck.text = "Неверное имя пользователя или пароль";
        }else{
                fieldCheck.text = "Ошибка подключения";
        }
}

в PHP урезанно так:
PHP код:

<?
    
if((!empty($_POST["userName"]))&&(!empty($_POST["userPass"])))  
    {  
        
$userName $_POST["userName"];  
        
$userPass $_POST["userPass"]; 

            
$title "no";
        echo 
"user=".$title;
    }  
    else  
    {  
        echo 
"user=0";
    }  
?>

Если сравнить так, когда от PHP приходит 0, variables.user == 0 тру.
Со строкой "yes" не получается..

URLLoder так:
Код AS3:

public function userCheck(e:Event)
{
        if((fieldLog.text != "")&&(fieldPass.text != "")){
                var variables:URLVariables = new URLVariables();
                variables.userName = fieldLog.text;
                variables.userPass = fieldPass.text;
 
                var request:URLRequest = new URLRequest("index.php");
                request.method = URLRequestMethod.POST;
                request.data = variables;
 
                var loader:URLLoader = new URLLoader();
                loader.dataFormat = URLLoaderDataFormat.VARIABLES;
                loader.addEventListener(Event.COMPLETE, userOk);
                loader.load(request);
        }else{
                fieldCheck.text = "Не все поля заполнены";
        }
}

Добавлено через 19 минут
Это часть логинки вообщем) но мне не только для этого надо, хотелось бы разобраться

Партизан 12.11.2010 09:57

Ох я пива перепил вчера....
FriOne, покажите плз строку в вашем примере PHP в которой "yes" выводится. Или может пример логической вариации при которой "no" становится "yes".

FriOne 12.11.2010 14:59

да собственно проверяю, подставляя yes, именно таким пхп кодом,
вместо $title = "no"; тут стоит такая же строка с "yes".

Партизан 12.11.2010 17:57

FriOne, у меня снова подозрение, что вы опять загружаете php-шный файл, а не результат обработки php файла. Не будет он так работать. Поставьте wamp или denver на худой конец. И обращайтесь через сервер к php. Сейчас вы обычный текстовый файл грузите. И user=0 у вас будет постоянно.

FriOne 12.11.2010 18:22

да усе работает, у меня стоит зенд. ПХП пашет проверял, и возвращает у меня yes!)
Я это "yes" вывожу через текстовое поле, дело не в этом, а в том что yes из PHP не равняется yes в АС.

P.S. кстати, если запускаешь локально, АС выводит выводит ошибку, связанную с URLVariables.decode() пара\значение..

-De- 12.11.2010 18:52

Код AS3:

fieldCheck.text = "e.target.data='"+e.target.data+"' variables.user='"+variables.user+"'!=yes";
trace("e.target.data='"+e.target.data+"' variables.user='"+variables.user+"'!=yes");

Вывод вставьте, а то шайтан какой-то. Ну и там strlen, посимвольное сравнение...

FriOne 12.11.2010 19:17

Цитата:

посимвольное сравнение...
спасибо, сам как-то не допер..

А вывод у меня есть, здесь просто он был в комментах, я его удалил.
В поле выводится то же yes, возможно стоят какие-нибудь спецсимволы
из значения PHP, потому наверно variables.user == "yes" ложно.

Reon 12.11.2010 22:33

Код AS3:

if(e.target.data=="yes")
{
//Зашли
}else{
//Не зашли
}

Для того что бы поймать ошибку подключения подпишите URLLoader на IOErrorEvent.IO_ERROR


Часовой пояс GMT +4, время: 20:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.