IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Erreur "org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject"


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut Erreur "org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject"
    Salut a tous,

    je suis entrain d'essayer de faire une page d'inscription depuis une activité android en se connectant a ma base de données mysql, j'ai cette erreur qui apparait : org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

    Dans un premier temps, est ce que quelqu'un pourrait me conseiller sur les différentes méthodes a utiliser pour debuger mon program quand j'utilise une bDD mysql avec des scripts php ? D'habitude j'utilise le log cat mais ici les erreurs sont tout de meme moins évidente vu qu'on peut tres bien avoir des erreurs venant du script ou autre ... :S

    Voici le code de mon activité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    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();
        }
    }
    et mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
     
    <?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: SpotnShareReminder@live.com \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)));
     
    ?>

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Tu as des erreurs dans ton php :

    par exemple ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $msg = "Connexion problem with de DB";
    tu avais oublié le ; fais attention a ce genre d erreur ! par contre je sais pas si l erreur que tu recois proviens de la :s mais ce serait deja un bon debut de bien relire ton php voir s'il y a des erreurs comme ca ...

  3. #3
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    C'est vrai ! Mais l'erreur que j'ai c'est par rapport au format json donc a mon avis le code ne s'arrete pas a l'oubli du ; :p mais je vais tester ca ce soir et on vera ;-) merci pour ton aide en tout cas !

  4. #4
    Membre à l'essai
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiante
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    essayer de tester ça!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if((jobj.has("message")){
    donnees=jobj.getString("message");
    ...........

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Si tu veux savoir d'où vient ton problème, il suffit juste d'affiche la chaîne de caractère que tu récupère de ta connexion HTTP. C'est à dire la chaine de caractère que tu utilise dans ta fonction new JSonObject(); --> la variable "result"
    Dis nous le résultat

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui, ton code php te retourne dans ton navigateur une erreur (d'où la présence du <br> en HTML). Dans ce cas, j'execute directement le script php dans le navigateur pour débuguer de ce côté (le problème ne vient pas de JAVA)

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2015, 02h29
  2. Réponses: 7
    Dernier message: 20/01/2015, 10h33
  3. Réponses: 2
    Dernier message: 19/07/2013, 09h20
  4. Réponses: 7
    Dernier message: 26/10/2010, 18h31
  5. Erreur d'exécution de type java.lang.NoClassDefFoundError
    Par lelorf1983 dans le forum JDeveloper
    Réponses: 3
    Dernier message: 01/06/2007, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo