私のアプリケーションで登録アクティビティを作成したいと思います。私は、サーバーに常駐し、同じサーバー上のデータベースに接続し、データベースにデータを挿入するphpファイルに接続したいと考えています。このエラーまたはIにデータを挿入することが可能な任意の他のコードを解決する方法org.json.JSONException:java.lang.String型の値<htmlがJSONObjectに変換できません
<?php
$host='HOST_NAME';
$uname='USER_NAME';
$pwd='PASSWORD';
$db='DATABASE_NAME';
$con = mysqli_connect("$host","$uname","$pwd","$db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$password=$_REQUEST['password'];
$phone=$_REQUEST['phone'];
$flag['code']=0;
if($r = mysqli_query($con,"INSERT INTO register VALUES('','$name', '$email', '$password',$phone)"))
{
$flag['code']=1;
}
print(json_encode($flag));
mysqli_close($con);
?>
insert.php
RegisterActivity.java
package com.tejas.paras.ourapp;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class RegisterActivity extends AppCompatActivity {
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
EditText name1;
EditText email1;
EditText password1;
EditText phone1;
InputStream is=null;
String result=null;
String line=null;
int code;
String name, email, phone, password;
Button btnreg;
private static String url_create_product ="http://www.painnation.esy.es/create_product.php";
private static final String TAG_SUCCESS = "success";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
name1 = (EditText) findViewById(R.id.editText3);
email1 = (EditText) findViewById(R.id.editText4);
password1 = (EditText) findViewById(R.id.editText6);
phone1 = (EditText) findViewById(R.id.editText8);
// Create button
btnreg = (Button) findViewById(R.id.button);
btnreg.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
name = name1.getText().toString();
email = email1.getText().toString();
password = password1.getText().toString();
phone = phone1.getText().toString();
insert();
}
});
}
public void insert()
{
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", name));
nameValuePairs.add(new BasicNameValuePair("email", email));
nameValuePairs.add(new BasicNameValuePair("password", password));
nameValuePairs.add(new BasicNameValuePair("phone", phone));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("URL TO PHP FILE ON SERVER");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("pass 1", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 1", e.toString());
Toast.makeText(getApplicationContext(), "Invalid IP Address",
Toast.LENGTH_LONG).show();
}
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.e("pass 2", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 2", e.toString());
}
try
{
JSONObject json_data = new JSONObject(result);
code=(json_data.getInt("code"));
if(code==1)
{
Toast.makeText(getBaseContext(), "Inserted Successfully",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getBaseContext(), "Sorry, Try Again",
Toast.LENGTH_LONG).show();
}
}
catch(Exception e)
{
Log.e("Fail 3", e.toString());
}
}
}
データベース。
ありがとうございます。
あなたは 'if'の中で' hi'をエコーしていますが、それはその時点で有効なjsonではありません...また、 'mysql_ *'関数を使わないでください。 PHP7)。さらに詳しく:あなたはSQLインジェクションを広く利用できます。 '$ email'、' $ password'、 '$ phone'はどこから来ますか? PHPスクリプトでは未定義の変数です。 – ccKep
ただ応答を印刷してみてください。 – Anil
あなたのphpスクリプトは実際に '非推奨:mysql_connect()をプリントします:mysql拡張機能は廃止され、今後削除されます:[...]/insert.php in line 7 {" code " 0} ' - これは解析可能なJSONではありません。 – ccKep