2015-10-26 94 views
-1

即时通讯新的android和有一个小问题,我想通过mysql表验证用户,但接受任何测试,idk问题在哪里接受所有类型的用户不存在,有人可以帮助我的?登录失败android studio

有我的代码如下:

package com.example.mysqltest; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class Login extends Activity implements OnClickListener{ 

public EditText user, pass; 
public Button mSubmit, mRegister; 

// Progress Dialog 
private ProgressDialog pDialog; 

// JSON parser class 
JSONParser jsonParser = new JSONParser(); 


//testing on Emulator: 
private static final String LOGIN_URL = "http://172.16.2.35:80/webservice/login.php"; 

//JSON element ids from repsonse of php script: 
public static final String TAG_SUCCESS = "success"; 
public static final String TAG_MESSAGE = "message"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 

    //setup input fields 
    user = (EditText)findViewById(R.id.username); 
    pass = (EditText)findViewById(R.id.password); 

    //setup buttons 
    mSubmit = (Button)findViewById(R.id.login); 
    mRegister = (Button)findViewById(R.id.register); 

    //register listeners 
    mSubmit.setOnClickListener(this); 
    mRegister.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.login: 
      new AttemptLogin().execute(); 
     break; 
    case R.id.register: 
      Intent i = new Intent(this, Register.class); 
      startActivity(i); 
     break; 

    default: 
     break; 
    } 
} 

class AttemptLogin extends AsyncTask<String, String, String> { 

    /** 
    * Before starting background thread Show Progress Dialog 
    * */ 
    boolean failure = false; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(Login.this); 
     pDialog.setMessage("Attempting login..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 
    String username = user.getText().toString(); 
    String password = pass.getText().toString(); 
    @Override 
    protected String doInBackground(String... args) { 
     // TODO Auto-generated method stub 
     // Check for success tag 
     int success; 

     try { 
      // Building Parameters 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("username", username)); 
      params.add(new BasicNameValuePair("password", password)); 

      Log.d("request!", "starting"); 
      // getting product details by making HTTP request 
      JSONObject json = jsonParser.makeHttpRequest(
        LOGIN_URL, "POST", params); 

      // check your log for json response 
      Log.d("Login attempt", json.toString()); 

      // json success tag 
      success = json.getInt(TAG_SUCCESS); 
      if (success == 1) { 
       Log.d("Login Successful!", json.toString()); 
       Intent i = new Intent(Login.this, ReadComments.class); 
       finish(); 
       startActivity(i); 
       return json.getString(TAG_MESSAGE); 
      }else{ 
       Log.d("Login Failure!", json.getString(TAG_MESSAGE)); 
       return json.getString(TAG_MESSAGE); 

      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 

    } 
    /** 
    * After completing background task Dismiss the progress dialog 
    * **/ 
    protected void onPostExecute(String file_url) { 
     // dismiss the dialog once product deleted 
     pDialog.dismiss(); 
     if (file_url != null){ 
      Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show(); 
     } 

    } 

} 


} 
+0

你面对什么样的错误,请分享logcat的 –

+0

http://prntscr.com/8vng96 – Gabriel

+0

哪条线是在你的代码115? –

回答

0
<?php 

//load and connect to MySQL database stuff 
require("config.inc.php"); 

if (!empty($_POST)) { 
//gets user's info based off of a username. 
$query = " 
     SELECT 
      id, 
      username, 
      password 
     FROM users 
     WHERE 
      username = :username 
    "; 

$query_params = array(
    ':username' => $_POST['username'] 
); 

try { 
    $stmt = $db->prepare($query); 
    $result = $stmt->execute($query_params); 
} 
catch (PDOException $ex) { 
    // For testing, you could use a die and message. 
    //die("Failed to run query: " . $ex->getMessage()); 

    //or just use this use this one to product JSON data: 
    $response["success"] = 0; 
    $response["message"] = "Database Error1. Please Try Again!"; 
    die(json_encode($response)); 

} 

//This will be the variable to determine whether or not the user's information is correct. 
//we initialize it as false. 
$validated_info = false; 

//fetching all the rows from the query 
$row = $stmt->fetch(); 
if ($row) { 
    //if we encrypted the password, we would unencrypt it here, but in our   case we just 
    //compare the two passwords 
    if ($_POST['password'] === $row['password']) { 
     $login_ok = true; 
    } 
} 

// If the user logged in successfully, then we send them to the private members-only page 
// Otherwise, we display a login failed message and show the login form again 
if ($login_ok) { 
    $response["success"] = 1; 
    $response["message"] = "Login successful!"; 
    die(json_encode($response)); 
} else { 
    $response["success"] = 0; 
    $response["message"] = "Invalid Credentials!"; 
    die(json_encode($response)); 
    } 
    } else { 
    ?> 
    <h1>Login</h1> 
    <form action="login.php" method="post"> 
     Username:<br /> 
     <input type="text" name="username" placeholder="username" /> 
     <br /><br /> 
     Password:<br /> 
     <input type="password" name="password" placeholder="password" value="" /> 
     <br /><br /> 
     <input type="submit" value="Login" /> 
    </form> 
    <a href="register.php">Register</a> 
<?php 
    } 

?> 
+0

开始它有一个代码从登录PHP – Gabriel