Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5

Coockie, хранение PHPSESSID во время работы приложения

20.12.2013, 14:48. Показов 2380. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой случай, есть скрипт на сервере, который добавляет коммент к посту, для того чтобы добавить этот коммент нужно ввести капчу.

Когда я в android-клиент загружаю сам пост и форму добавления коммента, картинку с капчей я загружаю в webView обчным способом loadUrl().

Таким образом я отправляю запрос на сервер чтобы получить оттуда какие либо данные:
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
public String exe(final String stringURL, final JSONObject jsonobj, final String parameters){ 
        
        HttpURLConnection connection;
        OutputStreamWriter request = null;
 
        URL url = null;   
        String response = null;         
                  
                try
                {
                    url = new URL(stringURL);
                    connection = (HttpURLConnection) url.openConnection();
                    connection.setDoOutput(true);
                    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                    connection.setRequestMethod("POST");    
 
                    request = new OutputStreamWriter(connection.getOutputStream());
                    request.write(parameters);
                    request.flush();
                    request.close();            
                    String line = "";               
                    InputStreamReader isr = new InputStreamReader(connection.getInputStream());
                    BufferedReader reader = new BufferedReader(isr);
                    StringBuilder sb = new StringBuilder();
                    while ((line = reader.readLine()) != null)
                    {
                        sb.append(line + "\n");
                    }
                    // Response from server after login process will be stored in response variable.                
                    response = sb.toString();
                    // You can perform UI operations here
                    //Log.d("mylog", "postJSON 2: "+response);
                    
                    isr.close();
                    reader.close();
                    
                    
                    
                    
                }
                catch(IOException e)
                {
                    
                }
                return response;
    }
Так вот, как правильно делать запрос чтобы хранилась PHPSESSID, чтоб при каждом запросе, сервер знал что это все в пределах одной сессии? Сессия должна жить до тех пор пока приложение в загружено в памяти, если мы вышли из приложения и потом опять зашли - то это уже новая сессия. А так в данном случае получается что когда я загрузил форму с картинкой капчи - это одна сессия, а когда я отправляю коммент и код капчи - то это уже другая сессия, и сервер не пропустит этот запрос. Как решить эту проблему?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2013, 14:48
Ответы с готовыми решениями:

Как установить время жизни 1 день для PHPSESSID в Laravel 5?
как установить время жизни 1 день для PHPSESSID в Laravel 5 и как сделать все существующие не действительными?

Ошибка во время работы приложения
Доброго времени суток. Во время работы приложения вылетает такая ошибка. Пробовал переустановить - не помогает. Microsoft .NET Framework...

Блокировка ip во время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался ip например 145.345.8.9?

2
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
20.12.2013, 15:36
Sanu0074, сохраняйте Cookie после первого соединения. Используйте CookieManager http://developer.android.com/r... nager.html

F.e.
Java
1
2
3
4
URLConnection conn = u.openConnection();
 CM.setCookies(conn);
 conn.connect();
 CM.storeCookies(conn);
Где CM - инстанс менеджера.
1
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
20.12.2013, 19:45  [ТС]
Цитата Сообщение от YuraAAA Посмотреть сообщение
Sanu0074, сохраняйте Cookie после первого соединения. Используйте CookieManager
Как это реализовать на моем примере? как тут добавить setCoockie?

Добавлено через 1 час 38 минут
Вот я пытаюсь получить PHPSESSID при превом запуске:

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
              InputStream is = null; 
                // HTTP 
                try {             
                    HttpClient httpclient = new DefaultHttpClient(); // for port 80 requests! 
                    HttpPost httppost = new HttpPost(stringURL);
                    HttpResponse response = httpclient.execute(httppost); 
                    HttpEntity entity = response.getEntity(); 
                    is = entity.getContent(); 
                } catch(Exception e) { 
                    return; 
                } 
                // Read response to string 
                try {             
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8); 
                    StringBuilder sb = new StringBuilder(); 
                    String line = null; 
                    while ((line = reader.readLine()) != null) { 
                        sb.append(line + "\n"); 
                    } 
                    is.close(); 
                    out = sb.toString();      
                } catch(Exception e) { 
                    return; 
                }
На сервере прописано в скрипте куда обращаюсь с клиента:

PHP
1
exit($_COOKIE['PHPSESSID']);
В логах в клиента, возвращает ошибку PHP - undefinet index PHPSESSID

А вот если я с браузера к этому скрипту обращаюсь - то в браузер выводится именно PHPSESSID как оно должно быть (кука)!

Почему так? Что нужно чтобы при запросе с андроида выводил куку, а не undefinet index PHPSESSID?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2013, 19:45
Помогаю со студенческими работами здесь

Определить время работы приложения
помогите пожалуйста вывести время программы за которое оно работает #include <stdio.h> #include <string.h> int...

Не видно уведомление во время работы приложения
Я разрабатываю под андроид приложение для радиостанции. Когда запускаю приложение,должно вверху выскакивать уведомление со значком...

Смена языка приложения во время работы
Добрый день. Подскажите, как сменить язык во время работы приложения? Thread.CurrentThread.CurrentUICulture = new...

Закрыть порт на время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался для исходящий подключений порт например 7777, а после...

Повышение прав приложения во время работы
Имеется проект графической программы. Этой программе необходимо во время работы повышать права до суперпользователя. Во время работы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru