Précédent   Forum des professionnels en informatique > Java > Général Java > Java & Mobiles > Java ME
Java ME Forum d'entraide Java Mobile Edition. Avant de poster -> FAQ Java ME, Cours Java ME
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/09/2011, 18h43   #1
Invité de passage
 
noureddine boukhari
Inscription : février 2011
Messages : 22
Détails du profil
Informations personnelles :
Nom : noureddine boukhari

Informations forums :
Inscription : février 2011
Messages : 22
Points : 1
Points : 1
Par défaut Pb avec un TextField et les espaces

Bonjour,

Quand je remplis un TextField en mettant un espace entre deux mots, il affiche l'erreur ci-dessous et rien n'est ajouté dans la base.
Citation:
java.lang.IllegalArgumentException: Space character in URL
Quelqu'un saurait-il m'expliquer d'où vient le problème ?

svp voila mon code j2me
Code :
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
 
public void ajout_memo () {
String code = textField6.getString();
String systeme = textField7.getString();
String theme = textField8.getString();
String annee = textField9.getString();
String nom1 = textField10.getString();
String nom2 = textField11.getString();
String encadreur = textField12.getString();
 
 
String parameter00;
 
String url = "http://localhost/wwwbibwamp/admin/ajout/ajout_memo.php?";
 
parameter00 = "code=" + code;
parameter00 += "&systeme=" + systeme;
parameter00 += "&theme=" + theme;
parameter00 += "&annee=" + annee;
parameter00 += "&nom1=" + nom1;
parameter00 += "&nom2=" + nom2;
parameter00 += "&encadreur=" + encadreur;
 
 
 
connexion (url,parameter00);
 
}
et voila mon code php
Code :
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
 
<?php
 
 
 
include("C:\wamp\www\wwwbibwamp\connect_base.php");
 
 
 
$code = $_GET["code"];
 
$systeme= $_GET["systeme"];
 
$theme = $_GET["theme"];
 
$annee = $_GET["annee"]; 
 
$nom1 = $_GET["nom1"];
 
$nom2 = $_GET["nom2"];
 
$encadreur = $_GET["encadreur"];
 
 
 
 
 
 
 
 
$requete = "INSERT INTO memoir VALUES('','$code','$systeme','$theme','$annee','$nom1','$nom2','$encadreur',3,0)";
 
$resultat = mysql_query($requete);
 
 
 
?>
quand je rempli textField (theme) qui contient souvent 2 ou 3 mots s'affiche l'erreur de l'espace
comment je peut utliser le package java.net URLEncoder dans ce cas???

merci d'avance
fortman1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 09h49   #2
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Tu ne peux effectivement pas mettre d'espace dans ton URL.
Tu dois utiliser le code qui correspond à un espace à la place.
Il me semble que c'est %20.
Donc le plus simple c'est de remplacer tous les espaces de ton TextField par %20.
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h34   #3
Invité de passage
 
noureddine boukhari
Inscription : février 2011
Messages : 22
Détails du profil
Informations personnelles :
Nom : noureddine boukhari

Informations forums :
Inscription : février 2011
Messages : 22
Points : 1
Points : 1
Par défaut aucune ideé

merci pour la reponse;
j'ai pas bien compris comment je faire pour ajoute %20 est ce qui'il va apparaitre dans mon textfield a la place de l'espace(je veux pas ça)
sachant que c'est une application de cilent ,il remplit le textFiel qui est composer d'aux moin de deux mots separés par un espace
ex: "bonjour anikinisan" quand je valide aucun enregistrement n'est ajouter dans la base et l'erreur de l'espase est generé
merci
fortman1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h03   #4
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
En fait tu continues de remplir tes champs comme avant. Donc tu peux taper tes espaces normalement.
Mais avant de faire ton "connexion(url, parameter00)", tu transformes tous tes caractères spéciaux.

Pour le URLEncode en J2ME, c'est pas disponible apparament. Tu dois le recoder toi même.

J'ai trouvé ici une implémentation que je n'ai pas testée :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static public String urlEncode(String sUrl)   
   {  
        StringBuffer urlOK = new StringBuffer();  
        for(int i=0; i<sUrl.length(); i++)   
        {  
            char ch=sUrl.charAt(i);  
            switch(ch)  
            {  
                case '<': urlOK.append("%3C"); break;  
                case '>': urlOK.append("%3E"); break;  
                case '/': urlOK.append("%2F"); break;  
                case ' ': urlOK.append("%20"); break;  
                case ':': urlOK.append("%3A"); break;  
                case '-': urlOK.append("%2D"); break;  
                default: urlOK.append(ch); break;  
            }   
        }  
        return urlOK.toString();  
    }
et donc dans ton code ca donnerait :

Code :
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
 
public void ajout_memo () {
String code = textField6.getString();
String systeme = textField7.getString();
String theme = textField8.getString();
String annee = textField9.getString();
String nom1 = textField10.getString();
String nom2 = textField11.getString();
String encadreur = textField12.getString();
 
 
String parameter00;
 
String url = "http://localhost/wwwbibwamp/admin/ajout/ajout_memo.php?";
 
parameter00 = "code=" + code;
parameter00 += "&systeme=" + systeme;
parameter00 += "&theme=" + theme;
parameter00 += "&annee=" + annee;
parameter00 += "&nom1=" + nom1;
parameter00 += "&nom2=" + nom2;
parameter00 += "&encadreur=" + encadreur;
 
 
parameter00 = urlEncode(parameter00);
 
connexion (url,parameter00);
 
}
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/09/2011, 14h48   #5
Invité de passage
 
noureddine boukhari
Inscription : février 2011
Messages : 22
Détails du profil
Informations personnelles :
Nom : noureddine boukhari

Informations forums :
Inscription : février 2011
Messages : 22
Points : 1
Points : 1
Par défaut enfin pb resolu

merci Anikinisan ;
je trouve pas les mots pour te remercier vraiment t m'as fait un grant plaisir
fortman1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 15h06   #6
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Citation:
Envoyé par fortman1987 Voir le message
merci Anikinisan ;
je trouve pas les mots pour te remercier vraiment t m'as fait un grand plaisir
De rien.
Ca fait plaisir de voir que tu as résolu ton problème.
A plus et bon courage avec le J2ME...
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h07.


 
 
 
 
Partenaires

Hébergement Web