IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Perl en CGI?


Sujet :

Web Perl

  1. #1
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut Perl en CGI?
    salut,

    voila je vais pas y aller par 4 chemin j'ail u plein de post sur le sujet mais soit c'est pas clair pour moi soit je comprend tout simplement rien !

    En fait j'ai easyphp 1.8 ! j'ai installé a partir d'actvie state perl sous windows! et je souhaite utiliser mes scripts perl en cgi sur le serveur apache! mais quand je me rends a :

    http://localhost/toto/index.htm

    j'ai bien ma page qui s'affiche mais quand je click sur le bouton qui devrait lancer mon script mon code source s'affiche! je suppose que le cgi n'est pas configurer.


    merci de m'aider parce que j'ai deja lu quantité de truc pas clair qui on mis un bordel fou dans mon petit cerveau

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  2. #2
    Invité
    Invité(e)
    Par défaut
    Ton CGI doit être exécutable.
    Sinon, regarde plutôt la config Apache

  3. #3
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    quand tu dis que mon CGI doit etre executable c'est a dire?
    sinon merci pour le lien

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  4. #4
    Invité
    Invité(e)
    Par défaut
    Sous Win32, il doit l'être par défaut.
    Je pense que ton problème vient simplement de ta config apache, il faut que tu actives l'exécution des cgi.

  5. #5
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    ok merci de ton aide j'ai lu attentivement le lien et j'ai configurer le serveur apache pour executer le script perl en cgi!
    par contre maintenant j'ai une erreur 403

    You don't have permission to access /get_file.pl on this server

    je pense qu'il faut gerer les permissions dans apache , je vais chercher ca sur le site apache.org!


    encore merci kuzco

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  6. #6
    Invité
    Invité(e)
    Par défaut
    regarde plutôt les droits NTFS par rapport au compte qui démarre le service apache.

  7. #7
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    oui j'i deja regarder mais les droits sont tous autorisé!
    et le log erreur apache m'indique :

    Options ExecCGI is off in this directory: c:/toto/htdocs/get_file.pl

    alors que mon script est dans le dossier c:/toto/cgi-bin

    pourtant la config dans httpd.conf indique bien le chemin vers les scripts cgi !

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  8. #8
    Invité
    Invité(e)
    Par défaut
    Sur les dossiers autres que cgi-bin, l'exécution de cgi n'est pas permise. Il faut explicitement l'activer dans la config par l'option ExecCGI dudit dossier.
    Mais ça, tu as dû t'en rendre compte

  9. #9
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    tu veux dire que je doit rajouter l'option execcgi a tout les repertoire dans le httpd.conf ?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  10. #10
    Invité
    Invité(e)
    Par défaut
    non, je dis que si tu décides de placer tes cgi dans le dossier tutu par exemple, tu dois mettre ExecCGI pour ce dossier.

    Par sécurité, je te conseille de placer TOUS tes cgi dans cgi-bin. C'est une bonne habitude à avoir.

  11. #11
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    c'est mon cas ils sont tous dans cgi-bin ! et j'a ibien mis l'option execcgi mais toujours ces problemes de droits !

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  12. #12
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    c'est bon le probleme de droit a l'air OK ! maintenant j'ai le droit a "la page est introuvable" c'est rassurant

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  13. #13
    Invité
    Invité(e)
    Par défaut
    On avance... 8)
    Est-ce que ta page html appelle le script au bon endroit ?
    Quel est ton shebang ?

  14. #14
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    pour l'endroit de l'appel dans la page html je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="get" action="get_file.pl" ENCTYPE="multipart/form-data" >
    mais maintenant que tu me dit ca! j'ai comme envie de mettre le chemin dans action du genre cgi-bin/get_file.pl...

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jim_Nastiq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="get" action="get_file.pl" ENCTYPE="multipart/form-data" >
    mais maintenant que tu me dit ca! j'ai comme envie de mettre le chemin dans action du genre cgi-bin/get_file.pl...
    Oui, met /cgi-bin/get_file.pl

  16. #16
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut

    je vais toutes les enchainer les erreurs, ca me fait marrer!
    maintenant internal server error

    ! plus j'avance plus je m'approche de la reussite

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  17. #17
    Jeh
    Jeh est déconnecté
    Membre expérimenté Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Par défaut
    C'est que tu as une erreur sur ton cgi.
    Pour voir plus précisément de quoi il s'agit va voir dans le fichier error.log d'apache dans le répertoire $APACHE_HOME/logs

  18. #18
    Invité
    Invité(e)
    Par défaut
    Si tu as cette erreur, c'est que ton cgi s'est bien exécuté. Maintenant, ton serveur est correctement paramétré. 8)

    Par contre, ton cgi contient des erreurs, à toi de déboguer ! Au travail

    Commence par un dans une invite de commandes, pour voir si tu as des erreurs de syntaxe.
    Puis, vérifie que ton shebang pointe bien vers le bon perl.exe.

  19. #19
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    oui en effet j'ai une erreur sur le script! j'ai recuperer le script sur un site, mais bon je vais essayer de trouver l'erreur ,a 1ere vue c'est la facon de recuperer le parametre du formulaire html en perl qui ne fonctionne pas!

    l'erreur pointée est le "param"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $File[$NumFile] = $req->param("FILE" . $NumFile);

    je sais qu'en javascript un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.form("nomduchamp")
    permet de recuperer le champ mais en perl et avec un fichier a la place d'un texte je ne sais pas encore comment faire! c'est reparti pour de la lecture intensive de page web!
    merci Jeh

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  20. #20
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Bon je suis désolé de vous embeter encore mais je m'en sort pas !

    j'ai tout vérifier ,shebang,syntax,liens,noms de variable, lu quantité de truc sur le module CGI de perl...

    mais j'ai toujours cette Internal server error
    dans le error log on me dit :
    Premature end of script headers: c:/webserver/cgi-bin/get_file.pl
    Can't call method "param" on an undefined value at c:\\WEBSER~1\\cgi-bin\\get_file.pl line 30.\n
    voici mon code Perl(mon code html est tout bete un formulaire avec method=get ; ENCTYPE="multipart/form-data" et evidement action : monscript.pl )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #!c:/Perl/bin/perl -w
     
     
    use CGI ;
     
     
    #--------------------------------------------------------#
    #------------------ Get the excel file -----------------#
    #--------------------------------------------------------#
     
    # Constantes
    $NumFile = 1;
    $Monupload = "";
     
    # Répertoire d'arrivée des fichiers
    $basedir = "htdocs";                 
    # Autorisation des types de fichiers
    $everythings = "no";                
    # Extension acceptée
    $accepte = ".xls";                
    # Page de redirect
    $namefile = "send_ok.html";                
    # Nombre de boucle
    $Nbboucle = 3;               
     
     
    while ($NumFile != $Nbboucle) 
    {
    	# Récupération des données
    	$File[$NumFile] = $req->param("FILE" . $NumFile); 
    	my $filenotgood = "";
    	if ($File[$NumFile] ne "") 
    	{
    		my $FileName = $File[$NumFile];
    		$FileName =~ s!^.*(\\|\/)!!; 
    		# Vérification de la validité de l'extension
    		@thatisgood=split(/\+/, $accepte);
    		# Vérification du fichier si toutes les extensions ne sont pas acceptés.
    		if ($everythings ne "yes") 
    		{
    			for($moni=0;scalar(@thatisgood) > $moni;$moni++) 
    			{
    				if ((index(lc($FileName), $thatisgood[$moni]) != -1) || ($filenotgood eq "no")) 
    				{
    					$filenotgood = "no";
    					if (index(lc($FileName), $thatisgood[$moni]) != -1)
    					{
    						$FileSave = "upload.xls";                 # 7
    					}
    				}
    				else
    				{
    				$filenotgood = "yes";
    				}
    			}
    		}
     
    		# Récupération du fichier
    		if ($filenotgood ne "yes") 
    		{ 
    			open (OUTFILE, ">$basedir/$FileSave"); 
    			while (my $bytesread = read($File[$NumFile], my $buf, 1024)) 
    			{ 
    				print OUTFILE $buf; 
    			} 
    			close (OUTFILE); 
    		}
     
    	}
    	$NumFile++;
    }
     
     
     
    print "Content-type: text/html\n\n";
    print "<HTML><HEAD><META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0; URL=" . $namefile . "\"></HEAD><BODY></BODY></HTML>";
    exit;
    si quelqu'un a le temps de jeter un oeuil, merci

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Apache script perl upload.cgi
    Par Blueyes50 dans le forum Apache
    Réponses: 2
    Dernier message: 14/08/2012, 23h05
  2. Executer des scripts perl en CGI
    Par Pedro87 dans le forum Web
    Réponses: 3
    Dernier message: 09/03/2009, 21h54
  3. questions à propos de Perl - scripts cgi
    Par jejerome dans le forum Web
    Réponses: 10
    Dernier message: 28/02/2006, 08h17
  4. [perl/GD/CGI] trouver des exemples graphiques
    Par LE NEINDRE dans le forum Web
    Réponses: 4
    Dernier message: 28/07/2005, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo