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 :

Int�gration css avec un script cgi


Sujet :

Web Perl

  1. #1
    Membre exp�riment�

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par d�faut Int�gration css avec un script cgi
    Bonjour

    Mon script CGI se compose d'une petite fonction qui permet d'int�grer le style css � ma page. Voici le code:
    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
    sub include_css_style {
      $content = '<style type="text/css" media="screen">', "\n";
      $content .= 'body {', "\n";
      $content .= 'margin:150px;', "\n";
      $content .= 'padding:0px;', "\n";
      $content .= 'font-family: "tahoma", "verdana", "arial", "helvetica";', "\n";
      $content .= 'font-size:80%;', "\n";
      $content .= 'color:#666666;', "\n";
      $content .= '}', "\n";
      $content .= '#error {', "\n";
      $content .= 'margin:0 auto 0 auto;', "\n";
      $content .= 'padding:10px;', "\n";
      $content .= 'width:370px;', "\n";
      $content .= 'text-align:left;', "\n";
      $content .= 'font-size:8pt;', "\n";
      $content .= 'background-color:#EEEEEE;', "\n";
      $content .= '}', "\n";
      $content .= '#error h1 {', "\n";
      $content .= 'margin-top:5px;', "\n";
      $content .= 'margin-bottom:10px;', "\n";
      $content .= 'font-size:10pt;', "\n";
      $content .= 'color:#333333;', "\n";
      $content .= '}', "\n";
      $content .= '#error a {', "\n";
      $content .= 'color:#DC298D;', "\n";
      $content .= '}', "\n";
      $content .= '#error a:hover {', "\n";
      $content .= 'color:#FFFFFF;', "\n";
      $content .= 'background-color:#DC298D;', "\n";
      $content .= 'text-decoration:none;', "\n";
      $content .= '}', "\n";
      $content .= '</style>', "\n";
      print $content;	
    }
    Lorsque la fonction est appel�e, le style css est appliqu� mais si je visualise la source de ma page, je m'aper�ois que le style css est affich� sur une seul ligne. Ce qui veut dire que tout mes \n sont supprim�s. D'o� ma question, existe-t-il un moyen pour les pr�server ?

    Merci

  2. #2
    Membre exp�riment�

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par d�faut
    Je pense avoir trouv�. Ce n'est pas une virgule mais un point. Cela ressemble au langage PHP

  3. #3
    Expert confirm�
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par d�faut
    Aaargg... Bon ton probl�me vient de la virgule qui n'affecte pas � $content, mais en premier lieu, cette fonction ressemble vraiment � de la pat�e pour chat...
    Rempla�ons tout �a par un Heredoc :

    Code html : 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
    sub include_css_style {
      print <<EOS;
      <style type="text/css" media="screen">
      body {
        margin:150px;
        padding:0px;
        font-family: "tahoma", "verdana", "arial", "helvetica";
        font-size:80%;
        color:#666666;
      }
      #error {
        margin:0 auto 0 auto;
        padding:10px;
        width:370px;
        text-align:left;
        font-size:8pt;
        background-color:#EEEEEE;
      }
      #error h1 {
        margin-top:5px;
        margin-bottom:10px;
        font-size:10pt;
        color:#333333;
      }
      #error a {
        color:#DC298D;
      }
      #error a:hover {
        color:#FFFFFF;
        background-color:#DC298D;
        text-decoration:none;
      }
      </style>
    EOS	
    }
    (j'ai demand� la colorisation en HTML parce que le forum colorise mal les heredoc)

    ou au moins passons nous des $content interm�diaires inutiles :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    sub include_css_style {
      my $content = '<style type="text/css" media="screen">'. "\n"
        . "body {\n"
        . "margin:150px;\n"
        . "padding:0px;\n"
        # etc...

    --
    Jeda�

  4. #4
    Membre exp�riment�

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par d�faut
    Merci beaucoup pour ton code. Effectivement mon code est un peut cracra

    Actuellement, je regarde la documentation � cette adresse afin de ne plus d'obtenir du code genre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    print "Content-type: text/html\n\n";
    print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'. "\n";
    print '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >'. "\n";
    Je cherche le moyen d'ins�rer les lignes ci-dessus
    Je vais �galement int�grer directement le css dans mon script. Dans la doc, cette partie est tr�s bien expliqu�e.

    Merci

  5. #5
    Expert confirm�
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par d�faut
    Citation Envoy� par Olivier Regnier Voir le message
    Merci beaucoup pour ton code. Effectivement mon code est un peut cracra

    Actuellement, je regarde la documentation � cette adresse afin de ne plus d'obtenir du code genre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    print "Content-type: text/html\n\n";
    print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'. "\n";
    print '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >'. "\n";
    Je cherche le moyen d'ins�rer les lignes ci-dessus
    Bonne id�e, il vaut mieux et de loin utiliser le module CGI pour faire du CGI en Perl.
    Les lignes que tu montres sont affich�es par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    use CGI qw/:standard/;
     
    print header,
      start_html(-title => "titre du document",
                 -lang => 'fr',),
    ;
    header() s'occupe du header CGI et par d�faut il retourne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    "Content-type: text/html; charset=ISO-8859-1\n\n"
    Evidemment on peut rajouter des champs d'en-t�te, regarde l'aide sur cette fonction pour plus d'information.

    start_html affiche tout le d�but de l'HTML jusqu'� <body>, c'est l� qu'on sp�cifie la feuille CSS, les biblioth�ques de script, les �ventuelles balises meta, le titre du document, etc...
    Je crois que les versions actuelles de CGI.pm �mettent du XHTML 1.0 strict par d�faut, mais tu peux lui sp�cifier d'autre version au besoin.

    --
    Jeda�

  6. #6
    Membre exp�riment�

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par d�faut
    Bonjour

    J'avance doucment et j'obtiens du moins je l'esp�re un code propre

    Voici mon code:
    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
    #!/usr/bin/perl -w
     
    use strict;                                 # Vérifie la validité des variables my
    use warnings;                               # Affiche les erreurs
     
    use CGI qw/:standard :html3/;               # Chargement des fonctions standards de CGI
    use CGI::Pretty qw( :html3 );               # Génère du code HTML propre et indenté				
     
    # Déclaration des variables
    my $page_403 = new CGI;
     
    print header(),                             # Création l'entête HTTP
     
          # Démarre le HTML
    	  start_html(
    			-title => '403, Interdit',
    			-lang  => 'fr',
    			-meta  => {'robots'=>'noindex, follow'}, 
    			-style => {'src'=>'/global.css'},			
    			),
     
     			# Contenu de la page HTML
    			$page_403 -> div ({-id=>'error'},
    			$page_403 -> h1 ('403, Interdit'),
    			$page_403 -> p ("Vous n'avez pas la permision d'accéder à cet URL de votre navigateur.". "\n",
    			$page_403 -> br.br,"Visitez",
    			$page_403 -> a ({href=>"/"},"monsite.fr"), "ou consulter le",
    			$page_403 -> a ({href=>"/sitemap"},"plan du site"),".")),
     
    	 # Fin du HTML
    	 end_html();
     
    # Fin du script
    J'ai une questions � savoir, est-il possible de modifier l'ordre des diff�rents �l�ments qui composent le header. Par exemple, placer cette ligne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    avant celle-ci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <link rel="stylesheet" type="text/css" href="/global.css" />
    J'ai un autre soucis au niveau du lien suivant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $page_403 -> a ({href=>"/sitemap"},"plan du site"),".")),
    � la fin de "plan du site" il y a un espace entre site et le caract�re "." qui ne doit pas �tre inclus dans le lien.
    Je cherche dans la doc

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur 500 avec un script "cgi"
    Par tabouet dans le forum Autres langages pour le Web
    R�ponses: 2
    Dernier message: 15/11/2009, 04h46
  2. [Custom Tags] Int�gration tag avec script JavaScript
    Par mouvma dans le forum Taglibs
    R�ponses: 1
    Dernier message: 02/07/2007, 14h40
  3. [cgi] communiquer avec un/des scripts cgi
    Par narkhor dans le forum G�n�ral Conception Web
    R�ponses: 1
    Dernier message: 31/07/2006, 15h45
  4. Formulaire avec Script CGI
    Par tintin174 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 10
    Dernier message: 30/05/2006, 17h17
  5. R�ponses: 9
    Dernier message: 21/02/2006, 14h14

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