Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
#1

Своя авторизация - Android

04.02.2014, 19:01. Просмотров 1870. Ответов 10
Метки нет (Все метки)

Доброе время суток,

Есть Web ресурс с базой пользователь (Joomla 2.5). Нужно сделать

1. вход по логину/паролю
1.1 проверять есть ли такой человек
1.2. есть поле "block", если там 1, удалять сохраненные данные программы

2. если человека нет в базе, удалить программу с устройства

Добавлено через 49 минут
ДОПОЛНЕНИЕ:
1. База MySQL, хотелось бы работать с ней напрямую, знаю что этого делать не советуют
2. Сохранять пароль пользователя в локальной базе, и при отсутствии доступа к Интернет проверять локально (но требовать обязательный ввод)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
05.02.2014, 01:56     Своя авторизация #2
Всю работу проводите через client (parse json \ send json) \ server (send json\ get request)

наглядный пример
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
05.02.2014, 12:31  [ТС]     Своя авторизация #3
Цитата Сообщение от dajver Посмотреть сообщение
Всю работу проводите через client (parse json \ send json) \ server (send json\ get request)

наглядный пример
попробовал тот пример который Вы дали, странная штука, если открываю готовый код то все норм, если создаю свой проект и копирую код из текста выдает ошибку в MainActivity на
Java
1
intent.putExtra(SecondActivity.JsonURL, response.toString());
ругается на JsonURL
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
05.02.2014, 12:51     Своя авторизация #4
А утвас есть такая переменная в сееконд активити, она паблик?
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
05.02.2014, 13:07  [ТС]     Своя авторизация #5
Цитата Сообщение от dajver Посмотреть сообщение
А утвас есть такая переменная в сееконд активити, она паблик?
Вы правы, я вообще забыл скопировать код в Secondactivity

Добавлено через 2 минуты
можете еще подсказать, делаю все по примеру, но не реагирует на JSONParser.

Использую Eclipse, закинул файл в libs, добавил в Java Build Path->Libraries и Order and Export но в классах не распознается JSONParser. Может я что то не так делаю
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
05.02.2014, 13:27     Своя авторизация #6
Цитата Сообщение от skynet120 Посмотреть сообщение
можете еще подсказать, делаю все по примеру, но не реагирует на JSONParser.

Использую Eclipse, закинул файл в libs, добавил в Java Build Path->Libraries и Order and Export но в классах не распознается JSONParser. Может я что то не так делаю

Я бы на вашем месте использовал или либу gson или стандартные функции андроида.
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
05.02.2014, 13:36  [ТС]     Своя авторизация #7
Цитата Сообщение от dajver Посмотреть сообщение
Я бы на вашем месте использовал или либу gson или стандартные функции андроида.
я вроде использую либу json (она есть в примере), закидываю ее в папку libs, но в классах все равно не находит JSONParser
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
05.02.2014, 13:39     Своя авторизация #8
Цитата Сообщение от skynet120 Посмотреть сообщение
я вроде использую либу json (она есть в примере), закидываю ее в папку libs, но в классах все равно не находит JSONParser
откройте папку libs в еклипсе, нажмите по либе правой кнопкой, дальше найтите build path и в нем должно быть add to build path, нажмите, и после этого нажмите комбинацию клавишь ctrl + shift + o
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
05.02.2014, 14:34  [ТС]     Своя авторизация #9
Цитата Сообщение от dajver Посмотреть сообщение
откройте папку libs в еклипсе, нажмите по либе правой кнопкой, дальше найтите build path и в нем должно быть add to build path, нажмите, и после этого нажмите комбинацию клавишь ctrl + shift + o
у меня есть Configure Build Path, и там есть мой json.jar в Android Private Libraries
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
07.02.2014, 13:51     Своя авторизация #10
Цитата Сообщение от skynet120 Посмотреть сообщение
у меня есть Configure Build Path, и там есть мой json.jar в Android Private Libraries
я не знаю чем помочь) используйте стандартный гсон который есть в джаве
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2014, 12:49     Своя авторизация
Еще ссылки по теме:

Своя картинка на каждый раздел Items Android
Android Своя картинка на каждом разделе Spinner
своя служба Android
Android Авторизация
Своя камера в мобильном приложении, что да как? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
14.02.2014, 12:49  [ТС]     Своя авторизация #11
помогите составить JSON запрос который
1. отправит user и login
2. заберет данные из переменной ress

сейчас есть файл который формирует переменную ress
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
    /* Initialize Joomla framework */
    if (!defined('_JEXEC')) {
        define( '_JEXEC', 1 );
        define('JPATH_BASE', dirname(__FILE__) );
        define( 'DS', DIRECTORY_SEPARATOR );
        /* Required Files */
        require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
        require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
        /* To use Joomla's Database Class */
        require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
        /* Create the Application */
        $app = JFactory::getApplication('site')->initialise();
    }
 
 
if(isset($_POST["pass"])) {
 
$login = $_POST["login"];
$password = $_POST["pass"];
$ress = 0;
 
$user = JUser::getInstance($login);
$block = $user->get('block');
 
if($block==0) {
$credentials = array( 'username' => $login, 'password' => $password);
    $login_site = JFactory::getApplication('site');
    if($login_site->login($credentials, $options=array())) {
      echo "You are login";
      $ress = 1;
    }
    else {
      echo "Login faild";
      $ress = 0;
    }
  }
  else {
    echo "You are block";
    $ress = 0;
  }
}
?>
 
<!DOCTYPE HTML>
<html>
  <head></head>
<body>
  <form method="POST" action="">
    <input type="text" name="login" placeholder="login" />
    <input type="text" name="pass" placeholder="password" />
    <input type="submit" />
  </form>
</body>
</html>
Добавлено через 1 час 42 минуты
я немного переделал файл
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if(isset($_POST["pass"])) {
 
$login = $_POST["login"];
$password = $_POST["pass"];
$ress = 0;
 
$user = JUser::getInstance($login);
$block = $user->get('block');
 
if($block==0) {
$credentials = array( 'username' => $login, 'password' => $password);
    $login_site = JFactory::getApplication('site');
    if($login_site->login($credentials, $options=array())) {
      $ress = 1;
      ?> {"data":[{"login":"вы вошли, все норм"}]} <?php
    }
    else {
      $ress = 0;
      ?> {"data":[{"login":"пароль не верен"}]} <?php
    }
  }
  else {
    $ress = 0;
    ?> {"data":[{"login":"проверте логин"}]} <?php
  }
}
?>
пытаюсь взять с него данные по инструкции, но вылетает ошибка Error parsing data org.json.JSONException: Value You of type java.lang.String cannot be converted to JSONObject

Добавлено через 1 час 41 минуту
разобрался, все работает

Добавлено через 18 часов 24 минуты
подскажите как можно оптимизировать код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class SecondActivity extends Activity {
 
        public static String JsonURL;
        private static ArrayList<HashMap<String, Object>> myBooks;
        private static final String FIRST = "firstname";
        private static final String LAST = "lastname";
        public ListView listView;
 
        /** @param result */
        public void JSONURL(String result) {
 
                try {
                        //создали читателя json объектов и отдали ему строку - result
                        JSONObject json = new JSONObject(result);
                        //дальше находим вход в наш json им является ключевое слово data
                        JSONArray urls = json.getJSONArray("data");
                        //проходим циклом по всем нашим параметрам
                        for (int i = 0; i < urls.length(); i++) {
                                HashMap<String, Object> hm;
                                hm = new HashMap<String, Object>();
                                //читаем что в себе хранит параметр firstname
                                hm.put(FIRST, urls.getJSONObject(i).getString("firstName").toString());
                                //читаем что в себе хранит параметр lastname
                                hm.put(LAST, urls.getJSONObject(i).getString("lastName").toString());
                                myBooks.add(hm);
                                //дальше добавляем полученные параметры в наш адаптер
                                SimpleAdapter adapter = new SimpleAdapter(SecondActivity.this, myBooks, R.layout.list,
                                                new String[] { FIRST, LAST, }, new int[] { R.id.text1, R.id.text2 });
                                //выводим в листвбю
                                listView.setAdapter(adapter);
                                listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
                        }
                } catch (JSONException e) {
                        Log.e("log_tag", "Error parsing data " + e.toString());
                }
        }
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
 
                super.onCreate(savedInstanceState);
                setContentView(R.layout.url);
                listView = (ListView) findViewById(R.id.list);
                myBooks = new ArrayList<HashMap<String, Object>>();
                //принимаем параметр который мы послылали в manActivity
                Bundle extras = getIntent().getExtras();
                //превращаем в тип стринг для парсинга
                String json = extras.getString(JsonURL);
                //передаем в метод парсинга
                JSONURL(json);
        }
}
Насколько я понял он предназначен для получения нескольких строк текста, мне нужно получить только одно значение (0 или 1)
Yandex
Объявления
14.02.2014, 12:49     Своя авторизация
Ответ Создать тему
Опции темы

Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru