Страница 1 из 4
Помощь в написании серверной части очень простого приложения
Добавлено: 07 мар 2012, 17:58
Derial
Кто каким советом помогите новичку в этом деле.
"Приложение" будет состоять из:
-нескольких переменных
-и одной переменной которая будет отсчитывать время до чего либо(например через 10 мин можно собрать прибыль)
Мои знания базируются на знании actioscript 3.0, настроенном локальном хосте, подключенным phpmyadmin, умением создавать в нем таблицы и подключатся к ним при помощи php кода.(скромные знания даже для такого простого приложения)
У меня в голове все это перемешалось и я не могу понять как передать в Flash данные из php скрипта и обратно в него.
Моя задача состоит в том чтобы научить мое приложение "общаться" с сервером и сделать так чтобы переменная с отчетом времени продолжала работать в не зависимости того открыто приложение у пользователя или нет.
Заранее спасибо тем кто поможет, если тема повторилась извините не заметил.
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 07 мар 2012, 20:39
gpv123
Ввод данных в php
тут и вывод
тут.
На сервере надо хранить время окончания таймера, а во флеше отображать таймер, инициирующий разницу между текущим временем и временем, записанном на сервере.
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 08 мар 2012, 09:43
Derial
gpv123 писал(а):
На сервере надо хранить время окончания таймера, а во флеше отображать таймер, инициирующий разницу между текущим временем и временем, записанном на сервере.
А кто нибудь может на примере объяснить?
Заранее спасибо.
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 08 мар 2012, 11:30
gpv123
Derial писал(а):А кто нибудь может на примере объяснить?
Заранее спасибо.
Код: Выделить всё
var endTimeUnix:int; //время в unixtime в секундах, взятое с сервераvar currentTime:Date = new Date(); //текущее времяvar currentTimeUnix:int = (currentTime.getTime())/1000; //текущее время в unixtime в секундахvar relativeTime = endTimeUnix - currentTimeUnix; //относительное времяvar secondsTimer:Timer = new Timer(1000); startTimer(); function startTimer(){ if (relativeTime > 0) { secondsTimer.start(); secondsTimer.addEventListener(TimerEvent.TIMER, onSecondsTimer); } else { secondsTimer.removeEventListener(TimerEvent.TIMER, onSecondsTimer); trace('Время вышло'); }}function onSecondsTimer(event:TimerEvent){ relativeTime--; trace('Осталось ' + String(relativeTime) + ' секунд'); startTimer();}
Это таймер в секундах. Минуты, часы и прочее подставите сами
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 11 мар 2012, 11:14
Derial
Как передать данные из бд чтобы AS_3 мог работать с ними?
Я почитал посты на эти темы, но там описывалось только как передать данные в php файл, а он в свою очередь отправлял потом эти данные обратно и они просто отображались во флэшке, а как присвоить эти данные переменной???
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 11 мар 2012, 15:01
Derial
С тем вопросом разобрался.
Теперь такая проблема:
Код: Выделить всё
<?php // данные доступа к базе данных $db_host="..."; // обычно не нужно изменять $db_user="..."; // имя пользователя БД $db_password="..."; // пароль БД $db_name = "..."; // имя БД $table_name = "test"; // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения $app_id = '2762196'; // id приложения $api_secret = 'nyod53ZnAVg8nFgbDbtT'; // защищенный ключ приложения $levl = $_POST['levls']; // соединение с БД mysql_connect($db_host, $db_user, $db_password) or die (mysql_error()); mysql_select_db($db_name) or die (mysql_error()); mysql_query("SET NAMES 'utf8'"); // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1)) $query = 'INSERT INTO `'.$table_name.'` (`levl`) VALUES ("'.$levl.'") ON DUPLICATE KEY UPDATE `visites` = (`visites`+1), `levl`=("'.$levl.'")'; $sql = mysql_query($query); echo "OK"; ?>
Я получаю из флэшки переменную levls успешно сохраняю ее, но вот проблема, что id при повторном заходе в приложение создается новое а не дополняется старое.
Как это исправить? подскажите пожалуйста, заранее спасибо.
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 11 мар 2012, 21:26
Александр
Derial писал(а):id при повторном заходе
Какой id? И почему что-то должно обновляться?
Как создавал базу? Что такое levl?
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 11 мар 2012, 22:35
Derial
Начну по порядку.
id - универсальный номер при помощи которого "авторизуется" пользователь(не "контактовский")
обновляться должна строка visites = (`visites`+1) и levl обновлялось бы на значение присланное из флэшки(Ну это по моей задумке, а на практике я не смог этого добиться)
базу не создавал так как бесплатный хостинг.
таблицу создавал не SQL запросом.
levl переменная которой присваивается числовое значение присланное из флэшки, а также в таблице есть столбец с названием levl в который и должно сохраняться значение переменной levl
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 12 мар 2012, 21:16
gpv123
Зайдите в phpMyAdmin и создайте через него таблицу со столбцами `uid` (уникальный), `visits` (по умолчанию равен 1), `level` и т.п.
В `uid` лучше хранить id вк, не надо усложнять себе жизнь.
А потом уже при запросе, если такой uid уже существует в таблице, то обновляем значение, прибавляя единицу к `visits`.
Кстати, почему в post-запросе не передается viewer_id и auth_key? Ведь должна же быть хоть какая-то проверка данных...
Derial писал(а):базу не создавал так как бесплатный хостинг.
таблицу создавал не SQL запросом.
Каким, извиняюсь, местом у Вас получилось создать таблицу без базы данных и не через SQL?
Re: Помощь в написании серверной части очень простого приложения
Добавлено: 13 мар 2012, 13:44
Derial
gpv123 писал(а):Зайдите в phpMyAdmin и создайте через него таблицу со столбцами `uid` (уникальный), `visits` (по умолчанию равен 1), `level` и т.п.
В `uid` лучше хранить id вк, не надо усложнять себе жизнь.
Т.е не ставить Auto_Incriment(вроде так написал) автозаполнение?
А потом уже при запросе, если такой uid уже существует в таблице, то обновляем значение, прибавляя единицу к `visits`.
Кстати, почему в post-запросе не передается viewer_id и auth_key? Ведь должна же быть хоть какая-то проверка данных...
Derial писал(а):базу не создавал так как бесплатный хостинг.
таблицу создавал не SQL запросом.
Каким, извиняюсь, местом у Вас получилось создать таблицу без базы данных и не через SQL?
База данных там была создана автоматически при моей регистрации на хостинге. Таблицу можно создать SQL запросом а можно и просто кликая по кнопкам.
Попробую исправить по вашим советам, потом отпишусь).