Android Http Войти сообщение - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь зайти на свой сайт через приложение Android.Почему-то всегда не удается войти в систему.

Вот мой метод входа в приложение:


private void login() {

         //this method returns false
         HttpClient httpclient = new DefaultHttpClient();  
         HttpPost httppost = new HttpPost("http://mysite.com/mobileauth.php");
         JSONObject jsonObject = new JSONObject();

           try {  

               List nameValuePairs = new ArrayList(2);  
               jsonObject.put("username", "user1");
               jsonObject.put("password", "12345");

               nameValuePairs.add(new BasicNameValuePair("jsonString", jsonObject.toString()));               

               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
               HttpResponse response = httpclient.execute(httppost);



               String responseStr = org.apache.http.util.EntityUtils.toString(response.getEntity());
               statusText.setText(responseStr);

           } catch (ClientProtocolException e) {  
               statusText.setText(e.toString());
           } catch (IOException e) {   
               statusText.setText(e.toString());
           } catch (JSONException e) {
               statusText.setText(e.toString());
           }
}

Я создал специальный файл для входа в систему на мобильном устройстве, например Android.

Вот мой файл аутентификации на сервере:


$host="*"; // Host name 
$username="*"; // Mysql username 
$password="*"; // Mysql password 
$tbl_name="users"; // Table name
$db_name="database";

$link = mysql_connect($host, $username, $password) or die("Connection Error"); 
$db = mysql_select_db("$db_name")or die("Connection Error");

$myusername = $_REQUEST['username']; 
$mypassword = $_REQUEST['password'];

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' AND paswd='$mypassword'";
$result = mysql_query($sql);

$count = mysql_num_rows($result);

if ($count == 1) {
    $timeUpdateQuesry="UPDATE users SET lastLogin=Now() WHERE username='$myusername' AND paswd='$mypassword'";
    mysql_query($timeUpdateQuesry);

    echo("true");
} else {
    //happend without leaving page
    echo ("false");
}

По какой-то причине я всегда получаю false в своем статусе TextView.

Буду признателен за любую помощь

Спасибо,

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Вы размещаете объект JSON, но пытаетесь проанализировать переменные REQUEST (т.е. переменные $ _GET / $ _ POST / $ _ COKIE).

Не слишком уверен насчет Java, но я подозреваю, что он назначил сериализованный объект JSON объектупеременная post с именем jsonString.(Вы можете легко проверить, написав простой PHP-скрипт, чтобы выгрузить все $ _POST, $ _GET и $ HTTP_RAW_POST_DATA)

В этом случае получить значения в php:

$jsonString=json_decode($_POST['jsonString']);
$myusername = $jsonString['username']; 
$mypassword = $jsonString['password'];
0 голосов
/ 27 июня 2011

Удалите все JSON из вашего кода Android.Вы не получаете его как JSON на стороне PHP, так что это, вероятно, основная причина.NameValuePairs должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...