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 :

Problème pour l'utilisation d'un script cgi


Sujet :

Web Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Par défaut Problème pour l'utilisation d'un script cgi
    Bonsoir,

    Je ne suis pas certain d'être au bon endroit mais je ne vois pas ou poster ailleurs.

    Voila j'ai besoin d'utiliser un script cgi sur un hébergement infomaniak mais chaque fois que j'appelle le script j'ai ce message d'erreur:
    CGIWrap Error: Script Execution Failed

    CGIWrap encountered an error while attempting to execute this script:

    Error Message: Exec format error
    Error Number: 8

    This message usually indicates there is a problem with the script itself. Often this indicates either that the #! line of the script is incorrect, or the script was uploaded in binary mode instead of ascii mode. Check to make sure that the script does not have control-M's at the end of every line. That will prevent it from executing. An easy fix that takes care of this most of the time is to put '#!/.../perl --' instead of '#!/.../perl' on the first line of the script. This is typically a problem if the script was edited or uploaded from a DOS/Windows/Macintosh station to a unix based server.

    If you are not the owner of this script, please forward this error and the URL that caused it to the script owner. That is often the component in the URL right after /cgiwrap/.

    Server Data:

    Server Administrator/Contact: webmaster@domaine.fr
    Server Name: www.domaine.fr
    Server Port: 80
    Server Protocol: HTTP/1.1
    Virtual Host: www.domaine.fr

    Request Data:

    User Agent/Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)
    Request Method: GET
    Remote Address: xx.xxx.x.xxx
    Remote Port: xxxx
    Extra Path Info: /cgi-bin/modulev2.cgi
    Après quelque recherches j'ai compris que le problème venait éventuellement du transfert, donc j'ai bien contrôle que le transfert était fait en ascII, mais l'hébergeur dans sa doc parle également de cela:
    Les CGI doivent impérativement commencer par Content-Type suivi de deux CRLF (ou au moins deux LF) avant d'afficher le contenu. Ceci peut être obtenu en envoyant un "print"
    Content-Type: text/html suivi d'un deuxième "print" vide
    ou en utilisant deux fois la séquence anti slash suivi de r et anti slash suivi de n.

    De plus, pour que les CGI Python ou Perl soient reconnus chez nous, elles doivent être enregistrées au format unix (LF - anti slash n) et dans aucun cas en format ms-dos (CRLF anti slash r suivi de anti slash n ou CR anti slash r).
    et la je suis un peut perdu car je ne sais pas par quel moyen je peux faire cette vérification et rajouter ce qui peut éventuellement manquer.

    Précision: le script CGI on me le transmet par email, je le récupère sur un système windows, et je le re transfert sur un hébergement linux via fizellaftp.

    voila merci de votre aide très précieuse.....

  2. #2
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Les 2 messages parlent de choses différentes :

    Les fins de ligne : tu dois avoir des fins de ligne au format Unix et non pas Windows, c'est à dire avec des LF (1 caractère Line Feed, caractère 10, noté "\n") et non pas des CR+LF (1 caractère Carriage Return + 1 caractère Line Feed, 13 + 10, control-M + control-J, notés "\r" "\n"). Ceci dépend de l'éditeur de texte avec lequel tu as créé / modifié ton script !
    • D'abord il faut vérifier comment est ton script, avec une commande Unix comme od ou un éditeur hexadécimal... ils afficheront les CR comme des ^M (control-M) ou en hexa 0D (décimal=13).
    • Ensuite au besoin tu modifies ton script pour remplacer les CRLF par des LF : commandes dos2unix ou tr ou sed sous linux ; éditeur PsPad sous Windows...


    L'histoire du Content-type : C'est la première chose que doit écrire ton script pour que sa sortie soit comprise par le client (navigateur) en face ! Si tu utilises le package CGI de perl, c'est ce que fait print $html->header(); Sinon tu peux comme le dit la doc écrire "à la main" ton entête avec le type de flux que renvoie ton script : si c'est du texte html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Content-type: text/html;
    Il faut écrire cela sur une ligne puis envoyer une ligne vide (au moins), aux formats Unix ou Windows...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MooTools] Request,comment récupérer le contenu pour l'utiliser dans le script ?
    Par dawadam dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 09/07/2008, 23h22
  2. Réponses: 5
    Dernier message: 22/11/2007, 20h12
  3. Réponses: 2
    Dernier message: 17/04/2007, 10h56
  4. [Lazarus] Problème pour l'utilisation des fichiers
    Par Lulu_n10 dans le forum Lazarus
    Réponses: 7
    Dernier message: 30/03/2007, 16h54
  5. Réponses: 9
    Dernier message: 14/09/2006, 21h44

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