2015-06-09 2 views
1

Я использую концепцию входа в систему для Android в этом логином один пользовательский логин в свое время только одно и то же имя пользователя не может войти во второй раз. Он работает нормально. теперь я хочу использовать сессионный тайм-аут на стороне сервера, но он не работает, это значение хранится в сеансе, но не может попасть в другой файл php.Серверная сессия PHP не работает в android

мой Войти код PHP

session_start();     
$_SESSION['user'] =1; 

второй PHP код

session_start(); 
    if(isset($_SESSION['user'])) 
    { 
    //my action 
    } 

Мой андроида код

DefaultHttpClient httpClient = new DefaultHttpClient(); 
      httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109); 
      HttpPost httpPost = new HttpPost(url); 
      httpPost.setHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux " + 
        "i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)"); 
       httpPost.setHeader("Accept", "text/html,application/xml," + 
        "application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); 
       httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
      httpPost.setEntity(new UrlEncodedFormEntity(params)); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 

ответ

1

это ваш код, используемый для первого и второго запроса?

Если это так, проблема заключается в том, что вы всегда создаете нового клиента, что приводит к новому сеансу на сервере, потому что сеансовый файл, который хранится в файле cookie, недоступен.

поэтому создайте свой httpClient один раз и используйте один и тот же экземпляр для обоих запросов. должны решить проблему

как это:

DefaultHttpClient httpClient = new DefaultHttpClient(); 
      httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109); 

      HttpPost httpPost1 = new HttpPost(url1); 

     httpPost1.setHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux " + 
       "i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)"); 
      httpPost1.setHeader("Accept", "text/html,application/xml," + 
       "application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); 
      httpPost1.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
     httpPost1.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost1); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is1 = httpEntity.getContent(); 


     HttpPost httpPost2 = new HttpPost(url2); 
     httpPost2.setHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux " + 
       "i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)"); 
      httpPost2.setHeader("Accept", "text/html,application/xml," + 
       "application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); 
      httpPost2.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
     httpPost2.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse2 = httpClient.execute(httpPost2); 
     HttpEntity httpEntity2 = httpResponse2.getEntity(); 
     is2 = httpEntity2.getContent(); 
+0

Можете ли вы сказать мне, как это сделать. В некотором примере код – Rise

+0

добавлен пример ответа –

Смежные вопросы