我正在尝试将数据从android插入到在线数据库,我的应用程序没有给出任何错误,以便我可以修复它,它工作正常,当我将我的应用程序连接到localhost并且它成功插入数据但当我尝试将数据插入在线数据库它不起作用。谁能告诉我我做错了什么? 在你查看我的代码之前,我希望你查看我的托管信息,以防你们认为我做错了。
Main Domain securekid.base.pk
FTP hostname: ftp.base.pk
FTP username: basep_****
MySQL hostname: sql104.base.pk
MySQL username: basep_****
Hosting Volume vol14_2
我的数据库连接文件:
<?php
$host = "sql104.base.pk";
$user = "basep_****";
$password = "******";
$db = "basep_*****_android";
$con = mysqli_connect($host, $user, $password, $db);
if($con)
{
echo "successful";
}
else
{
die("error" . mysqli_connect_error());
}
?>
register.php
<?php
require "db_connect.php";
$username =$_POST["username"];
$password =$_POST["password"];
$phone_no =$_POST["phone_no"];
$mysql_qry = "insert into user(username,password,phone_no) values('$username', '$password', '$phone_no')";
if($con->query($mysql_qry) === TRUE)
{
echo "Registration Successful";
}
else{
echo "failed";
}
?>
这是background.java文件
class backgroundTask extends AsyncTask<String,Void,String> {
AlertDialog alertDialog;
Context ctx;
// Globals session_id = Globals.getInstance();
// Globals session_id_child = Globals.getInstance();
backgroundTask(Context ctx) {
this.ctx = ctx;
}
String reg_url;
@Override
protected void onPreExecute() {
reg_url = "http://securekid.base.pk/app/register.php";
}
@Override
protected String doInBackground(String... args) {
String method = args[0];
if (method.equals("register")) {
String username = args[1];
String password = args[2];
String phone_no = args[3];
try {
URL url = new URL(reg_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("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8") + "&" +
URLEncoder.encode("phone_no", "UTF-8") + "=" + URLEncoder.encode(phone_no, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
IS.close();
//httpURLConnection.connect();
httpURLConnection.disconnect();
return "Registration Successful";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
看来,在您发布的代码中,您正在检查浏览器是否支持JavaScript。 Android HttpURLConnection不会处理JavaScript,因此您的请求将失败。你得到的结果是:
<html>
<body>
<script type="text/javascript" src="/aes.js" ></script>
<script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f
<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("b9a6c9d5cb703e2906de146c3bad1187");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; document.cookie="referrer="+escape(document.referrer); location.href="http://securekid.base.pk/app/register.php?ckattempt=1";
</script>
<noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript>
</body>
</html>
我建议您查看网站中生成该代码并禁用API文件的部分,因为API客户端永远不会处理JavaScript。