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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.01.2012, 16:59
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 11  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Astraport там использование Adobe Flex, мне нужен Action Script 3, а какой as написать я не знаю, пробую и не получается.

Добавлено через 13 часов 7 минут
Вот
Код AS3:
import flash.net.*;
 
var urlloader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest();
var login:String;     // логин
var pass:String;        // пароль
var id:int;            // код пользователя
var reg_var:URLVariables = new URLVariables(); //хранилище переменных для передачи в скрипт
var reg_req:URLRequest = new URLRequest("reg.php");
var reg_ldr:URLLoader = new URLLoader();
var login_mask:RegExp = /([a-zA-Z]?[0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/; // шаблон для проверки почтового адреса
var pass_mask:RegExp = /[a-zA-Z]?[0-9a-zA-Z]*/; // шаблон для проверки формата пароля
var words:Array = new Array; // массив для хранения разбитых строк
var win_tmr:Timer = new Timer(4000, 1);        //таймер - определяет как долго будет висеть окно ошибок
 
reg_req.method = URLRequestMethod.POST;    //метод POST
reg_btn.addEventListener(MouseEvent.CLICK, onclickiVhod, false, 0, true);    // обработчик нажатия кнопки
 
function onclickiVhod(e:MouseEvent):void {    // обработка нажатия кнопки
   if ((login_bt.text == "")||(pass_bt.text == "")) {      
       return;
   }
/*-----Проверка правильности ввода логина-----*/    
   words = login_bt.text.split(" ");        // выделяем первое слово из строк
   login = words[0];
   if (!login_mask.test(login)) {        // проверка формата
       return;
   }
/*-----Проверка правильности пароля (1-я буква и содержит только цыфры и буквы латыни)-----*/
   words = pass_bt.text.split(" ");        // выделяем первое слово из строки (авось ввели 2 или больше)
   pass = words[0];
   if (!pass_mask.test(pass)) {        // проверка формата
       return;
   }
   if ((pass.length < 4)||(pass.length > 20)) { // проверка на длинну пароля
       return;                  
   }
   reg_ldr.addEventListener(Event.COMPLETE, completeHandler, false, 0, true);     // обработчик загрузки данных из скрипта
   reg_var.log_usr = login;        //загрузка переменных
   reg_var.pas_usr = pass;
   reg_req.data = reg_var;
   reg_ldr.dataFormat = URLLoaderDataFormat.TEXT;        // определяем формат получения данных
   try {
       reg_ldr.load(reg_req);     // передаем переменные в скрипт и получаем результат
 
 trace ('reg_req == '+ reg_req.data); // ????????????????????????????????????????
   }
   catch (err:Error) {    
   }
}
 
function completeHandler(e:Event):void { //обработка результатов от скрипта
   reg_ldr.removeEventListener(Event.COMPLETE, completeHandler);
   id = int(Number(e.target.data));    //записываем результат как номер пользователя (число больше 0) или код ошибки (- число)
   if (id < 0) {        // обработка кодов ошибок
       return;
   }
trace ('id == '+ id);
 
}
А вот PhP

PHP код:
<?php
include ("connect.php");     // подключение к Базе данных
echo $login $_POST['login'];     // получаем логин
echo $pass $_POST['pass'];     // получаем пароль
if(!empty($id)){
 if(!empty(
$login)){
    if(!empty(
$pass)){
//Заносим в таблицу по нужному id в базу
       //Отправим ответ о удачной записи
       
echo "true";
    }else{
       
// Обрабатываем ошибку, т.к. нет переменной $pass
       // Отправим ответ о неудаче
       
echo "false";
    }
 }else{        
    
// Обрабатываем ошибку, т.к. нет переменной $login
    // Отправим ответ о неудаче
    
echo "false";
 }
}else{        
  
// Обрабатываем ошибку, т.к. нет переменной $id
  // Отправим ответ о неудаче
  
echo "false";
}
$connect_DB mysql_query("SELECT * FROM users WHERE login='".$login."' AND pass='".$pass."'"$db);
if (!
$connect_DB || $connect_DB == '') {
   echo 
"-1";   // вывод кода ошибки -1: не удалось подключиться к БД
   
exit;        // закрыть скрипт
}
$result mysql_fetch_array($connect_DB);      //выполняем запрос
if ($result['id'] == '') {
   echo 
"-2";   // вывод кода  -2: такого пользователя нет
   
exit;        // закрыть скрипт
}
echo 
$result['id'];    //выводим код пользователя во флешку



/*print "count(result) == ".count($result)."<br />";
print "result['login'] == ".$result['login']."<br />";
print "result['pass'] == ".$result['pass']."<br />";
print "result['id'] == ".$result['id']."<br />";
print "<hr />";
if ($result)
{
   foreach ($result as $key => $data)
   echo "result[".$key."] == ".$data."\n <br />";
}
else exit ('Нет таких пользователей!');*/
?>
Но не работает

Старый 15.01.2012, 18:19
ded100let вне форума Посмотреть профиль Отправить личное сообщение для ded100let Найти все сообщения от ded100let
  № 12  
Ответить с цитированием
ded100let

Регистрация: Mar 2009
Сообщений: 30
Кашу пишете, если честно. Попробуйте проверить PHP отдельно, переставив с $_POST на $_GET. Если будет функционировать, то ищите проблему в AS. Для начала не лепите так много условных операторов и прочих "фишек", а используйте только необходимый код для проверки "связи" с PHP. Как только "связь" будет установлена, то можно "наращивать" код. Так Вам будет легче находить ошибки на первых парах.

вот Вам примерный код для общения с сервером (возможны ошибки)

Код AS3:
package  {
 
        import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.EventDispatcher;
	import flash.net.URLVariables;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.net.URLRequestMethod;
	import flash.net.URLLoaderDataFormat;
 
	public class Server extends EventDispatcher {
 
		public static const COMPLETE:String = "COMPLETE";
		public static const ERROR:String = "ERROR";
		private var loader:URLLoader;
		private var req:URLRequest;
		private var sendVars:URLVariables;
		private var getVars:URLVariables;
 
		public function Server () {
			req = new URLRequest();
			req.method = URLRequestMethod.POST;
			req.url = "http://site.com/";
 
			loader = new URLLoader();
		}
 
		public function addVars (name:String, value:*) :void {
			if (!sendVars) sendVars = new URLVariables();
 
			sendVars[name] = value;
		}
 
		public function send () :void {
			req.data = sendVars;
 
			loader.addEventListener(Event.COMPLETE, onComplete);
			loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
			loader.dataFormat = URLLoaderDataFormat.VARIABLES;
			loader.load(req);
 
			// #
			trace("send");
			deepTrace(sendVars);
		}
 
		private function onComplete (e:Event) :void {
			loader.removeEventListener(Event.COMPLETE, onComplete);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
 
			getVars = new URLVariables();
			getVars.decode(e.currentTarget.data);
 
			// #
			trace("get");
			deepTrace(getVars);
 
			dispatchEvent(new Event(Server.COMPLETE));
		}
 
		private function onError (e:Event) :void {
			loader.removeEventListener(Event.COMPLETE, onComplete);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
 
			dispatchEvent(new Event(Server.ERROR));
		}
 
                public function getVar (name:String) {
			if (getVars[name]) {
				return getVars[name];
			}
			return undefined;
		}
 
		private function deepTrace (obj:*) : void {
			for (var val:* in obj) {
				trace('[' + typeof(obj[val]) + '] ' + val + ' => ' + obj[val]);
			}
		}
	}
}
а так использовать

Код AS3:
package  {
 
	import flash.display.Sprite;
	import flash.events.*;
 
	public class Main extends Sprite {
 
		public function Main () {
 
			var loader:Server = new Server();
				loader.addVars("id", 243);
				loader.addVars("login", "login");
				loader.addVars("password", "123456");
 
				loader.addEventListener(Server.COMPLETE, complete);
				loader.addEventListener(Server.ERROR, error);
				loader.send();
		}
 
		private function complete (e:Event) :void {
			e.currentTarget.removeEventListener(Server.COMPLETE, complete);
			e.currentTarget.removeEventListener(Server.ERROR, error);
			trace(e.currentTarget.getVar("var"));
		}
 
		private function error (e:Event) :void {
			e.currentTarget.removeEventListener(Server.COMPLETE, complete);
			e.currentTarget.removeEventListener(Server.ERROR, error);
 
			trace("error");
		}
	}
}

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

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

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


 


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


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