2017-03-15 79 views
-1

我已經連接我的Android應用程序與運行在000.webhost.com上的php mysql xampp服務器,我面臨的問題是,PHP腳本給我錯誤的迴應,因爲我是新來的PHP,所以我沒能找出問題連接android與php mysql

這裏是我的登錄腳本:

<?php 
$con = mysqli_connect("localhost", "id1083203_root", "root1", "id1083203_subway"); 
if ($con){ 
echo 'connected'; 

} 
    $email = isset($_POST['em']) ? $_POST['em'] : ""; 
    $password =isset($_POST['pwd']) ? $_POST['pwd'] : ""; 
    $role = isset($_POST['item']) ? $_POST['item'] : ""; 


$statement = mysqli_prepare($con, "SELECT * FROM login WHERE email = ? AND password = ? AND role=?"); 
mysqli_stmt_bind_param($statement, "sss", $email, $password, $role); 
mysqli_stmt_execute($statement); 

mysqli_stmt_store_result($statement); 
mysqli_stmt_bind_result($statement, $id, $email, $password, $role); 

$response = array(); 
$response["success"] = false; 

while(mysqli_stmt_fetch($statement)){ 
    $response["success"] = true; 
    $response["email"] = $email; 
    $response["password"] = $password; 
    $response["role"] = $role; 

} 

echo json_encode($response); 
?> 

,這裏是我的Android端請求的代碼

package yfsoftwares.foodorderingsystem; 

/** 
* Created by user on 15/03/2017. 
*/ 

import android.app.AlertDialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.Toast; 

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

public class Login extends AppCompatActivity implements OnItemSelectedListener { 
String item; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_login); 


    // Spinner element 
    Spinner spinner = (Spinner) findViewById(R.id.spinner1); 
    // Spinner click listener 
    spinner.setOnItemSelectedListener(this); 


    Button btnlogin=(Button)findViewById(R.id.login); 

    final EditText email=(EditText) findViewById(R.id.mail); 
    final EditText password=(EditText) findViewById(R.id.pwd); 

    TextView reg = (TextView)findViewById(R.id.reg); 
    reg.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent nxt = new Intent(getApplicationContext(), RegisterActivity.class); 
      startActivity(nxt); 
     } 
    }); 

    TextView fp = (TextView) findViewById(R.id.forgot_password); 

    fp.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent nxt = new Intent(getApplicationContext(), ForgotPasswordActivity.class); 
      startActivity(nxt); 
     } 
    }); 


    // Spinner Drop down elements 
    List<String> role = new ArrayList<String>(); 
    role.add("admin"); 
    role.add("cook"); 
    role.add("customer"); 

    // Creating adapter for spinner 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, role); 

    // Drop down layout style - list view with radio button 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // attaching data adapter to spinner 
    spinner.setAdapter(dataAdapter); 

    btnlogin.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // get The User name and Password 
      String em=email.getText().toString(); 
      String pwd=password.getText().toString(); 

      // Response received from the server 
      Response.Listener<String> responseListener = new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         Toast.makeText(Login.this, "String is"+response, Toast.LENGTH_LONG).show(); 
         JSONObject jsonResponse = new JSONObject(response); 
         boolean success = jsonResponse.getBoolean("success"); 

         if (success) { 

          Intent intent = new Intent(Login.this, welcome.class); 
          startActivity(intent); 

         } else { 
          AlertDialog.Builder builder = new AlertDialog.Builder(Login.this); 
          builder.setMessage("Login Failed") 
            .setNegativeButton("Retry", null) 
            .create() 
            .show(); 
         } 

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


      Toast.makeText(Login.this, "creds are"+em+pwd+item, Toast.LENGTH_LONG).show(); 
      LoginRequest loginRequest = new LoginRequest(em, pwd,item, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(Login.this); 
      queue.add(loginRequest); 
     } 
    }); 
} 
@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    // On selecting a spinner item 
    item = parent.getItemAtPosition(position).toString(); 

    // Showing selected spinner item 
    // Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); 
} 

public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
}} 
+0

你會得到什麼迴應? –

+0

我得到錯誤而不是真實的 –

回答

0

試試這個我想它會W¯¯ ork

<?php 
$con = mysqli_connect("localhost", "id1083203_root", "root1", "id1083203_subway"); 
if ($con){ 
echo 'connected'; 
$email = isset($_POST['em']) ? $_POST['em'] : ""; 
    $password =isset($_POST['pwd']) ? $_POST['pwd'] : ""; 
    $role = isset($_POST['item']) ? $_POST['item'] : ""; 


$statement = mysqli_prepare($con, "SELECT * FROM login WHERE email = ? AND password = ? AND role=?"); 
mysqli_stmt_bind_param($statement, "sss", $email, $password, $role); 
mysqli_stmt_execute($statement); 

mysqli_stmt_store_result($statement); 
mysqli_stmt_bind_result($statement, $id, $email, $password, $role); 

$response = array(); 
$response["success"] = false; 

while(mysqli_stmt_fetch($statement)){ 
    $response["success"] = true; 
    $response["email"] = $email; 
    $response["password"] = $password; 
    $response["role"] = $role; 

} 

echo json_encode($response); 

} 
else 
{ 
    echo "connection failed"; 
} 

?>