Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.12.2009, 15:51
bems вне форума Посмотреть профиль Отправить личное сообщение для bems Найти все сообщения от bems
  № 1  
Ответить с цитированием
bems

Регистрация: May 2008
Сообщений: 10
Attention Flash или php - в чём проблема???

Уважаемые знатоки флэша и серверных технологий, помогите мне, я в полном отчаянии!
Делаю игру с использованием сервера и их местного API для одного флэш-портала. Перешёл к самому последнему - созданию скрипта для обновления таблиц в БД. И вот, значит в чём трабл. Если все нужные переменные в качестве теста указать в php-файле, то он всё обновляет нормально:

PHP код:
<?
$uid 
"1";
$key "key";
$message "ывывавава";
include(
"connect.php");
if (
$key == "key" and $uid != "undefined"){
  
$c mysql_query('SET NAMES cp1251');
  
$n mysql_query(первая комманда обновления);
   if(
$n){
     
вторая комманда обновления (там ряд комманд);
    echo 
"result=1";
  }
  else{
    echo 
"result=0";
  }
}
else{
  echo 
"result=0";
}
?>
В этом случае php выдаёт мне result=1 то есть как и надо - после завершения нужных комманд. Но как только я делаю версию php файла для принятия данных из флэша, то бишь меняю

PHP код:
$uid "1";
$key "key";
$message "ывывавава"
на

PHP код:
$uid $_POST['user_id'];
$key $_POST['key'];
$message $_POST['mess']; 
то во флэш он мне возвращает result=0, причём не в том месте, где if ($key == "key" and $uid != "undefined"){, а в месте if($n){, тоесть я так понимаю он первую mysql комманду не выполняет. Но в чём же дело??? Ведь если установить переменные в самом php, то всё работает!!! Вот код функции отправки данных:

Код AS1/AS2:
function new_king() {
	sender = new LoadVars();
	loader = new LoadVars();
	sender.user_id = "1"
	sender.mess = "ыыыыыы"
	sedner.key = "key"
	sedner.sendAndLoad(adress, loader, "POST");
	loader.onLoad = function(sucsess){
		if(sucsess){
			result = loader.result
			if(result == "1"){
				trace("daaaaaaa!!!!");
			}
			else{
				trace("fuuuuuck!!!!!");
			}
		}
	}
}
Очень прошу, помогите, я просто уже не знаю, что делать!

Старый 15.12.2009, 16:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А запрос к БД какой?

Старый 15.12.2009, 16:25
bems вне форума Посмотреть профиль Отправить личное сообщение для bems Найти все сообщения от bems
  № 3  
Ответить с цитированием
bems

Регистрация: May 2008
Сообщений: 10
Код:
$n = mysql_query("UPDATE sms_users SET sms_total=sms_total+1,last_text='$message' WHERE user_id=$uid");

Старый 15.12.2009, 16:50
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Как я понимаю, блок else выполнится в том случае, если запрос будет выполнен с ошибкой, поэтому логично узнать, что за ошибка.
Также необходимо экранировать входящие данные, которые в запросе используются.

Старый 15.12.2009, 16:57
bems вне форума Посмотреть профиль Отправить личное сообщение для bems Найти все сообщения от bems
  № 5  
Ответить с цитированием
bems

Регистрация: May 2008
Сообщений: 10
Насчёт экранизирования входящих данных! Чтобы во флэш вернуло три переменные, которые я послал и посмотреть, что там с ними, правильные или нет, я пытался писать вместо
PHP код:
else{
    echo 
"result=0";
  } 
так
PHP код:
else{
    echo 
"result=$uid_$key_$message";
  } 
Но был поражён ещё больше! Флэш вернул result пустым!!! Даже "_" не было!

Старый 16.12.2009, 11:35
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 6  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Предлагаю проверить, получает ли php переменные из флеша

PHP код:
<?
$uid 
$_POST['user_id'];
$key $_POST['key'];
$message $_POST['mess'];  

//add_me
$f fopen("t.txt""w");
fwrite($f$_POST['user_id']);
fwrite($f$_POST['key']);
fwrite($f$_POST['mess']);
fclose($f);
//
include("connect.php");
if (
$key == "key" and $uid != "undefined"){
  
$c mysql_query('SET NAMES cp1251');
  
$n mysql_query(первая комманда обновления);
   if(
$n){
     
вторая комманда обновления (там ряд комманд);
    echo 
"result=1";
  }
  else{
    echo 
"result=0";
  }
}
else{
  echo 
"result=0";
}
?>
выполнить этот код, появится в папке со скриптом файл t.txt, открыть и посмотреть

Старый 16.12.2009, 16:22
bems вне форума Посмотреть профиль Отправить личное сообщение для bems Найти все сообщения от bems
  № 7  
Ответить с цитированием
bems

Регистрация: May 2008
Сообщений: 10
Всем спасибо за помощь, но каким-то боком заново переписал функцию во флэше и всё заработало Так до сих пор и не понял, что ему там не нравилось...

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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