Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Paramètres reçu par le CGI différent de celui envoyé

15 réponses
Avatar
cyril scetbon
Bonjour,

J'observe un comportement erratique lors de la r=E9ception d'un
param=E8tre re=E7u par un CGI. En effet, je POST du XML =E0 un CGI dans
lequel une chaine est encod=E9e en base64. Cependant la chaine n'est pas
celle envoy=E9e :-(

cat sendxmltocgi.pl :
------------------------------

use LWP::UserAgent;
use Data::Dumper;
use constant CORRECTION=3D>1;

my $smil=3D<<EOF;
<essai>
<content>
<text src=3D"http://localhost/remote_repository/file1.txt"
region=3D"Texte"/>
<text src=3D"http://localhost/remote_repository/file2.txt"
region=3D"Texte"/>
</content>
</essai>
EOF
use MIME::Base64;

$fxml=3D'xml=3D<?xml version=3D"1.0" encoding=3D"UTF-8" ?
>'.'<content>'.encode_base64($smil).'</content>';
my $ua =3D LWP::UserAgent->new;
$ua->agent($ua);
my $req =3D HTTP::Request->new(POST =3D>"http://localhost/perl/cgi.pl");
$req->content_type('application/x-www-form-urlencoded');
$req->content($fxml);
my $res =3D $ua->request($req);
if ($res->is_success) {
if(!CORRECTION)
{print Dumper decode_base64($1) if($res->content=3D~/
content>([^<]*)</)}
else
{
if($res->content=3D~/content>([^<]*)</)
{
my $c=3D$1;
$c=3D~s/ /+/g;
print Dumper decode_base64($c)
}
}
}
else {
print $res->status_line, $/;
}

cat cgi.pl :
---------------

use CGI qw/:cgi/;
use Data::Dumper;

print header();
print Dumper(param('xml'));


J'ai ajout=E9 une constante CORRECTION dans le premier script qui permet
de modifier le champ re=E7u pour obtenir le bon r=E9sultat. Par contre
j'ai bien peur que cette correction ne soit valable que pour cette
chaine dont je connais la valeur encod=E9e. Cependant je me demande
pourquoi la chaine re=E7u n'est pas la m=EAme que celle envoy=E9e !

Merci =E0 tous.

5 réponses

1 2
Avatar
cyril scetbon
On 27 fév, 10:46, Nicolas George <nicolas$ wrote:
"cyril scetbon" wrote in message

:

Résolu en conservant le content_type à application/x-www-form-
urlencoded mais en utilisant uri_escape sur la partie POSTed.


En d'autres termes, je me casse les pieds à t'indiquer une solution pro pre
et fonctionnelle, et tu t'obstines à utiliser une solution crade et ban cale.
Ça fait plaisir, tiens...


Nicolas,

En fait, je n'ai aucun control sur le CGI serveur, et celui-ci me
demande le type application/x-www-form-urlencoded (specs qui m'ont été
fournies). Donc je m'incline et j'essaie de faire en sorte que mon
flux soit accepté :-)

Merci quand même.


Avatar
Nicolas George
"cyril scetbon" wrote in message
:
En fait, je n'ai aucun control sur le CGI serveur, et celui-ci me
demande le type application/x-www-form-urlencoded (specs qui m'ont été
fournies). Donc je m'incline et j'essaie de faire en sorte que mon
flux soit accepté :-)


Ah, ça change tout. Mais ce n'était pas du tout clair d'après ton premier
message, où tu fournissais toi-même un script CGI également.

Avatar
espie
In article <45e3fdf6$0$1389$,
Nicolas George <nicolas$ wrote:
"cyril scetbon" wrote in message
:
Résolu en conservant le content_type à application/x-www-form-
urlencoded mais en utilisant uri_escape sur la partie POSTed.


En d'autres termes, je me casse les pieds à t'indiquer une solution propre
et fonctionnelle, et tu t'obstines à utiliser une solution crade et bancale.
Ça fait plaisir, tiens...


De toutes facons, en demarrant depuis CGI.pm, c'est mal barre. C'est quand
meme une auberge espagnole, ce module. J'ai encore deux/trois scripts
bases dessus, par flemme, mais ca fait longtemps que je suis passe sous
Mason ou Catalyst.


Avatar
Paul Gaborit
À (at) 27 Feb 2007 02:36:26 -0800,
"cyril scetbon" écrivait (wrote):
En fait, je n'ai aucun control sur le CGI serveur, et celui-ci me
demande le type application/x-www-form-urlencoded (specs qui m'ont été
fournies). Donc je m'incline et j'essaie de faire en sorte que mon
flux soit accepté :-)


C'est vraiment bizarre comme exigences ! Ceci étant, quant on n'a pas
le choix...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
espie
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

À (at) 27 Feb 2007 02:36:26 -0800,
"cyril scetbon" écrivait (wrote):
En fait, je n'ai aucun control sur le CGI serveur, et celui-ci me
demande le type application/x-www-form-urlencoded (specs qui m'ont été
fournies). Donc je m'incline et j'essaie de faire en sorte que mon
flux soit accepté :-)


C'est vraiment bizarre comme exigences ! Ceci étant, quant on n'a pas
le choix...


c'est malheureusement souvent comme ca dans le merveilleux monde de
l'outsourcing, avec un chef de projet, des designers et des implementeurs,
sans personne qui verifie reellement si ce qu'on fait a du sens, du moment
que ca tourne -> on passe plus de temps a recoller des interfaces
calamiteuses ensemble qu'a ecrire du code.


1 2