Страница 1 из 3

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

Добавлено: 12 авг 2012, 00:03
Gouk
Привет всем!
Подскажите пожалуйста
Например: человек зашел в приложение, определился его id, и записался в бд.
Подскажите код php, и as3

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

Добавлено: 12 авг 2012, 01:28
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 в принципе все тоже самое. За исключением что там уже протестировано и работает, а здесь я на коленке по-быстрому написал и есс-но не тестировал)))

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

Добавлено: 12 авг 2012, 07:41
Serge

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

AUTO_INCREMENT
Это же лишнее

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

Добавлено: 12 авг 2012, 10:41
Alazaur
Serge
ну да не обязательно в данном случае, это я на автомате написал :D привычка что поделать

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

Добавлено: 12 авг 2012, 12:46
wypaa
Как сделать для IFrame

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

Добавлено: 12 авг 2012, 14:00
Alazaur
wypaa
вот же http://flapps.ru/forum/topic753.html нового я все равно ничего не напишу) От изменения имен переменных смысл кода не меняется.

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

Добавлено: 12 авг 2012, 15:53
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 в принципе все тоже самое. За исключением что там уже протестировано и работает, а здесь я на коленке по-быстрому написал и есс-но не тестировал)))
Моя благодарность Вам! Я знал что вы поможете :)

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

Добавлено: 12 авг 2012, 16:12
Gouk
Проблемка всё та же. Когда захожу в приложение, не записывает в бд. Что может быть? А когда просто захожу туда: http://ваш-сайт.ру/скрипт.php , то записывает, пишет: пользователь успешно зарегистрирован!

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

Добавлено: 12 авг 2012, 16:15
Gouk
кое что передал, но пишет теперь такую вот хрень: main.as, строка 298 Warning: 3596: Повторное определение переменной.
строка 298:

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

 var flashVars:Object = stage.loaderInfo.parameters as Object;

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

Добавлено: 12 авг 2012, 16:17
Gouk
хахаха, всё сам разобрался)) спасибо!