我正在开发一款Android应用。对于登录我需要发送数据库的数据,但是当我尝试在编码后使用$ _POST数组时它似乎是空的(我试图打印响应,我认为这是我的问题)。
这是我的应用程序中的javacode:
private String register (String username, String password, String number) {
String reg_url = "myDomain/register.php";
try {
URL url = new URL(reg_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestProperty("Accept-Charset", "UTF-8");
httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("username", "UTF-8") + " = " + URLEncoder.encode(username, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + " = " + URLEncoder.encode(password, "UTF-8") + "&" +
URLEncoder.encode("number", "UTF-8") + " = " + URLEncoder.encode(number, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(IS,"iso-8859-1"));
String response = "";
String line;
while ((line = bufferedReader.readLine())!=null) response += line ;
Log.i("Response", response);
IS.close();
bufferedReader.close();
if (!response.toLowerCase().contains("fail"))
return Language.registered;
else
return Language.aProblemOccurred;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return Language.aProblemOccurred;
} catch (IOException e) {
e.printStackTrace();
return Language.aProblemOccurred;
}
}
这是注册的简单php代码:
<?php
require "init.php";
$username = $_POST["username"];
$password = $_POST["password"];
$number = $_POST["number"];
$mpt = "1";
$sql_query = "insert into Users values( '$mpt' , '$number' , '$username' , '$password' , '$number', '$mpt' , '$mpt' , '$mpt' , '$mpt' , '$mpt' , '$mpt' , '$mpt' );";
if ( mysqli_query ( $res , $sql_query ) )
{
echo "<h3> Data Insert Success...".$number.$password.$username.$_POST["password"]."<h3>";
}
else
{
echo "Data Insert fail: Error:".mysqli_error($res).$number.$password.$username;
}
?>
有人可以帮助我????
答案 0 :(得分:0)
我实际上不知道java我知道基础知识,但我还没有在3年内使用它,所以我不知道你是如何从用户的post方法获得价值的。但是,您可以使用url作为get方法来获取用户的输入。
"myDomain/register.php?username=abc&password=qwqw1w1"
然后把它作为php中的get funtion。或者您可以先在变量中输入用户输入,然后使用POST方法将它们发送到php,这应该可以正常工作
$username = $_GET["username"];
$password = $_GET["password"];
$number = $_GET["number"];