Erreur d'exécution de perl

Erreur d'exécution de perl - Perl - Programmation

Marsh Posté le 16-05-2006 à 08:28:51    

Bonjour,
j'ai fait un module perl afin de faire un traitement de données d'un formulaire mais le problème est que quand je lance le traitement j'ai l'erreur suivante:
Error: Protocol scheme 'http' is not supported
Pouvez vous m'aidez svp??
Merci

Reply

Marsh Posté le 16-05-2006 à 08:28:51   

Reply

Marsh Posté le 16-05-2006 à 08:49:12    

Il manque un point-virgule à la ligne 42.

Reply

Marsh Posté le 16-05-2006 à 09:02:19    

je crois qu'il faut être un peu sérieux!!!

Reply

Marsh Posté le 16-05-2006 à 09:28:42    

Elmoricq a écrit :

Il manque un point-virgule à la ligne 42.


dynlevirus a écrit :

je crois qu'il faut être un peu sérieux!!!


Excuse Elmoricq, son editeur plante si les lignes sont trop grandes. Donc Elmoricq parlait bien entendu de la ligne 38, là ou tu fais ta double affection inversée en spirale péruvienne ( pas terrible pour la lisibilité mais tellement beau à lire). Je te conseillerais plutot de passer par la méthode E.S.T.F.L.C, developpé dans les années 70 pour le programme arianne.
 
Rappel: E.S.T.F.L.C est l'acronyme de ET SI TU FILAIS LE CODE /FOU /FOU /FOU


Message édité par anapajari le 16-05-2006 à 09:29:14
Reply

Marsh Posté le 16-05-2006 à 09:50:30    

Pardon j'ai oublié le code perl

Code :
  1. #!/usr/bin/perl -w
  2. ###########################################
  3. use warnings;
  4. use strict;
  5. use CGI::Carp qw(fatalsToBrowser);
  6. use Net::Amazon;
  7. use Log::Log4perl qw(:easy);
  8. Log::Log4perl->easy_init($DEBUG);
  9. read(STDIN, my $donnees, $ENV{'CONTENT_LENGTH'});
  10. my @champs_formulaire = split(/&/, $donnees);
  11. my ($champ, $nom, $valeur);
  12. my %formulaire;
  13. foreach $champ (@champs_formulaire) {
  14.   (my $nom, my $valeur) = split(/=/, $champ);
  15.   $valeur =~ tr/+/ /;
  16.   $valeur =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  17.   $valeur =~ s/</&lt;/g;
  18.   $valeur =~ s/>/&gt;/g;
  19.   $formulaire{$nom} = $valeur;
  20. }
  21. my $ua = Net::Amazon->new(
  22.  token       => '18QTWVDHQ3XVS1482E82',
  23. );
  24. my $resp;
  25. if($formulaire{choix} eq 'livres'){
  26. if (length($formulaire{cb})=="13" )
  27. { $formulaire{cb} = &isbn($formulaire{cb});}
  28. $resp = $ua->search(
  29.  asin  => $formulaire{cb}
  30. );
  31. }
  32. else
  33. {
  34. $resp = $ua->search(
  35.     upc  => $formulaire{cb},
  36.     mode => "music"
  37. );
  38. }
  39. print "Content-type: text/html\n\n";
  40. print "<html><head><title>Resultat de la recherche</title></head>\n";
  41. print "<body><h1>Résultat de votre recherche</h1>\n";
  42. if($resp->is_success()) {
  43.      my @t=split(', ', $resp->as_string());
  44.      print "Auteur : $t[0]\n<br>";
  45.      print "Titre : $t[1]\n<br>";
  46.      print "Date d'édition : $t[2]\n<br>";
  47.      print "Prix : $t[3]\n<br>";
  48.      print "ISBN : $t[4]\n<br>"  if($formulaire{choix} eq 'livres');
  49.      print "ASIN : $t[4]\n<br>"  if($formulaire{choix} ne 'livres');
  50. } else {
  51.     print "Error: ",
  52.           $resp->message(), "\n";
  53. }
  54. #print "<p>$resp</p>\n";
  55. print "";
  56. print "</body></html>\n";

Reply

Marsh Posté le 16-05-2006 à 13:29:48    

J'ai pas regardé en profondeur, mais pourquoi tu n'utilises pas le module CGI, plutôt que d'analyser toi-même la chaîne de paramètres ?
 
Ensuite l'erreur vient probablement d'un des modules que tu utilises, Net::Amazon par exemple, mais je ne le connais pas et je ne peux l'utiliser sur ma machine.
Peux-tu isoler l'erreur, ou nous dire à quelle ligne ça plante ?

Reply

Marsh Posté le 16-05-2006 à 14:16:20    

Justement je ne sais d'où proviens l'erreur. Quand je lance le traitement du formulaire en local (via easyphp) ça marche mais une fois sur le serveur il déconne. Quant à l'analyse de la chaîne de paramètres je ne pense pas qu'elle rentre en compte dans l'erreur. Ca me met juste:

Citation :

Error: Protocol scheme 'http' is not supported

Reply

Marsh Posté le 16-05-2006 à 14:18:46    

dynlevirus a écrit :

Quand je lance le traitement du formulaire en local (via easyphp)


 [:pingouino]  [:pingouino] WTF???  [:pingouino]  [:pingouino]  
Peux tu décrire un peu plus l'architecture sur lequel tu fais tes tests?
 
edit: easyphp fonctionne sur windows pour du php la tu es en perl et en plus la ligne

Code :
  1. #!/usr/bin/perl -w


Laisse plutot penser que tu utiliserais linux


Message édité par anapajari le 16-05-2006 à 14:19:56
Reply

Marsh Posté le 16-05-2006 à 14:25:44    

en fait j'ai un formulaire html qui se traite via perl. Donc j'ai modifier la configuration de easyphp afin de pouvoir y traiter les formulaires en perl. Une fois le formulaire remplit, il "envoie" les informations à perl qui les traite en utilisant internet. En gros je fais une recherche sur une base de données distante.

Reply

Marsh Posté le 16-05-2006 à 15:59:09    

dynlevirus a écrit :

en fait j'ai un formulaire html qui se traite via perl. Donc j'ai modifier la configuration de easyphp afin de pouvoir y traiter les formulaires en perl. Une fois le formulaire remplit, il "envoie" les informations à perl qui les traite en utilisant internet. En gros je fais une recherche sur une base de données distante.


je suis désolé mais je comprends toujours pas comment ton truc marche  [:pingouino]  
 
Je vais tenter une reformulation
- tu as installé easyphp sur ton post en local
- tu as un site en php/html qui tourne dessus
- sur une des pages tu as un formulaire donc l'action est "http://www.unsite.com/unscript.pl"
c'est ça?

Reply

Marsh Posté le 16-05-2006 à 15:59:09   

Reply

Marsh Posté le 16-05-2006 à 16:23:38    

oui c'est bien ça. Maintenant quand je mets tout ça sur un serveur (site internet) ça me retourne l'erreur indiqué plus haut

Reply

Marsh Posté le 17-05-2006 à 09:47:15    

ton "serveur(site internet)" il supporte perl?
edit: Complètement con :o
 
Quand tu dis "tout ça" tu parles de ton formulaire html on est d'accord?
Tu as l'adresse du site en question?


Message édité par anapajari le 17-05-2006 à 09:48:49
Reply

Marsh Posté le 17-05-2006 à 09:51:17    

http://esstin.eupholister.com
Quand je dis tout ça je parle du fait que le formulaire est bien pris en compte et traité par perl


Message édité par dynlevirus le 17-05-2006 à 09:52:21
Reply

Marsh Posté le 17-05-2006 à 10:02:00    

et bien je pense que sur ton serveur le module Net-Amazon merdouille

Reply

Marsh Posté le 17-05-2006 à 13:17:28    

comment faire pour savoir ce qui ne marche pas sur le serveur car tout marche en local. La recherche se passe parfaitement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed