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 avec les attributs body


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut Problème avec les attributs body
    Bonjour,
    j'ai lu http://perl.enstimac.fr/ModulesFr/CGI.html pourtant, lorsque je souhaite ecrire des attributs de body dans un html_start ça ne marche pas :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #!"C:\perl\bin\perl.exe"
    use CGI qw/:standard/;
    $CGI::POST_MAX=1024 * 100;  # max 100K posts
    $CGI::DISABLE_UPLOADS = 1;  # no uploads
    my $erreur="";
    my $script=new CGI;
    my $action = "./result.pl";
    my $method = "post";
    my $encoding ="application/x-www-form-urlencoded";
    my $styleForm ="border:0px;margin:0px";
    print $script->header(-type=>"text/html",
    -charset=>"utf-8");
    print $script->start_html(-title=>"Clustering Meta-Engine 2 Perl version",
    ,-meta=>{http-equiv=>"Content-Type",content=>"text/html",charset=>"UTF-8"},
     
    -style=>{"src"=>"mdl/mdl-css/mmc-css.css"}, -leftmargin=>"0", -rightmargin=>"0", -topmargin=>"0", -bottommargin="0" );
     
     
    print div({-class=>"page", -align=>"center"},
     
    br(),
    a({-href=>"index.pl"}, img{src=>"./image/cme.jpg",width=>"232px",height=>"124px",border=>"0",alt=>"Conceptual Meta-Engine"}),
     
    $script->start_form(-method=>$method,
                                -action=>$action,
                                -enctype=>$encoding,
                                {-style=>$styleForm}),
     
    span({class=>"sstitre"},"Query me :"),
          br(),br(),
     
          $script->textfield({class=>"formulaires"},{style=>"width:385px;"},-name=>"recherche",
                               -default=>"",
                               -override=>1,
                               -size=>50,
                               -maxlength=>500),
             br(),br(),
             center($script->submit(-name=>"button_name",
                            -value=>"")),
             $script->endform,
             print br(),br(),
    span ({class=>"texte_little"},"Clustering Meta-Engine 2 © "), br(),br(),
    $query->end_html;
    en effet, apres le -style{} mes margins generent un can't modify negation in scalar assignment.
    Quelqu'un peut il m'eclairer ?

  2. #2
    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
    Le message devrait t'éclairer :
    can't modify negation in scalar assignment
    Autrement dit tu essaie d'assigner quelque chose à une "négation" (un '-' suivi d'un identifiant, par exemple), or sur cette ligne, que voit-on :


    --
    Jedaï

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Merci bien, j'ai corrigé la syntaxe, j'avais le nez dans le guidon. Ceci dit les attributs body ne fonctionnent pas, même en essayant la proposition suivante tirée de http://www.issociate.de/board/post/4...ng_CGI.pm.html

    je teste mon nouveau 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
     
    #!"C:\perl\bin\perl.exe"
    use CGI qw/:standard/;
    $CGI::POST_MAX=1024 * 100;  # max 100K posts
    $CGI::DISABLE_UPLOADS = 1;  # no uploads
    my $erreur="";
    my $script=new CGI;
    my $action = "./result.pl";
    my $method = "post";
    my $encoding ="application/x-www-form-urlencoded";
    my $styleForm ="border:0px;margin:0px";
    print $script->header(-type=>"text/html",
    -charset=>"utf-8");
    print $script->start_html(-title=>"Clustering Meta-Engine 2 Perl version",
    ,-meta=>{http-equiv=>"Content-Type",content=>"text/html",charset=>"UTF-8"},
    -style=>{"src"=>"mdl/mdl-css/mmc-css.css"},-style=>{-code=>"body:{leftmargin:0px; rightmargin:0px; topmargin:0px; bottommargin:0px;}" } );
    [...]
    donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="iso-8859-1"?>#d'ailleurs pourquoi me met il que c'est du xml ? j'avais demandé du html moi :/
    <!DOCTYPE html
    	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    	 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><title>Clustering Meta-Engine 2 Perl version</title>
    <meta name="" content="" />
    <style type="text/css">
    <!--/* <![CDATA[ */
    body:{leftmargin=0px; rightmargin=0px; topmargin=0px; bottommargin=0px;}
     
    /* ]]> */-->
    </style>
    </head><body>
    dans mon browser :/

    (accessoirement rien d'autre n'est printé avec le code complet du post ci dessus, ça s'arrette à <body>, j'ai beau lire et relire, je trouve pas, le reste du html ne print pas, mais ça, c'est un autre probleme)
    merci de ton aide en tout cas.

  4. #4
    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
    Parce que tu n'utilises pas les pragmas "strict" et "warnings", le script s'est exécuté jusqu'à rencontrer une erreur (center n'existe pas, il manquait une parenthèse...) dans le second print qui n'a donc pas été exécuté.
    Par ailleurs, ce serait une foutue bonne idée de lire mon message sur le style, parce qu'une indentation correcte (avec perltidy éventuellement) et un minimum d'usage de "perl -c" (ou équivalent dans ton IDE) t'aurait permis de trouver les erreurs très rapidement.
    Voici ton code corrigé, il fait ce que tu veux a priori :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    #!"C:\perl\bin\perl.exe"
    use strict; use warnings;
    use CGI qw/:standard/;
    $CGI::POST_MAX        = 1024 * 100;    # max 100K posts
    $CGI::DISABLE_UPLOADS = 1;             # no uploads
    my $erreur    = "";
    my $action    = "./result.pl";
    my $method    = "post";
    my $encoding  = "application/x-www-form-urlencoded";
    my $styleForm = "border:0px;margin:0px";
     
    print header(
        -type    => "text/html",
        -charset => "utf-8"
    );
     
    print start_html(
        -title => "Clustering Meta-Engine 2 Perl version",
        ,
        -meta => { 'http-equiv' => "Content-Type", charset => "UTF-8" },
     
        -style        => { "src" => "mdl/mdl-css/mmc-css.css" },
        -leftmargin   => "0",
        -rightmargin  => "0",
        -topmargin    => "0",
        -bottommargin => "0"
      ),
      div(
        { -class => "page", -align => "center" },
     
        br(),
        a(
            { -href => "index.pl" },
            img {
                src    => "./image/cme.jpg",
                width  => "232px",
                height => "124px",
                border => "0",
                alt    => "Conceptual Meta-Engine"
            }
        ),
      ),
      start_form(
        -method  => $method,
        -action  => $action,
        -enctype => $encoding,
        { -style => $styleForm }
      ),
     
      span( { class => "sstitre" }, "Query me :" ), br(), br(),
     
      textfield(
        { class => "formulaires" }, { style => "width:385px;" },
        -name      => "recherche",
        -default   => "",
        -override  => 1,
        -size      => 50,
        -maxlength => 500
      ),
      br(), br(),
      p(
        { -style => 'text-align:center' },
        submit(
            -name  => "button_name",
            -value => ""
        )
      ),
      endform,
      br(), br(),
      span( { class => "texte_little" }, "Clustering Meta-Engine 2 &copy; " ),
      br(), br(),
      end_html;
    NB : Les erreurs des scripts CGI sont reportés dans les logs Apache.
    NB2 : Tu peux très bien lancer un script CGI en ligne de commande pour voir ce qu'il va afficher, le module CGI s'en aperçoit et utilise les arguments de la ligne de commande pour les paramètres de la requète.
    NB3 : Mais qu'utilises-tu donc comme IDE, la plupart t'aurait signalé le problème de la parenthèse manquante ?
    --
    Jedaï

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    j'utilise komodo m'sieur. d'habitude j'indente tout mais là, j'avoue, y'a du laisser aller.

    j'utilise strict et warnings d'habitude hein, seulement là, l'utilisation de ces pragmas faisait probleme donc j'ai viré :
    Can't locate strict.pm in @INC (@INC contains: .) at C:/Program Files/xampp/cgi-bin/index.pl line 2.\r
    [Sat Feb 09 05:20:44 2008] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/Program Files/xampp/cgi-bin/index.pl line 2.\r

    ca donnait ca dans le log apache

    [MOD flagornerie ON]
    merci de ta patience, tu es une creme, je vais tester ça.
    [MOD flagornerie OFF]

    juste un truc : l'image n'apparait pas, j'ai testé avec plusieurs browsers, pourtant c'est le bon path :/

    merci pour tout ^^

  6. #6
    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
    Une astuce pour que ce soit plus agréable pour toi c'est d'utiliser CGI::Pretty durant la phase de développement du site, le source HTML produit est nettement (très nettement) plus lisible. Il suffit d'utiliser CGI::Pretty au lieu de CGI, la seule différence c'est la sortie générée.

    --
    Jedaï

  7. #7
    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 mnem0 Voir le message
    juste un truc : l'image n'apparait pas, j'ai testé avec plusieurs browsers, pourtant c'est le bon path :/
    Non, c'est pas le bon path (ou pas une bonne image parce que je viens de tester et chez moi ça marche), tu es sûr que tu n'as pas mis './image' au lieu de '../image' ? Généralement pour './image', on met plutôt 'image' de toute façon.

    --
    Jedaï

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

Discussions similaires

  1. [AJAX] XML avec les attributs
    Par gdiamond dans le forum AJAX
    Réponses: 0
    Dernier message: 28/10/2011, 18h42
  2. Problème avec les attributs de la session
    Par Didine981 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/05/2010, 09h43
  3. [SAXON & XQUERY] Problème avec les attributs
    Par CynO dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 18/04/2007, 21h05
  4. [Custom Tags 2.0] Problème avec les attributs
    Par uliss dans le forum Taglibs
    Réponses: 1
    Dernier message: 12/02/2006, 22h31
  5. Réponses: 1
    Dernier message: 25/11/2005, 20h40

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