Невозможно сохранить значение на стороне PHP с помощью $ _POST () в переменной, но может легко сохранить его в базе данных - PullRequest
0 голосов
/ 29 марта 2012

Я принимаю значения от Android до PHP. Мой код Android успешно отправляет данные на php-сервер, но мой php-код не может сохранить значение переменной $ _POST () в другой переменной. Но когда я непосредственно помещаю $ _POST () в запрос на вставку, значение сохраняется в база данных. Когда я пытаюсь var_dump ($ _ POST ()), он показывает ноль. Можете ли вы помочь мне, как получить значение $ _POST () в другой переменной.

Код Android

//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 код

//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);
?>

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Ключи массивов в PHP должны быть строками, а не константами.

  • $_POST[UID] становится $_POST["UID"]
  • $_POST[Password] становится $_POST["Password"]
  • и так далее ...

Кроме того, сначала необходимо экранировать эти значения, вам нужно исследовать SQL-инъекцию и mysql_real_escape_string () .

Если проблема сохраняется, введите var_dump($sql) сразу после $sql=... или обратитесь к поставщику программы.

1 голос
/ 29 марта 2012
$UID=$_POST[UID];
$Password = $_POST[Password];
$sql="INSERT INTO login (uid, password) VALUES ('$UID','$Password')";

Лучше сделать так:

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

если есть еще вопросы, спросите меня !!! Всего наилучшего.

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