PDA

Просмотр полной версии : Принятая строка не равна той же строке.


ZackMercury
02.02.2014, 17:31
Класс, общающийся с сервером подключается к PHP-файлу connect.php, при успешной передаче всех необходимых параметров, проверке и обработке их там, файл возвращает результат, строку(и только её).

У меня ловится строка "success", что значит, что всё прошло успешно и создана сессия.

Проверка типа этого выполняет блок else:

private function onComplete(e:Event):void
{
try
{
if((e.target.data as String) == "success")
{
getCurrentUserInfo();
}
else
{
userData = e.target.data as String; // Это для того, чтобы класс-слушатель вывел.
//Выводит success
dispatchEvent(new Event(VIEWER_LOADED));
}
}
catch (e:TypeError)
{
dispatchEvent(new Event(VIEWER_LOADING_ERROR));
}

}

Добавлено через 3 минуты
Сторона сервера:

<?php
//Operations

$app_id;
$app_secret;
$viewer_id;
$auth_key;

init();

if(!checkPassword($viewer_id, $app_id, $app_secret, $auth_key))
{
die("<b>Access denied.</b> If you'll try to load this page over 10 times, your IP automatically will be banned in the game.");
}
else
{
session_start();
$_SESSION['viewer_id'] = $viewer_id;
$_SESSION['auth_key'] = $auth_key;
echo 'success';
}


//Functionality

function init()
{
global $app_id, $app_secret, $viewer_id, $auth_key;
$app_id = *******;
$app_secret = **************;

//getting UID of user that doing a query
$viewer_id = $_POST['viewer_id'];
//getting auth_key
$auth_key = $_POST['auth_key'];
}

function checkPassword($vUid, $appID, $appSecret, $authKey)
{
$str = $appID . '_' . $vUid . '_' . $appSecret;
return (md5($str) == $authKey);
}

?>

Zebestov
02.02.2014, 18:35
e.target.data as String
заменить на

e.target.data.toString()

ZackMercury
02.02.2014, 18:38
Не помогло. Всё равно кидает в else.

Добавлено через 8 минут
Решил проблему. Оказалось, в PHP-файле после закрывающего тега остались пара пробелов.

Zebestov
02.02.2014, 18:49
Подозреваю, что там помимо "success" еще какие-то "\n\r" или что-то такое.
Тогда можно определять по e.target.data.toString().indexOf("success"). Если -1 — значит не то.

ZackMercury
02.02.2014, 18:49
Спасибо вам за помощь.

Добавлено через 2 минуты
trace(e.target.data) что выдает?

У меня приложение работает только в браузере, ибо это приложение для соц. сети и оно принимает в себя параметры, которые нужны для работы на сервере.
Если бы мог воспользоваться trace, не пришлось бы писать для каждого класса тестовый метод showMessage, который выводит сообщение через текстовой поле.

Psycho Tiger
02.02.2014, 19:47
Эти параметры можно эмулировать. Взять их у соц. сети и подсовывать флешке. Гарантирую: соц. сеть не учует подвоха.

zuxul
05.02.2014, 00:58
Если бы мог воспользоваться trace, не пришлось бы писать для каждого класса тестовый метод showMessage, который выводит сообщение через текстовой поле.
Flashdevelop прекрасно подключается к дебажной флешке в браузере.
В fierfox только проблема на остановках брейкпоинтах, через 30 секунд бездействия (как кажется firefox-у) прибивается плагин. Chrome услужливый, спрашивает, нужно ли прибить.

caseyryan
05.02.2014, 06:48
Chrome услужливый, спрашивает, нужно ли прибить.
Да, только после некоторого простоя часто зависает полностью :D
Эти параметры можно эмулировать. Взять их у соц. сети и подсовывать флешке. Гарантирую: соц. сеть не учует подвоха.
Учует, если IP не статика. Сессия при каждом подключении к нету будет меняться. Проверено.

bifidokk
05.02.2014, 09:03
Учует, если IP не статика. Сессия при каждом подключении к нету будет меняться. Проверено.

у меня для игры еще 1,5 года назад сделаны html врапперы соц. сеток с данными той давности. все еще без проблем запускает и логинит :)

ZackMercury
05.02.2014, 22:13
Flashdevelop прекрасно подключается к дебажной флешке в браузере.
Можно ссылку, как это сделать?

bifidokk
06.02.2014, 09:30
в свойствах проекта жмякаем кнопку и указываем путь до враппера флешки
http://cropme.ru/16e4e65cfa10a898784a1a7dced136e9