Forum Programmation.perl probleme de scripte

Posté par  .
Étiquettes : aucune
0
24
fév.
2006
voilà je suis perdue, j'ai besoin d'aide!!! j 'ai créé un formulaire d'enquete sur le logiciel modalisa. j'ai ensuite téléchargé sur mon serveur distant le fichier HTML du formulaire et un scripte cgi (vers lequel le bouton d'envoi du formulaire pointe)placé dans le repertoire cgi-bin. ça marche pas!!
détails du fichier .pl placé dans le repertoire cgi-bin :

#!/usr/bin/perl

if($ENV{'REQUEST_METHOD'} eq 'POST')
{
read(STDIN, $Data, $ENV{'CONTENT_LENGTH'});

# "modarep_perl.txt" est le nom du fichier dans lequel les réponses sont enregistrées
# Vous pouvez le changer à votre guise en respectant
# les conventions d'écriture de l'environnement d'exécution
}

if (open (FICHIER, ">>modarep_perl.txt") != false)
{
print FICHIER "REMOTE_ADDR:", $ENV{"REMOTE_ADDR"},";";
print FICHIER "REMOTE_HOST:", $ENV{"REMOTE_HOST"},";";
print FICHIER "\n";
print FICHIER $Data;
print FICHIER "\n";
close (FICHIER);
}

# ======Sortie vers le navigateur :
# (vous pouvez modifier le texte en utilisant la syntaxe HTML)

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

print <<html_fin;


Merci



Votre réponse est enregistrée. Merci de votre participation !




html_fin
}
else # ======erreur fichier
{
# Sortie vers le navigateur :
print "Content-type: text/html\n\n";
print <<html_fin;


Erreur


Impossible d'écrire les réponses sur le serveur


html_fin
}
}
exit;


Voici le message que j'ai quand je valide le formulaire :
'D:\XXX\XXX.com\XXX\cgi-bin\modacgi.pl' script produced no output

et voici ce que contient mon bouton "envoyer" du formulaire :
<FORM METHOD = "POST" ACTION = "/cgi-bin/modacgi.pl" ENCTYPE=application/x-www-form-urlencoded>


Alors vraiment, si quelque peut m'aider, je lui serais extremement reconnaissante!!
Merci Merci!!!!
  • # mod_perl

    Posté par  . Évalué à 1.

    Plutôt que le mécanisme CGI tu devrais utiliser le module mod_perl d'Apache.

    Surtout sous MS-Windows (à en juger par la tronche des chemins d'accès que tu indiques), qui ne sait pas du tout ce que veut dire #!/usr/bin/perl.

    url: http://perl.apache.org/
    • [^] # Re: mod_perl

      Posté par  . Évalué à 1.

      merci pour ta reponse. mais comme je suis un peu debutante, je ne comprend pas tout. donc il faut que je modifie mon code c'est ça? tu pourrais m'aider? j'ai visité la page que tu m'a donné en lien mais vraiment je suis un peu perdu (en plus tout en anglais).
      merci!!!
      • [^] # hum...

        Posté par  . Évalué à 1.

        Non, je ne pense pas que le code soit en cause.

        Je crois que le problème vient de la configuration et/ou de l'installation du serveur http (Apache, sans doute). Il faut que, quand le serveur http reçois la requête générée par le bouton du formulaire, il sache:
        - qu'il doit exécuter le script modacgi.pl ;
        - avec quel interpréteur.

        Dans le répertoire cgi Apache s'attend à trouver des programmes exéctuables. Sous les un*x, si la permission en exécution est accordée et que l'interpréteur Perl est installé en tant que /usr/bin/perl le script que tu indiques est un programme exécutable. Sous MS-Windows, le fait d'associer par défaut dans l'explorateur les fichiers .pl à l'interpréteur Perl produit peut-être le même résultat... mais je crains que non.

        Une autre façon de procéder est d'installer un module du serveur Apache appelé mod_perl qui, en intègre de façon plus étroite l'interpréteur au serveur http. Une fois ce module installé, tu n'auras qu'à mettre ton script dans un répertoire perl dans lequel Apache saura qu'il y a là des scripts perl pour lesquels il faut utiliser l'interpréteur perl.

        Je ne sais pas quelle est la difficulté d'installer ça sous MS-Windows. Voici l'adresse pour télécharger les binaires (regarde d'abord si tu utilises un Apache 1.x ou 2.x) :

        http://perl.apache.org/download/binaries.html

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.