Page 1 sur 1

CGI Perl

Publié : 27 mai 2006, 17:20
par calimo
Voilà, je dois faire un projet en Perl liant une base de données (postgresql) et un script CGI. J'ai pris un sujet bidon, ma BD est prête, mais là n'est pas le problème.

Je me lance donc dans un cgi avec le module ad hoc (CGI). Et là, je vois que les pages sont du XHTML 1.0 Transitionnal. Moi j'aimerais bien faire du HTML 4.01 Strict.

Je mets donc :

Code : Tout sélectionner

$cgi->default_dtd("-//W3C//DTD HTML 4.01//EN");
comme le dit la doc
http://search.cpan.org/src/LDS/CGI.pm-3 ... tml#header

Et là, j'ai un doctype sans URL :? Je change donc en :

Code : Tout sélectionner

$cgi->default_dtd("-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd");
Me voilà avec un joli doctype. :)

Par contre...le reste de la page est restée en XHTML (c'est à dire <html xmlns="..." xml:lang="...">, les balises fermées /> etc.

Est-ce que quelqu'un a déjà réussi à faire du HTML avec CGI/Perl ?

Publié : 27 mai 2006, 18:13
par calimo
Bon bon, j'ai trouvé, il fallait appeler le module avec

Code : Tout sélectionner

use CGI qw(-no_xhtml);
:mrgreen:

Par contre, maintenant, il m'ajoute un div vide (<div></div>) en fin de formulaire :

Code : Tout sélectionner

<p><input type="submit" name="submit" value="Submit your query"></p><div></div></form>
Le code est le suivant :

Code : Tout sélectionner

print $cgi->p($cgi->submit(-name=>'submit',-value=>'Submit your query'));
print $cgi->end_form();
Je sens que ça va m'énerver ce truc :lol: :evil:

Ou pourquoi faire simple quand on peut faire compliqué :roll:

Publié : 28 mai 2006, 00:00
par Benoit
Je vais dire une bêtise, mais tu ne peux pas faire un print du code directement ?

Genre, heu...

Code : Tout sélectionner

print "<p><input type='submit' name='submit' value='Submit your query'></p></form>"

Publié : 28 mai 2006, 09:29
par calimo
Oui, je pourrais, mais le prof a suffisemment insisté en cours pour que j'évite de le faire :lol:
Mais effectivement, si ça ne tenait qu'à moi, c'est ce que je ferais. :roll:

Merci quand-même pour l'idée ;-)