2016-04-10 2 views
1

Ich versuche, Daten von Android in Online-Datenbank einzufügen, gibt meine App keinen Fehler, so dass ich es beheben kann, funktionierte es gut, wenn ich meine App an localhost angeschlossen und es eingefügt wurde Daten erfolgreich, aber wenn ich versuche, Daten in Online-Datenbank einzufügen, funktioniert es nicht. Kann mir jemand sagen, was ich falsch mache? Bevor Sie sich meinen Code ansehen, möchte ich, dass Sie sich meine Hosting-Informationen ansehen, falls Sie denken, dass ich etwas falsch mache. Dateneinfügung in Online-Datenbank von Android

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 

meine db Verbindungsdatei:

<?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"; 
} 
?> 

diese

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(); 
      } 

Antwort

0

background.java Datei ist Es scheint, dass in Code, den Sie haven‘ t gepostet Sie überprüfen, ob der Browser unterstützt JavaScript. Ein Android HttpURLConnection verarbeitet JavaScript nicht, so dass Ihre Anfrage fehlschlägt. Das Ergebnis, das Sie erhalten, ist dies:

<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> 

ich im Teil Ihrer Website suchen würde vorschlagen, dass dieser Code erzeugt und es für Ihre API-Dateien zu deaktivieren, da ein API-Client nie verarbeiten JavaScript zu erwarten wäre.

+0

aber ich habe ein Tutorial gefolgt und es funktioniert gut mit ihm – user3149023

+0

und ich habe nichts auf meiner Website, benutze den Server für die Datenbank, so dass ich App Daten auf dem Server nichts anderes hochladen kann. – user3149023

+0

@ user3149023 Es tut mir leid, aber Sie haben sicherlich anderen Code ausgeführt. Löschen Sie Ihre Cookies und besuchen Sie dann die URL "http: // securekid.base.pk/app/register.php" in Ihrem Browser und schauen Sie, wo Sie landen. Sie werden feststellen, dass Sie sich unter 'http: //securekid.base.pk/app/register.php? Ckattempt = 1' befinden. Frag dich nun, wo der Code ist, der diese Umleitung erzeugt hat. – Chris