OVH Cloud OVH Cloud

perl et entête de page html

3 réponses
Avatar
ecureuil
bonjour,

J'ai un souci avec la ligne DOCTYPE

print "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\"> \n\n";

print <<EOF;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
....

Pas de problème, par contre si je fais :

print <<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
....

La page qui s'affiche : Internal Server Error....
dans error-log :
malformed header from script. Bad header=<!DOCTYPE html PUBLIC "-//W3C/:...

Où est l'erreur?

merci
anne

3 réponses

Avatar
ecureuil
"ecureuil" a écrit dans le message de news:
425fed85$0$3558$
| bonjour,
|
| J'ai un souci avec la ligne DOCTYPE
|
| print "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
| "http://www.w3.org/TR/html4/loose.dtd"> nn";
|
| print <<EOF;
| <html>
| <head>
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
| ....
|
| Pas de problème, par contre si je fais :
|
| print <<EOF;
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
| "http://www.w3.org/TR/html4/loose.dtd">
|
| <html>
| <head>
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
| ....
|
| La page qui s'affiche : Internal Server Error....
| dans error-log :
| malformed header from script. Bad header=<!DOCTYPE html PUBLIC
"-//W3C/:...
|
| Où est l'erreur?
|

il fallait ajouter un saut de ligne entre print <<EOF; et <!DOCTYPE...>

print <<EOF;

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"...
....

et plus de pb de "malformed header from script..."

anne

|
|
Avatar
Nicolas George
"ecureuil" wrote in message <425ff096$0$3587$:
il fallait ajouter un saut de ligne entre print <<EOF; et <!DOCTYPE...>


Si c'est un CGI, il faut ajouter non seulement un saut de ligne, mais des
entêtes HTTP (et le saut de ligne en marque la fin), dont au moins :

Content-Type: text/html

Note : pour produire un CGI, je conseille personnellement d'utiliser une
bibliothèque DOM (par exemple XML::LibXML) pour manipuler l'arbre, plutôt
que de produire le code à la main. Ça a une foule d'avantages.

Avatar
Jacques Caron
Salut,

On Fri, 15 Apr 2005 18:36:20 +0200, ecureuil
wrote:

print "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> nn";

print <<EOF;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
....

Pas de problème, par contre si je fais :

print <<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
....

La page qui s'affiche : Internal Server Error....
dans error-log :
malformed header from script. Bad header=<!DOCTYPE html PUBLIC
"-//W3C/:...

Où est l'erreur?


Je ne pense pas que ce soit la seule différence entre les deux scripts,
si? Un CGI (ou un module perl dans certains cas) commence par des headers
(genre "Content-Type: text/htmlrn") suivi d'une ligne vide ("rn")
suivi du document lui-même.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/