2014-02-02 3 views
0

Я разрабатываю свой первый знак, следуя этому article. Я прочитал еще пару других, но для меня это кажется простым/интуитивным, особенно когда я захочу сделать что-то большее, чем знак.Android Sign In test

Мне пришлось внести некоторые изменения в скрипт PHP, который был используемый.

ОБНОВЛЕНИЕ У меня два сценария php, это правильный, последний был для метода _GET.

<?php 
$con=mysql_connect("...");//deleted for privacy 
mysql_select_db("..");//deleted for privacy 
if (!$con) 
{ 
    echo "Failed to connect to MySQL: " . mysql_error(); 
    die(); 
} 
$username = $_POST['username']; 
$password = $_POST['password']; 

$query=mysql_query("SELECT username FROM users"); 
echo $query;echo $query;echo $query;echo $query; 
if($query){ 
    $row = mysql_fetch_assoc($query); 
    $data = $row['username']; 
    echo $data; 
}else{ 
    echo "something went wrong:".mysql_error(); 
} 
mysql_close($con); 
?> 

В любом случае я не думаю, что ошибка находится в PHP, как я запустить скрипт на моем браузере, используя соответствующие значения в URL для имени пользователя/пароля и выводит ответ я ищу для (это просто имя пользователя). Вот моя измененная SignInActivity.

package com.example.phpmysql; 
    public class LogInBackgroundActivity extends AsyncTask<String,Void,String>{ 
    private Context context; 
    public AsyncResponse delegate=null; 
    public LogInBackgroundActivity(Context context) { 
     this.context=context; 
    } 
    @Override 
    protected String doInBackground(String... arg0) { 
     String address ="...";//hidden for privacy 
    try{ 
     String username = (String)arg0[0]; 
     String password = (String)arg0[1]; 
     address+="login_post.php"; 
     String data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8"); 
     data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8"); 
     URL url = new URL(address); 
     URLConnection conn = url.openConnection(); 
     conn.setDoOutput(true); 
     OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
     wr.write(data); 
     wr.flush(); 
     BufferedReader reader = new BufferedReader(new  InputStreamReader(conn.getInputStream())); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     // Read Server Response 
     while((line = reader.readLine()) != null){ 
      sb.append(line); 
      break; 
     } 
     return sb.toString(); 
    }catch(Exception e){ 
     return new String("Exception: " + e.getMessage()); 
    } 
    } 
    @Override 
    protected void onPostExecute(String result){ 

     if(result.length()>0) 
     delegate.processFinished(result); 
     else 
      delegate.processFinished("Something Odd"); 
    } 
} 

То, что я понял из учебника является то, что все, что печатается на PHP скрипт присылают обратно с onPostExecute(..). AsyncResponse - это просто интерфейс, который я создал для переноса этих данных обратно в основное действие, в соответствии с этим question.

Это данные, которые я хочу, и он возвращается пустым.

Я тестирую на реальном устройстве, поэтому у меня нет сообщений о регистрации logcat.

ответ

0

Я использовал mysqli_*, так как он используется в учебнике, и это, похоже, решило проблему.