我的注册PHP程序
<?php
require "conn.php";
$name =$_POST["name"];
$email =$_POST["email"];
$password =$_POST["password"];
$sql_query = "insert into register (uname,email,upassword) values('$name','$email','$password');";
if(mysqli_query($conn,$sql_query))
{
//echo "data inserted";
}
else
{
//echo "error";
}
?>
RegistractionActivity布局
package com.example.aclientz.aclientzcds;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{
EditText et_username,et_useremail,et_userpassword;
Button register;
String name,email,password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
et_username=(EditText) findViewById(R.id.name);
et_useremail=(EditText) findViewById(R.id.email);
et_userpassword=(EditText) findViewById(R.id.password);
register=(Button) findViewById(R.id.register);
register.setOnClickListener(this);
}
@Override
public void onClick(View v) {
name = et_useremail.getText().toString();
email = et_useremail.getText().toString();
password = et_userpassword.getText().toString();
String type="register";
BackgroundProcess backgroundProcess = new BackgroundProcess(this);
backgroundProcess.execute(type, name, email, password);
finish();
}
}
我的异步后台进程页面代码
package com.example.aclientz.aclientzcds;
import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
/**
* Created by ProgrammingKnowledge on 1/5/2016.
*/
public class BackgroundProcess extends AsyncTask<String,Void,String> {
Context context;
AlertDialog alertDialog;
BackgroundProcess (Context ctx) {
context = ctx;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Login Status");
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "http://192.168.1.2/login.php";
String register_url="http://192.168.1.2/reg.php";
if (type.equals("register")) {
String name = params[1];
String email = params[2];
String password = params[3];
try {
URL url = new URL(register_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8") + "&" +
URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(email, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
IS.close();
//httpURLConnection.connect();
httpURLConnection.disconnect();
return "Registration Success...";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else if(type.equals("login")) {
try {
String user_email = params[1];
String user_password = params[2];
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("user_email","UTF-8")+"="+URLEncoder.encode(user_email,"UTF-8")+"&"
+URLEncoder.encode("user_password","UTF-8")+"="+URLEncoder.encode(user_password,"UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = bufferedReader.readLine())!= null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
if(result.equals("Registration Success..."))
{
Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}
else
{
alertDialog.setMessage(result);
alertDialog.show();
}
// Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
我的Android显示以下错误,我的数据未插入 数据库
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aclientz.aclientzcds, PID: 29591
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.example.aclientz.aclientzcds.BackgroundProcess.onPostExecute(BackgroundProcess.java:110)
at com.example.aclientz.aclientzcds.BackgroundProcess.onPostExecute(BackgroundProcess.java:23)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5576)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
答案 0 :(得分:0)
使用单引号:
$name =$_POST['name'];
$email =$_POST['email'];
$password =$_POST['password'];
而不是双引号:
$name =$_POST["name"];
$email =$_POST["email"];
$password =$_POST["password"];