2012-03-29 8 views
0

Ich akzeptiere Werte von Android zu PHP. Mein Android-Code sendet erfolgreich Daten an PHP-Server, aber mein PHP-Code ist nicht in der Lage, den Wert der Variablen $ _POST() in einer anderen Variable zu speichern. Aber wenn ich die $ _POST() in einfügen-Abfrage setzen, wird der Wert in gespeichert Die Datenbank. Wenn ich var_dump ($ _ POST()) versuche, zeigt es null. Können Sie mir helfen, wie Sie den Wert $ _POST() in einer anderen Variable erhalten.

Android-Code

//send.java 
package com.exg.zzz; 

import java.io.IOException; 
import java.util.ArrayList; 

import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 

import android.app.Activity; 
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 send extends Activity { 
EditText edit_uid,edit_pwd; 
Button btn_login; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    edit_uid=(EditText) findViewById(R.id.edit_uid); 
    edit_pwd=(EditText) findViewById(R.id.edit_pwd); 
    btn_login=(Button) findViewById(R.id.btn_login); 

    btn_login.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      http_connection(); 
     } 
    }); 
} 

void http_connection() 
{ 

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
    nameValuePairs.add(new BasicNameValuePair("Password",edit_pwd.getText().toString())); 
    nameValuePairs.add(new BasicNameValuePair("UID",edit_uid.getText().toString())); 

    HttpClient httpclient1 = new DefaultHttpClient(); 
    HttpPost httppost1 = new HttpPost("http://10.0.2.2/userins1.php"); 
    Log.v("localhost", "executed"); 
    try { 
     httppost1.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
         httpclient1.execute(httppost1); 
         } catch (ClientProtocolException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
        Toast.makeText(this, "Added", Toast.LENGTH_SHORT).show(); 

} 
} 

PHP-Code

//userins1.php 
<?php 
$username = "root"; 
$password = ""; 
$hostname = "localhost"; 

//var_dump() display the data type and contents of the variable 
//but it displaying NULL for string data 
var_dump($_POST[UID]); 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 

//select a database to work with 
$selected = mysql_select_db("akshay",$dbhandle) 
or die("Could not select examples"); 

//execute the SQL query and return records 
//this qyery is successfully inserting the data 
$sql="INSERT INTO login (uid, password) VALUES ('$_POST[UID]','$_POST[Password]')"; 

if (!mysql_query($sql,$dbhandle)) 
{ 
    die('Error: ' . mysql_error()); 
} 

mysql_close($dbhandle); 
?> 

Antwort

3

Array Schlüssel in PHP sollten Strings keine Konstanten sein.

  • $_POST[UID] wird $_POST["UID"]
  • $_POST[Password]$_POST["Password"]
  • so weiter wird ...

Auch sollten diese Werte zunächst entwertet werden, müssen Sie SQL-Injection erforschen und mysql_real_escape_string().

Wenn das Problem weiterhin besteht, setzen Sie direkt nach $sql=... oder wenden Sie sich an den Programmanbieter.

1
$UID=$_POST[UID]; 
$Password = $_POST[Password]; 
$sql="INSERT INTO login (uid, password) VALUES ('$UID','$Password')"; 

Es ist besser, wie dies zu tun:

String Password =edit_pwd.getText().toString())); 
String UID=edit_uid.getText().toString()); 
nameValuePairs.add(new BasicNameValuePair("Password",Password); 
    nameValuePairs.add(new BasicNameValuePair("UID",UID); 

wenn mehr Abfrage mich fragen !!! n alles Gute.

Verwandte Themen