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

PHP & Base de données Discussion :

Petit script incompatible validation W3C [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut Petit script incompatible validation W3C
    Bonsoir à tous,

    Voilà, j'ai un petit soucis, mon script qui me sert à lister mes tags n'est pas valide sur W3C, il me donne plus de 500 erreurs, mais je sais qu'il suffit juste de recoder mon script, chose que je n'arrive pas depuis hier...

    Quelqu'un pourrait m'aider à le recoder correctement svp?

    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
     
    <div id="tagsphere">
    <ul>
    		<?php	
     
    			$reponse = mysql_query("SELECT * 
    			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
     
    			while ($donnees = mysql_fetch_array($reponse) ) {
    			$someWords = $donnees['tag']; 
     
    			$wordChunks = explode(",", $someWords);
     
    			 for($i = 0; $i < count($wordChunks); $i++){
     
        		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;}?></a></li>	
    		<?php } ?>
    </ul>
    </div>
    Merci beaucoup!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et l'erreur est ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    L'erreur qui revient des centaines de fois est celle-ci:

    Line 251, Column 529: document type does not allow element "li" here

    …php?rubrique=decoctions">ébullition<li><a href="/art_de_la_tisane.php?rubrique…



    The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

    One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre le code complet de ta page,
    je te conseil de faire des htmlspecialchars sur tes sorties

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    C'est le code complet, en fait après je fais juste include dans mon index mais sinon le code est complet.

    Comment je fais ce que tu m'as conseillé?

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Faudrait nous donner un extrait significatif du HTML généré.

    Sinon y'a une } qui traîne et qui, a priori, n'a rien à faire là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $wordChunks[$i] ;}?></a></li>

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Faudrait nous donner un extrait significatif du HTML généré.

    Sinon y'a une } qui traîne et qui, a priori, n'a rien à faire là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $wordChunks[$i] ;}?></a></li>
    bien joué ça coupe le for

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    bien joué ça coupe le for
    D'où l'intérêt de présenter correctement son script et d'utiliser les for/endfor & cie pour le PHP immergé dans du HTML, n'est-ce pas Amouna85 ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    J'ai essayé, ce n'est pas ça.

    En fait il n'a pas d'html, il utilise du JQuery:

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     
    (function(){
        var tags;
        var defaults = {
            height: 150,
            width: 200,
            radius: 500,
            speed: 0.20,
            slower: 1,
            timer: 5,
            fontMultiplier: 10,
            tagCSSOver: {
                border: 'solid 1px #FF9999',
                color: '#FF9999'
            },
            tagCSSOut: {
                border: '',
                color: ''
            }
        }
        var forCalcs = {
            halfHeight: null,
            halfWidth: null,
            hwratio: null,
            dtr: null,
            diametr: null,
            speedX: null,
            speedY: null,
            tLength: null
        }
        var curState = {
            mouseOver: null,
            lastFy: null,
            lastFx: null,
            sy: null,
            cy: null,
            sx: null,
            cx: null,
            mouseX: null,
            mouseY: null
        }
        var options = {};
        jQuery.fn.tagSphere = function(opt){
            options = jQuery.extend(defaults, opt);
            initContainer(this);
            initTags(this);
            initCalcs();
            deployTags();
            setInterval(updateTags, options.timer);
            return this;
        };
     
        function initCalcs(){
            forCalcs.halfHeight = options.height / 2;
            forCalcs.halfWidth = options.width / 2;
            forCalcs.speedX = options.speed / forCalcs.halfWidth;
            forCalcs.speedY = options.speed / forCalcs.halfHeight;
            forCalcs.dtr = Math.PI / 180;
            forCalcs.diametr = options.radius * 2;
            forCalcs.hwratio = options.height / options.width;
            forCalcs.whratio = options.width / options.height;
            forCalcs.tLength = tags.length - 1;
            curState.mouseOver = false;
            curState.lastFx = options.speed;
            curState.lastFy = options.speed;
        }
     
        function initContainer(tagCont){
            tagCont.height(options.height);
            tagCont.width(options.width);
            tagCont.css({
                'overflow': 'hidden',
                'position': 'relative'
            });
            tagCont.mousemove(function(e){
                curState.mouseX = e.pageX - this.offsetLeft;
                curState.mouseY = e.pageY - this.offsetTop;
            });
            tagCont.hover(function(){
                curState.mouseOver = true;
            }, function(){
                curState.mouseOver = false;
            });
        }
     
        function initTags(tagCont){
            tags = tagCont.children('ul').children();
            tags.css({
                'position': 'absolute',
                'list-style-type': 'none',
                'list-style-position': 'outside',
                'list-style-image': 'none'
            });
            for (var i = 0; i < tags.length; i++) {
                var jTag = jQuery(tags[i]);
                tags[i] = jTag;
                jTag.hover(function(){
                    jQuery(this).css(options.tagCSSOver);
                }, function(){
                    jQuery(this).css(options.tagCSSOut);
                })
            }
        }
     
        function deployTags(){
            var phi = 0;
            var theta = 0;
            var max = forCalcs.tLength + 1;
            var i = 0;
            while (i++ < max) {
                phi = Math.acos(-1 + (2 * i - 1) / max);
                theta = Math.sqrt(max * Math.PI) * phi;
                tags[i - 1].cx = options.radius * Math.cos(theta) * Math.sin(phi);
                tags[i - 1].cy = options.radius * Math.sin(theta) * Math.sin(phi);
                tags[i - 1].cz = options.radius * Math.cos(phi);
                tags[i - 1].h = jQuery(tags[i - 1]).height() / 4;
                tags[i - 1].w = jQuery(tags[i - 1]).width() / 4;
            }
        }
     
        function calcRotation(fy, fx){
            curState.sy = Math.sin(fy * forCalcs.dtr);
            curState.cy = Math.cos(fy * forCalcs.dtr);
            curState.sx = Math.sin(fx * forCalcs.dtr);
            curState.cx = Math.cos(fx * forCalcs.dtr);
        }
     
        function updateTags(){
            var fy;
            var fx;
            if (curState.mouseOver) {
                fy = options.speed - forCalcs.speedY * curState.mouseY;
                fx = forCalcs.speedX * curState.mouseX - options.speed;
            }
            else {
                fy = curState.lastFy * options.slower;
                fx = curState.lastFx * options.slower;
            }
            curState.lastFy = fy;
            curState.lastFx = fx;
            if (Math.abs(fy) > 0.01 || Math.abs(fx) > 0.01) {
                calcRotation(fy, fx);
                j = -1;
                while (j++ < forCalcs.tLength) {
                    rx1 = tags[j].cx;
                    ry1 = tags[j].cy * curState.cy + tags[j].cz * -curState.sy;
                    rz1 = tags[j].cy * curState.sy + tags[j].cz * curState.cy;
                    tags[j].cx = rx1 * curState.cx + rz1 * curState.sx;
                    tags[j].cy = tags[j].cy * curState.cy + tags[j].cz * -curState.sy;
                    tags[j].cz = rx1 * -curState.sx + rz1 * curState.cx;
                    var per = forCalcs.diametr / (forCalcs.diametr + tags[j].cz);
                    tags[j].x = tags[j].cx * per;
                    tags[j].y = tags[j].cy * per;
                    tags[j].alpha = per / 2;
                    tags[j].css({
                        'left': forCalcs.whratio * (tags[j].x - tags[j].w * per) + forCalcs.halfWidth,
                        'top': forCalcs.hwratio * (tags[j].y - tags[j].h * per) + forCalcs.halfHeight,
                        'opacity': tags[j].alpha,
                        'font-size': options.fontMultiplier * tags[j].alpha + 'px',
                        'z-index': Math.round(-tags[j].cz)
                    });
                }
            }
        }
    })()
    Et donc j'avais décidé moi même de faire appel à ma base de données, jusque lorsque j'ai essayé de valider, je me retrouve avec + de 500 erreurs alors que c'est parfaitement fonctionnel.

    J'en ai déduis qu'il fallait recoder le petit script?
    Mais sans résultat depuis hier...

  10. #10
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Amouna85 Voir le message
    J'ai essayé, ce n'est pas ça.
    Ah.

    En fait il n'a pas d'html, il utilise du JQuery:
    JQuery génère du HTML, propre j'espère

    Pourrais pas t'aider là-dessus.

    Et donc j'avais décidé moi même de faire appel à ma base de données, jusque lorsque j'ai essayé de valider, je me retrouve avec + de 500 erreurs alors que c'est parfaitement fonctionnel.

    J'en ai déduis qu'il fallait recoder le petit script?
    Mais sans résultat depuis hier...
    Pas compris ce que tu veux dire.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    Je disais que le problème vient de ce script-ci que j'ai codé moi-même:

    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
     
    <div id="tagsphere">
    <ul>
    		<?php	
     
    			$reponse = mysql_query("SELECT * 
    			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
     
    			while ($donnees = mysql_fetch_array($reponse) ) {
    			$someWords = $donnees['tag']; 
     
    			$wordChunks = explode(",", $someWords);
     
    			 for($i = 0; $i < count($wordChunks); $i++){
     
        		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;}?></a></li>	
    		<?php } ?>
    </ul>
    </div>
    Je suis certaine que c'est une question d'imbrication ou de code mal rangé, le seul soucis c'est que je ne vois pas

  12. #12
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Je vois toujours la } de trop !
    Poste le script corrigé stp.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.

  14. #14
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Amouna85 Voir le message
    Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.
    Et bien poste le nouveau script qu'on puisse jeter un oeil.

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Amouna85 Voir le message
    Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.
    elle est juste mal placer

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    Où dois-je la placer alors?

    Il n'y a pas de nouveau script, c'est le seul script que je possède.

  17. #17
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Amouna85 Voir le message
    Où dois-je la placer alors?

    Il n'y a pas de nouveau script, c'est le seul script que je possède.
    Tu as un script erroné, tu le modifies et le pb persiste.
    Il faut poster le script modifié (ce que j'appelle "nouveau script") et pas à nouveau celui d'origine comme tout à l'heure.

  18. #18
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    elle est juste mal placer
    Yep, me suis mal exprimé

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Par défaut
    Ok, désolée.

    Voici:

    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
     
    <div id="tagsphere">
    <ul>
    		<?php	
     
    			$reponse = mysql_query("SELECT * 
    			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
     
    			while ($donnees = mysql_fetch_array($reponse) ) {
    			$someWords = $donnees['tag']; 
     
    			$wordChunks = explode(",", $someWords);
     
    			 for($i = 0; $i < count($wordChunks); $i++){
     
        		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;?></a></li>	
    		<?php } ?>
    </ul>
    </div>

  20. #20
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Comme l'a dit stealth35 il manque maintenant une } pour le for ou le while.
    Indente ton script correctement et tu verras l'erreur tout de suite.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Petit script dans html - non validé W3C
    Par mariaorea dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/08/2014, 11h47
  2. [HTML] URLs avec variable et validation W3C
    Par pirouette_07 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 11/10/2005, 11h27
  3. validation w3c et javascript: erreur?
    Par stoyak dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2005, 14h59
  4. [HTML / Viewpoint / Valid W3C] Problème de lecture
    Par zebden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/02/2005, 11h15

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