2010-04-23 4 views
3

Je n'ai aucun problème d'exécuter un fichier cgi sous l'URL normale comme ceci:Comment embedd cgi en html

http://www.myhost.com/mydir/cgi-bin/test.cgi 

Cependant, quand j'ai essayé de embedd dans le fichier HTML (appelé index.html) comme ceci:

<HTML> 
    <BODY> 
    <P>Here's the output from my program: 
    <FORM ACTION="/var/www/mydir/cgi-bin/test.cgi" METHOD=POST> 

    <!-- This doesn't work also --> 
    <!-- FORM ACTION="cgi-bin/test.cgi" METHOD=POST--> 

    </FORM> 
    </P> 
    </BODY> 
</HTML> 

Le CGI ne soit pas exécuté quand je fais:

http://www.myhost.com/mydir/index.html 

Le fichier CGI (test.cgi) ressemble simplement à ceci:

#!/usr/bin/perl -wT 
use CGI::Carp qw(fatalsToBrowser); 
print "Test cgi!\n"; 

Quelle est la bonne façon de le faire?

Répondre

2

Le problème est le chemin que vous fournissez dans la propriété action du formulaire.

Vous devez le remplacer par le chemin par rapport au document actuel. (index.html)

votre exemple, il semble que ce serait cgi-bin/test.cgi

+0

comment pouvez-vous incorporer quoi que ce soit dans une page html en utilisant un formulaire? – Luis

+0

J'ai bien peur de ne pas comprendre ce que vous dites. –

+1

vous ne pouvez pas incorporer une ressource externe dans une page en utilisant un formulaire HTML. Un formulaire html vous permet d'envoyer des données à une ressource spécifiée. – Luis

0

Avez-vous essayé d'utiliser une iframe:

<HTML> 
    <BODY> 
    <P>Here's the output from my program: 
    <iframe src="http://www.myhost.com/mydir/cgi-bin/test.cgi" /> 
    </P> 
    </BODY> 
</HTML> 
+0

Les iframes sont des éléments de bloc et ne peuvent pas apparaître à l'intérieur des éléments p, ils ne sont pas non plus définis comme "EMPTY", donc ils ne peuvent pas utiliser la syntaxe des éléments vides XML dans un document compatible HTML. – Quentin

+0

iframes peuvent également être utilisés comme éléments en ligne et il est parfaitement légal d'utiliser la syntaxe de l'élément vide, je viens d'insérer le code ci-dessus dans une page html doctype transitionnel (stricte n'aime pas les iframes) et corrige tous les éléments cas et la page valide contre le validateur w3c. – Luis

+0

Oups. Il s'avère que iframe est en% flow. Je reprends ça. Le point d'être interdit dans XHTML compatible HTML est cependant. Le validateur ne vérifie pas ** ** la conformité aux directives de compatibilité HTML. – Quentin

1

Utiliser des modèles. C'est une mauvaise idée de mélanger différents codes ensemble. Même JS et CSS sont séparés de (X) HTML pour la lisibilité et la maintenabilité.