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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.02.2010, 18:38
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 1  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
Attention Не передает множество знаков в php...

Такая вот проблема. Флеш, отсылает 15 строк (в каждой строке по 100 символов) , в php , с названием "p1,p2,p3...p15". На такой запрос пхп не отреагировала, а если послать только с p1-p7 php реагирует, и создает (записывает эти строки в xml ).
Проблема в том что мне надо отослать все 15 строк, почему оно не записывает ? вот флеш:
Код AS1/AS2:
    Stage.showMenu=false;
var sender:LoadVars=new LoadVars();
var receiver:LoadVars=new LoadVars();
  for (i=1;i<=15;i++){ // 15 строк
  sender["p"+i]=_root["stroka"+i]; //sender1,sender2,sender3... str1,str2,str3
  }
    sender.sendAndLoad("test.php",receiver,"GET"); //посылаем все строки в php
Код с верху НЕ работает, то есть php не реагирует на запрос, и даже не создает xml.
А вот этот код с низу работает, только может переслать всего 7 строк.
Код AS1/AS2:
    Stage.showMenu=false;
var sender:LoadVars=new LoadVars();
var receiver:LoadVars=new LoadVars();
  for (i=1;i<=7;i++){ // 7 строк
  sender["p"+i]=_root["stroka"+i]; //sender1,sender2,sender3... str1,str2,str3
  }
    sender.sendAndLoad("test.php",receiver,"GET"); //посылаем все строки в php
если больше 7-ми строк, то не какой реакции...
Помогите кто то пожалуйста!!!

если надо, вот php (в php все правильно 100%):
PHP код:
<?php
$send 
= $_GET['send'];
$items = $_GET['items'];
$ima = $_GET['ima'];\
$p1 = $_GET['p1'];
.......
//просто все не вписывал.
$p15 = $_GET['p15'];
$dom = new DOMDocument('1.0','utf-8');
 
 
//создаем элементы all, name и predmet
 
$all = $dom->createElement('all');
 
$name = $dom->createElement('name');
 
$predmet = $dom->createElement('predmet');
 
 
//добавляем в документ корневой элемент all 
 
$dom->appendChild($all);
 
 
//получаем корневой элемент, называем его $root
 
$root = $dom->getElementsByTagName('all')->item(0);
 
 
//здесь двигаемся уже относительно корневого элемента all, а не от документа $dom и записываем в теги all теги name
 
$root->appendChild($name);

 
//получаем первый элемент name корневого элемента
 
$nameElement = $root->getElementsByTagName('name')->item(0);
 
 for (
$i = 0; $i < 15; $i++) :
     
     
//в цикле создаем 3 раза элементы и 3 раза добавляем их, куда надо
      
$txt = $dom->createTextNode($p.$i);//записывает строки в <predmet></predmet>
      
$predmet = $dom->createElement('predmet');
      
$nameElement->appendChild($predmet)->appendChild($txt);

 endfor;
 
 
$dom->save('testing.xml');
 
$str = $dom->saveXML();
?>

Старый 20.02.2010, 19:29
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот накидал для проверки у себя пример, все работает нормально, как и должно:
Код AS1/AS2:
for (i = 1; i <= 15; i++){ // 15 строк
	_root['stroka' + i] = i; //sender1,sender2,sender3... str1,str2,str3
}
 
var sender:LoadVars = new LoadVars();
var receiver:LoadVars = new LoadVars();
for (i = 1; i <= 15; i++){ // 15 строк
	sender['p' + i] = _root['stroka' + i]; //sender1,sender2,sender3... str1,str2,str3
}
sender.sendAndLoad('http://www.mysite.ru/test.php', receiver, 'GET'); //посылаем все строки в php
 
receiver.onLoad = function  (success) {
	if (success) {
 
		for (i in this) {
			trace(i + '=' + this[i]);
		}
 
	}
};
PHP код:
<?php
$str 
= '';

 for (
$i = 1; $i <= 15; $i++) {
    
$val = $_GET['p'.$i];
    
$str .= 'p'.$i.'='.$val.'&';
 }

echo (
$str);

?>
Приходит нормальный ответ, trace выводит:
Код:
p15=15
p14=14
p13=13
p12=12
p11=11
p10=10
p9=9
p8=8
p7=7
p6=6
p5=5
p4=4
p3=3
p2=2
p1=1
onLoad=[type Function]


Последний раз редактировалось mooncar; 20.02.2010 в 19:32.
Старый 20.02.2010, 20:44
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 3  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
Возвращать возможно php и будет, но записывать в xml не получается. Вот пример . Всего у меня 11 текстов, в которых , в каждом больше чем 100 символов. В результате php не реагирует. А вот пример (только swf) с малым количеством символов, отлично выводит в xml !

Старый 20.02.2010, 21:10
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Попробуйте вместо метода GET метод POST, GET-ом действительно тяжело передавать большие объемы данных.

Старый 20.02.2010, 21:35
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 5  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
Спосибо ! mooncar Вот нашел
GET отправляет всю информацию в заголовке запроса, длинна которого ограничена. Если вам нужно отправить какое-то слово на сервер - не проблема, оно будет всего несколько букв. Но что делать, если нужно отправить объемный тескт с 2000-3000 символов? Будут проблемы.

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

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

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


 


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


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