Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Web
Web Toutes vos questions sur la construction de pages web en Perl (CGI, Ajax, mod_perl, sessions, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl et les sources Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/01/2012, 12h15   #1
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Par défaut Problème affichage CGI

Bonjour à tous,

Sa fais quelques jours que je parcours votre forum et cela m'aide beaucoup afin de réaliser ma CGI en Perl. Malgré l'abondance des sujets et votre Faq très complète je galère pas mal a réaliser une simple page de test. Dans ce cas envoyer simplement des informations depuis une page HTML (en méthode POST) vers un document .pl .

J'ai par ailleurs installé le module complémentaire pour faire fonctionner Perl sous Eclipse. Bien que je suis sur Mac et que j'ai déja Perl intégré dans le terminal j'ai préféré cette solution.

Mes deux pages (HTML & PERL) sont bien sur dans le dossier CGI-BIN.
Ma page HTML se lit sans problème mais dés que les informations sont envoyés vers le page .pl le naviguateur n'affiche plus rien ...

Je pense pas que le chemin d'accès soit la cause de ce problème mais j'attend avec impatience vos conseils.




Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Page de commentaire</title>
</head>
<body bgcolor="#E0E0E0" text="#000000">
<h1>Votre commentaire</h1>
<form action="http://localhost/cgi-bin/comments.pl" method="post">
<p>Name:<br><input size="40" maxlength="40" name="utilisateur"></p>
<p>Text:<br><textarea rows="5" cols="50" name="commentaire"></textarea></p>
<p><input type="submit" value="envoyer"></p>
</form>
</body>
</html>


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w
 
use strict;
use CGI;
 
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
 
my @noms_champ = $cgi->param();
 
print $cgi->header(),
      $cgi->start_html('avis CGI du programme '),
      $cgi->h1('avis CGI du programme ',$cgi->i('comments.pl'));
      foreach my $champ (@noms_champ) {
        print $cgi->b('nom de champ: '),
              $champ,
              $cgi->b(', contenu: '),
              $cgi->param($champ), "<br>";
      }
print $cgi->end_html();
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 13h41   #2
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Par défaut Probleme Apache

En relisant bien les questions du forum, j'ai au final compris que Apache n'était pas configuré ...
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h20   #3
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 512
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 512
Points : 31 674
Points : 31 674
C'est ok maintenant ?
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h09   #4
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Déja je tient à te remercier de l'attention que tu porte à mon problème.

Je n'ai pas encore réussi à autoriser les CGI dans Apache.
J'obtiens aussi des erreurs quand je code sur Eclipse. Est que le fait de ne pas avoir réussi à autoriser les CGI sur Apache l'empêche sur Eclipse ?
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h10   #5
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 512
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 512
Points : 31 674
Points : 31 674
Je ne travaille pas sous eclipse, donc aucune idée .
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h26   #6
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Dommage ..

Si par contre tu aurais une idée de comment mettre s'occuper de Apache pour les CGI je suis prenant.

D'ailleurs mon dossier cgi-bin est placé dans mon document MAMP. C'est normal ?

Dans tout sa j'ai testé les deux fichiers printenv qui me sort bien toutes les informations. Par contre, le test-cgi ne m'affiche aucune infos !
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 12h19   #7
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
J'ai modifié le fichier httpd.conf afin d'autoriser les CGi. Malgré sa lorsque j'essaye d'acceder a mon fichier via l'URL, Apache m'annonce que je ne suis pas autorisé !

Ne me laissant pas faire, je vais dans le Terminal et j'entre cette commande :

Code :
chmod a+x nom_du_chemin_fichier
Et tadaamm !! Sa marche pour faire tourner un " Hello World !".

Heureux comme pas, je modifie le code afin de changer ce " Hello World ! " par ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print $cgi->header, <<html;
<form action="test.pl" method="post">
html
while (my @row = $sth->fetchrow)
{
print $cgi->header, <<html;
ID:<input name="pid" value="@row[0]" readonly="true"/><br/>
Name: <input name="pname" value="@row[1]"/><br/>
Description : <input name="pdescription" value="@row[2]"/><br/>
Unit Price :<input name="punitprice" value="@row[3]"/><br/>
html
}
print $cgi->header, <<html
<input type="submit" value="update Row">
</form>
html
Et la c'est le drame --> 500 Internal Error ... Impossible d'ouvrir la page.

Quelqu'un aurait une solution ??
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 13h29   #8
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 512
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 512
Points : 31 674
Points : 31 674
Quand tu as une erreur 500, cela veut dire que tu as une erreur Perl. Il faut consulter le fichier log d'apache.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h26   #9
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Merci ton aide

Tu as raison le log me previent de :Can't find string terminator "html" anywhere before EOF at /Applications/MAMP/cgi-bin/test2.pl line 17.
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h43   #10
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 512
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 512
Points : 31 674
Points : 31 674
Essaye déjà ce code perl à la place du tiens :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use Carp;
use strict;
use warnings;
 
use CGI;
 
my $cgi = CGI->new;
print $cgi->header();
print $cgi->start_html( 
  -title => 'Page de test CGI',
);
 
print <<'HTML';
  Bonjour <b>calu45</b>, tout fonctionne correctement !
HTML
 
print $cgi->end_html();
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h22   #11
calu45
Invité de passage
 
Homme claude Jaya
Technicien réseau
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme claude Jaya
Localisation : France

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 3
Points : 3
Oui sa marche nickel !

J'ai aussi réussi a a générer les informations transmit depuis un formulaire HTML.

Je commence a mieux comprendre ce fameux language Perl
calu45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h40.


 
 
 
 
Partenaires

Hébergement Web