OVH Cloud OVH Cloud

passage d'un diese dans une variable.

4 réponses
Avatar
Fabrice L.
Bonjour a tous et toutes.

J'ai un petit souci avec le passage du # (diese) dans les variables d'une
url

## --- petit script test ----
#!/usr/bin/perl

use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
use strict;

print "Content-type: text/html\n\n";

my $var = param('var');

print $var;

quand je tape dans mon fureteur
http://lesite.com/test.pl?var=lediese#nepassepas

le script le me donne comme resultat : lediese

comment puisje recuperer mon # et ce qu'il y a apres ?

merci d'avance
Fabrice

4 réponses

Avatar
Fabrice L.
Bon je contourne le probleme en substituant le # de la var par DIESE
$var =~ s/#/DIESE/g;

puis son inverse une fois la variable passé. Cela fonctionne mais me semble
un peu capillotracté...

Si une ame a la solution pour passer le # en direct je suis preneur.

++

Fabrice



"Fabrice L." a écrit dans le message de news:
441ecb82$0$20183$
Bonjour a tous et toutes.

J'ai un petit souci avec le passage du # (diese) dans les variables d'une
url

## --- petit script test ----
#!/usr/bin/perl

use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
use strict;

print "Content-type: text/htmlnn";

my $var = param('var');

print $var;

quand je tape dans mon fureteur
http://lesite.com/test.pl?var=lediese#nepassepas

le script le me donne comme resultat : lediese

comment puisje recuperer mon # et ce qu'il y a apres ?

merci d'avance
Fabrice




Avatar
JacK
Avatar
Fabrice L.
oui mais non

cela revient a faire ce que j'ai fait c a dire subsituer le # avant de le
passer dans l'url et faire l'operation inverse.

Ma question est plutot donc : Est il possible de passer un # dans une
variable passée en url ?

Fabrice


"JacK" a écrit dans le message de news:
dvmjmm$m9v$
%23
cf http


Avatar
Jacques Caron
Salut,

On Mon, 20 Mar 2006 17:06:39 +0100, Fabrice L.
wrote:

oui mais non

cela revient a faire ce que j'ai fait c a dire subsituer le # avant de le
passer dans l'url et faire l'operation inverse.

Ma question est plutot donc : Est il possible de passer un # dans une
variable passée en url ?


Oui, en l'encodant, comme on doit encoder les espaces, les %, les +, les &
et quelques autres caractères au minimum pour survivre au décodage des
paramètres (ben oui, vous devez bien les décoder ces paramètres, non?
Auquel cas %23 sera décodé automatiquement).

Dans une URL, # marque le début d'un "anchor", qui est utilisé
*localement* par le navigateur pour chercher un point particulier dans un
document (marqué en HTTP par un <A NAME="xxx">). Le # et ce qui le suit
sont donc supprimés avant transmission au serveur.

Voir URI::Escape pour les fonctions kivonbien.

Jacques.
--
Oxado http://www.oxado.com/