org.json.JSONException: Wartość <br typu java.lang.String nie może zostać przekonwertowana na JSONObject
Próbuję wykonać stronę rejestracji z działania systemu Android, łącząc dane z moją bazą danych sqldatabase, otrzymuję ten błąd „org.json.JSONException: Wartość
Po pierwsze, czy ktokolwiek mógłby mi doradzić, jak debugować mój program podczas korzystania z bazy danych mysql ze skryptem php dla aplikacji na Androida? Bo zwykle używam kota dziennika, ale tutaj błędy nie są tak jasne: S ...
Oto kod aktywności:
<code>public class Subscribe extends Activity { Button bSubscribe; EditText etPwdSub, etPwdConf, etLoginSub, etNameSub, etFnSub; String result = null; InputStream is = null; String donnees = ""; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.subscribe); etLoginSub = (EditText) findViewById(R.id.etLoginSub); etPwdSub = (EditText) findViewById(R.id.etPwdSub); etPwdConf = (EditText) findViewById(R.id.etPwdConf); etNameSub = (EditText) findViewById(R.id.etNameSub); etFnSub = (EditText) findViewById(R.id.etFnSub); bSubscribe = (Button) findViewById(R.id.bSubscribe); bSubscribe.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Pattern p = Pattern.compile(".+@.+\\.[a-z]+"); Matcher m = p.matcher(etLoginSub.getEditableText()); if (m.matches() == false) { Toast.makeText( getBaseContext(), "Le champs email ne correspond pas au format d'une adresse mail", Toast.LENGTH_SHORT).show(); } else { // autre méthode : etPwdSub.equals("") if (etPwdSub.getEditableText() != null && etPwdConf.getEditableText() != null && etNameSub.getEditableText() != null && etFnSub.getEditableText() != null) { if (etPwdSub.getEditableText().toString().equals(etPwdConf.getEditableText().toString())) { ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("login", etLoginSub.getText().toString())); nameValuePairs.add(new BasicNameValuePair("pwd", etPwdConf.getText().toString())); nameValuePairs.add(new BasicNameValuePair("name", etNameSub.getText().toString())); nameValuePairs.add(new BasicNameValuePair("firstname", etFnSub.getText().toString())); try { // commandes httpClient HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost( "http://192.168.1.101/spotnshare/subscribe.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { Log.i("taghttppost", "" + e.toString()); Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG) .show(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "UTF-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.i("tagconvertstr", "" + e.toString()); } try { JSONObject jObj = new JSONObject(result); donnees = jObj.getString("message"); Intent ourIntent = new Intent(Subscribe.this, SubscribeMess.class); // objet qui vas nous permettre de passe des variables ici la // variable passInfo Bundle objetbunble = new Bundle(); objetbunble.putString("message", donnees); ourIntent.putExtras(objetbunble); // on passe notre objet dans l'intent // on appelle notre activité startActivity(ourIntent); } catch (JSONException e) { Log.i("tagjsonexp", "" + e.toString()); } catch (ParseException e) { Log.i("tagjsonpars", "" + e.toString()); } } else { Dialog d = new Dialog(Subscribe.this); d.setTitle(etPwdSub.getEditableText() +" "+etPwdConf.getEditableText()); d.show(); } } else { Dialog d = new Dialog(Subscribe.this); d.setTitle("Fill in all the fields !"); d.show(); } } } }); } protected void onPause() { super.onPause(); finish(); } } </code>
a oto skrypt php:
<code><?php if( isset($_POST['login']) && isset($_POST['pwd']) && isset($_POST['name']) && isset($_POST['firstname'])) { include("connexion_bdd.php"); if(connexionBDD() == 1){ $login = $_POST['login']; $pwd = $_POST['pwd']; $name = $_POST['name']; $firstname = $_POST['firstname']; $sql = "SELECT colUserID FROM userTable WHERE colUserLogin = '".$login."' "; $req = mysql_query($sql); $resultat=mysql_num_rows($req); if($resultat==0){ $temps = time(); $clef = md5($login . $temps); $req = mysql_query("INSERT INTO userTable(colUserLogin, colUserPwd, colUserName, colUserFirstname, colUserKey, colUserDate) VALUES( '$login', '$pwd', '$name', '$firstname', '$clef', '$temps')"); if($req){ $destinataire = $login; $sujet ="Welcome on SnSR"; $from = "From: [email protected] \r\n"; $from .= "Content-Type: text/html; charset=us-ascii\r\n"; $message = ' Clic on the link below :<br/> <a href="http://localhost/spotnshare/validation_mail.php?usrk='.$clef.' "> Registration confirmation. </a> '; ini_set('SMTP','relay.skynet.be'); if(mail($destinataire,$sujet,$message,$from)){ $msg = 'Check your mailbox to activate your account !'; } else{ $msg = 'Problem sending you the activation mail !'; $req = mysql_query("DELETE FROM userTable WHERE colUserLogin = '".$pseudo."' "); } } else{ $msg = 'Problem inserting you in our database !'; } }else{ $msg = 'This email has already been used !'; } mysql_free_result ($req); }else{ $msg = "Connexion problem with de DB" print(json_encode(array("message" => $msg))); } }else{ $msg = "Couldn't treat your datas" } print(json_encode(array("message" => $msg))); ?> </code>