J'ai écrit un petit script qui doit traiter un peu de xml, pour cela,
j'utilise le module XML::XPath. Je veux utiliser ce script Perl via
l'interface CGI, mon serveur apache est a priori bien configuré pour ça.
Mais le hic, c'est le passage de paramètre avec la méthode GET.
Pour faire simple, le script ne doit pas afficher les mêmes résultats en
fonction d'un certain paramètre ou de l'abscence de ce paramètre. Le
problème vient de ce paramètre... Il est de la forme : rdf:%3A#$f2Q3
avec toujours la même sous-chaine au début : rdf:%3A#$.
Le fichier xml est généré par une extension de firefox et l'attribut
d'une des balises me sert à trier et à afficher les donner comme je
l'entend. Tout cela fonctionne bien sur la ligne de commande lorsque je
teste mon script avant de le mettre dans mon dossier cgi-bin mais une fois
qu'il y est... C'est le drâme :)
Lorsque le paramètre est passé au script (par l'url), il en manque une
partie: tout ce qui se trouve après le symbole #.
Je voudrais donc savoir s'il y a un moyen d'éviter ça, de faire en sorte
que le paramètre soit transmis en entier.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jul
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous,
J'ai écrit un petit script qui doit traiter un peu de xml, pour cela, j'utilise le module XML::XPath. Je veux utiliser ce script Perl via l'interface CGI, mon serveur apache est a priori bien configuré pour ça. Mais le hic, c'est le passage de paramètre avec la méthode GET.
Pour faire simple, le script ne doit pas afficher les mêmes résultats en fonction d'un certain paramètre ou de l'abscence de ce paramètre. Le problème vient de ce paramètre... Il est de la forme : rdf:%3A#$f2Q3 avec toujours la même sous-chaine au début : rdf:%3A#$.
Le fichier xml est généré par une extension de firefox et l'attribut d'une des balises me sert à trier et à afficher les donner comme je l'entend. Tout cela fonctionne bien sur la ligne de commande lorsque je teste mon script avant de le mettre dans mon dossier cgi-bin mais une fois qu'il y est... C'est le drâme :)
Lorsque le paramètre est passé au script (par l'url), il en manque une partie: tout ce qui se trouve après le symbole #.
Je voudrais donc savoir s'il y a un moyen d'éviter ça, de faire en sorte que le paramètre soit transmis en entier.
Merci d'avance.
Bonjour,
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite dans le champ du navigateur, à savoir que c'est un attribut utilisé et utilisable côté client. J'ai testé la réaction du serveur lorsque j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé aucune trace de celui-ci dans l'environnement. C'est un comportement donc à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit le chemin de HTTP.
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#', vous devriez avoir la possibilité d'échapper le caractère. Si votre programme ET l'extension l'utilisent, peut-être pouvez vous dupliquer l'information avant '#'(format CGI Query) et après '#' (format nécessaire au maniement du document)
Julien
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous,
J'ai écrit un petit script qui doit traiter un peu de xml, pour cela,
j'utilise le module XML::XPath. Je veux utiliser ce script Perl via
l'interface CGI, mon serveur apache est a priori bien configuré pour ça.
Mais le hic, c'est le passage de paramètre avec la méthode GET.
Pour faire simple, le script ne doit pas afficher les mêmes résultats en
fonction d'un certain paramètre ou de l'abscence de ce paramètre. Le
problème vient de ce paramètre... Il est de la forme : rdf:%3A#$f2Q3
avec toujours la même sous-chaine au début : rdf:%3A#$.
Le fichier xml est généré par une extension de firefox et l'attribut
d'une des balises me sert à trier et à afficher les donner comme je
l'entend. Tout cela fonctionne bien sur la ligne de commande lorsque je
teste mon script avant de le mettre dans mon dossier cgi-bin mais une fois
qu'il y est... C'est le drâme :)
Lorsque le paramètre est passé au script (par l'url), il en manque une
partie: tout ce qui se trouve après le symbole #.
Je voudrais donc savoir s'il y a un moyen d'éviter ça, de faire en sorte
que le paramètre soit transmis en entier.
Merci d'avance.
Bonjour,
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite
dans le champ du navigateur, à savoir que c'est un attribut utilisé et
utilisable côté client. J'ai testé la réaction du serveur lorsque
j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé
aucune trace de celui-ci dans l'environnement. C'est un comportement donc
à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit
le chemin de HTTP.
Maintenant, il faut voir à quoi sert le '#' en question par rapport à
votre situation : est-ce la déclaration d'attributs gérés par
l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ?
cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#',
vous devriez avoir la possibilité d'échapper le caractère.
Si votre programme ET l'extension l'utilisent, peut-être pouvez vous
dupliquer l'information avant '#'(format CGI Query) et après '#' (format
nécessaire au maniement du document)
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous,
J'ai écrit un petit script qui doit traiter un peu de xml, pour cela, j'utilise le module XML::XPath. Je veux utiliser ce script Perl via l'interface CGI, mon serveur apache est a priori bien configuré pour ça. Mais le hic, c'est le passage de paramètre avec la méthode GET.
Pour faire simple, le script ne doit pas afficher les mêmes résultats en fonction d'un certain paramètre ou de l'abscence de ce paramètre. Le problème vient de ce paramètre... Il est de la forme : rdf:%3A#$f2Q3 avec toujours la même sous-chaine au début : rdf:%3A#$.
Le fichier xml est généré par une extension de firefox et l'attribut d'une des balises me sert à trier et à afficher les donner comme je l'entend. Tout cela fonctionne bien sur la ligne de commande lorsque je teste mon script avant de le mettre dans mon dossier cgi-bin mais une fois qu'il y est... C'est le drâme :)
Lorsque le paramètre est passé au script (par l'url), il en manque une partie: tout ce qui se trouve après le symbole #.
Je voudrais donc savoir s'il y a un moyen d'éviter ça, de faire en sorte que le paramètre soit transmis en entier.
Merci d'avance.
Bonjour,
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite dans le champ du navigateur, à savoir que c'est un attribut utilisé et utilisable côté client. J'ai testé la réaction du serveur lorsque j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé aucune trace de celui-ci dans l'environnement. C'est un comportement donc à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit le chemin de HTTP.
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#', vous devriez avoir la possibilité d'échapper le caractère. Si votre programme ET l'extension l'utilisent, peut-être pouvez vous dupliquer l'information avant '#'(format CGI Query) et après '#' (format nécessaire au maniement du document)
Julien
S. Laborde
Bonjour,
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite dans le champ du navigateur, à savoir que c'est un attribut utilisé et utilisable côté client. J'ai testé la réaction du serveur lorsque j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé aucune trace de celui-ci dans l'environnement. C'est un comportement donc à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit le chemin de HTTP.
Ok, déjà, c'est pas mon serveur qui pédale dans la semoule... :)
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#', vous devriez avoir la possibilité d'échapper le caractère. Si votre programme ET l'extension l'utilisent, peut-être pouvez vous dupliquer l'information avant '#'(format CGI Query) et après '#' (format nécessaire au maniement du document)
J'ai finalement opté pour cette solution. Je n'exploite dans mon script que la seconde partie de l'attribut et cela fonctionne bien comme ça.
Il me suffit lorsque c'est nécessaire de faire une concaténation et tout rentre dans l'ordre.
Merci pour cette réponse.
-- a+ Stephane.
Bonjour,
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite
dans le champ du navigateur, à savoir que c'est un attribut utilisé et
utilisable côté client. J'ai testé la réaction du serveur lorsque
j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé
aucune trace de celui-ci dans l'environnement. C'est un comportement donc
à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit
le chemin de HTTP.
Ok, déjà, c'est pas mon serveur qui pédale dans la semoule... :)
Maintenant, il faut voir à quoi sert le '#' en question par rapport à
votre situation : est-ce la déclaration d'attributs gérés par
l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ?
cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#',
vous devriez avoir la possibilité d'échapper le caractère.
Si votre programme ET l'extension l'utilisent, peut-être pouvez vous
dupliquer l'information avant '#'(format CGI Query) et après '#' (format
nécessaire au maniement du document)
J'ai finalement opté pour cette solution. Je n'exploite dans mon script
que la seconde partie de l'attribut et cela fonctionne bien comme ça.
Il me suffit lorsque c'est nécessaire de faire une concaténation et tout
rentre dans l'ordre.
A priori, la fin de chaîne #.* serait traitée comme une URI inscrite dans le champ du navigateur, à savoir que c'est un attribut utilisé et utilisable côté client. J'ai testé la réaction du serveur lorsque j'entrais un '#qqch' dans l'adresse du navigateur, et je n'ai trouvé aucune trace de celui-ci dans l'environnement. C'est un comportement donc à priori normal, si RDF et HTTP sont le même protocole, ou si RDF suit le chemin de HTTP.
Ok, déjà, c'est pas mon serveur qui pédale dans la semoule... :)
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Si vous devez absolument appeler votre programme avec le caractère '#', vous devriez avoir la possibilité d'échapper le caractère. Si votre programme ET l'extension l'utilisent, peut-être pouvez vous dupliquer l'information avant '#'(format CGI Query) et après '#' (format nécessaire au maniement du document)
J'ai finalement opté pour cette solution. Je n'exploite dans mon script que la seconde partie de l'attribut et cela fonctionne bien comme ça.
Il me suffit lorsque c'est nécessaire de faire une concaténation et tout rentre dans l'ordre.
Merci pour cette réponse.
-- a+ Stephane.
MaXX
Jul wrote:
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous, [...]
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Julien
Bonjour,
la dièse sert par exemple pour les ancres dans une page HTML, ex: /lexique.html#perl indique au navigateur de se rendre sur la page lexique.html et de sauter (faire défiler la page) directement à l'ancre "perl" du document. Si je ne m'abuse la dièse devrait être encodée en %23 (à vérifier) si elle doit être transmise au script cgi.
En espérant que ça aide...
-- MaXX
Jul wrote:
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous,
[...]
Maintenant, il faut voir à quoi sert le '#' en question par rapport à
votre situation : est-ce la déclaration d'attributs gérés par
l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ?
cela fait-il partie d'une chaîne ?
Julien
Bonjour,
la dièse sert par exemple pour les ancres dans une page HTML,
ex: /lexique.html#perl indique au navigateur de se rendre sur la page
lexique.html et de sauter (faire défiler la page) directement à l'ancre
"perl" du document.
Si je ne m'abuse la dièse devrait être encodée en %23 (à vérifier) si elle
doit être transmise au script cgi.
Le Tue, 26 Jul 2005 23:31:15 +0200, laborde stephane a écrit :
Salut à tous, [...]
Maintenant, il faut voir à quoi sert le '#' en question par rapport à votre situation : est-ce la déclaration d'attributs gérés par l'extension ? est-ce pour vous le moyen de séparer des types d'attributs ? cela fait-il partie d'une chaîne ?
Julien
Bonjour,
la dièse sert par exemple pour les ancres dans une page HTML, ex: /lexique.html#perl indique au navigateur de se rendre sur la page lexique.html et de sauter (faire défiler la page) directement à l'ancre "perl" du document. Si je ne m'abuse la dièse devrait être encodée en %23 (à vérifier) si elle doit être transmise au script cgi.