Просто подскажите- api и mysql

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Gouk
Сообщения: 37
Зарегистрирован: 09 авг 2012, 03:30

Просто подскажите- api и mysql

Сообщение Gouk »

Привет всем!
Подскажите пожалуйста
Например: человек зашел в приложение, определился его id, и записался в бд.
Подскажите код php, и as3
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Просто подскажите- api и mysql

Сообщение Alazaur »

Создаете в базе таблицу этим SQL запросом:

Код: Выделить всё

CREATE TABLE users (userid INT(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (userid));
На сервер скрипт со следующим содержимым (кодировка файла должна быть UTF-8 без BOM):

Код: Выделить всё

<?phpheader("Content-Type: text/html; charset=utf-8");$dbhost = "localhost"; //Хост БД$dbname = "xxxxxxx"; //Имя БД$dbuser = "xxxxxxx"; //Пользователь БД$dbpass = "xxxxxxx";//Пароль к БД$app_id = 1111111;//ID приложения$api_secret = "xxxxxxxxxxxxxxxxxxxxxx"; //Секретный ключ приложения  $viewer_id = (int)$_POST['userid'];//Пользователь который сделал запрос к скрипту (менять не надо)$authKey= md5($app_id."_".$viewer_id."_".$api_secret);//Auth key (менять не надо)   mysql_connect($dbhost, $dbuser, $dbpass);mysql_select_db($dbname);mysql_set_charset('utf8');if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE userid = ".$viewer_id),0)) exit("Пользователь уже зарегистрирован");else {    if(mysql_query("INSERT INTO users SET userid = ".$viewer_id)) exit("Пользователь успешно зарегистрирован");    else exit("При регистрации возникла ошибка");}?>
Ну и во flash

Код: Выделить всё

package {    import flash.events.Event;    import flash.net.*;    import flash.display.*;     public class Main extends Sprite     {        public function Main():void         {            var flashVars:Object = stage.loaderInfo.parameters as Object;            var loader:URLLoader = new URLLoader();            var request:URLRequest = new URLRequest("http://ваш-сайт.ру/скрипт.php");            request.method = URLRequestMethod.POST;            var vars:URLVariables = new URLVariables();            vars['userid'] = flashVars['viewer_id'];            request.data = vars;            loader.addEventListener(Event.COMPLETE, loaded);            loader.load(request);        }                private function loaded(e:Event):void         {            trace(e.target.data);        }    }}
Вот в этой теме где у вас не получилось http://flapps.ru/forum/topic165.html в принципе все тоже самое. За исключением что там уже протестировано и работает, а здесь я на коленке по-быстрому написал и есс-но не тестировал)))
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Просто подскажите- api и mysql

Сообщение Serge »

Код: Выделить всё

AUTO_INCREMENT
Это же лишнее
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Просто подскажите- api и mysql

Сообщение Alazaur »

Serge
ну да не обязательно в данном случае, это я на автомате написал :D привычка что поделать
wypaa
Сообщения: 63
Зарегистрирован: 26 ноя 2010, 21:21

Re: Просто подскажите- api и mysql

Сообщение wypaa »

Как сделать для IFrame
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Просто подскажите- api и mysql

Сообщение Alazaur »

wypaa
вот же http://flapps.ru/forum/topic753.html нового я все равно ничего не напишу) От изменения имен переменных смысл кода не меняется.
Gouk
Сообщения: 37
Зарегистрирован: 09 авг 2012, 03:30

Re: Просто подскажите- api и mysql

Сообщение Gouk »

Alazaur писал(а):Создаете в базе таблицу этим SQL запросом:

Код: Выделить всё

CREATE TABLE users (userid INT(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (userid));
На сервер скрипт со следующим содержимым (кодировка файла должна быть UTF-8 без BOM):

Код: Выделить всё

<?phpheader("Content-Type: text/html; charset=utf-8");$dbhost = "localhost"; //Хост БД$dbname = "xxxxxxx"; //Имя БД$dbuser = "xxxxxxx"; //Пользователь БД$dbpass = "xxxxxxx";//Пароль к БД$app_id = 1111111;//ID приложения$api_secret = "xxxxxxxxxxxxxxxxxxxxxx"; //Секретный ключ приложения  $viewer_id = (int)$_POST['userid'];//Пользователь который сделал запрос к скрипту (менять не надо)$authKey= md5($app_id."_".$viewer_id."_".$api_secret);//Auth key (менять не надо)   mysql_connect($dbhost, $dbuser, $dbpass);mysql_select_db($dbname);mysql_set_charset('utf8');if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE userid = ".$viewer_id),0)) exit("Пользователь уже зарегистрирован");else {    if(mysql_query("INSERT INTO users SET userid = ".$viewer_id)) exit("Пользователь успешно зарегистрирован");    else exit("При регистрации возникла ошибка");}?>
Ну и во flash

Код: Выделить всё

package {    import flash.events.Event;    import flash.net.*;    import flash.display.*;     public class Main extends Sprite     {        public function Main():void         {            var flashVars:Object = stage.loaderInfo.parameters as Object;            var loader:URLLoader = new URLLoader();            var request:URLRequest = new URLRequest("http://ваш-сайт.ру/скрипт.php");            request.method = URLRequestMethod.POST;            var vars:URLVariables = new URLVariables();            vars['userid'] = flashVars['viewer_id'];            request.data = vars;            loader.addEventListener(Event.COMPLETE, loaded);            loader.load(request);        }                private function loaded(e:Event):void         {            trace(e.target.data);        }    }}
Вот в этой теме где у вас не получилось http://flapps.ru/forum/topic165.html в принципе все тоже самое. За исключением что там уже протестировано и работает, а здесь я на коленке по-быстрому написал и есс-но не тестировал)))
Моя благодарность Вам! Я знал что вы поможете :)
Gouk
Сообщения: 37
Зарегистрирован: 09 авг 2012, 03:30

Re: Просто подскажите- api и mysql

Сообщение Gouk »

Проблемка всё та же. Когда захожу в приложение, не записывает в бд. Что может быть? А когда просто захожу туда: http://ваш-сайт.ру/скрипт.php , то записывает, пишет: пользователь успешно зарегистрирован!
Gouk
Сообщения: 37
Зарегистрирован: 09 авг 2012, 03:30

Re: Просто подскажите- api и mysql

Сообщение Gouk »

кое что передал, но пишет теперь такую вот хрень: main.as, строка 298 Warning: 3596: Повторное определение переменной.
строка 298:

Код: Выделить всё

 var flashVars:Object = stage.loaderInfo.parameters as Object;
Gouk
Сообщения: 37
Зарегистрирован: 09 авг 2012, 03:30

Re: Просто подскажите- api и mysql

Сообщение Gouk »

хахаха, всё сам разобрался)) спасибо!
Ответить